NR | 拆分库

https://cloud.tencent.com/developer/article/1842788
https://www.jianshu.com/p/d28f38db248d
https://www.cnblogs.com/jessepeng/p/13736609.html
https://www.gaptech.cn/docs/2f325e75-57dd-4faa-8358-8d2de4ccc88d/
https://www.jianshu.com/p/1d6edfcb4110

目录
1.准备本地数据库文件

  • 1.1 NR 库下载
  • 1.2 Taxonomy 数据库下载

2.按物种拆分NR库

  • 第一步:获得Aceesson和分类物种的对应关系
  • 第二步:获得分类物种的序列
  • 第三步:建库和比对

一、准备本地数据库文件

  • NR (Non-Redundant Protein Sequence Database)非冗余蛋白库,是所有GenBank+EMBL+DDBJ+PDB中的非冗余蛋白序列。
  • Taxonomy物种分类数据库,包括大于7万余个物种的名字和系谱,这些物种都至少在遗传数据库中有一条核酸或蛋白序列。

NRTaxonomy数据库都是NCBI的子数据库,会提供比较全面的对应关系。在本地数据库按物种拆分的话,必须下载这两个数据库的文件。

1、NR 库下载

ftp下载地址:ftp://ftp.ncbi.nlm.nih.gov/blast/db/FASTA
NR数据库更新是相当频繁的,如果追求新,估计每个月甚至每周就重新下一次,但它又非常大,对于商业流程使用不可能更新得这么频繁,可以半年或一年更新一次。

2 、Taxonomy数据库下载

ftp下载地址:ftp://ftp.ncbi.nlm.nih.gov/pub/taxonomy/
同样,taxonomy更新也很快。我们分库需要用到两个文件,

(1)accession2taxid中的prot.accession2taxid文件

它提供了nt/nr中accession号与物种分类taxid的对应关系,文件中第一列是accession号,第三列是对应物种的taxid号。(也有GI号,2016年以前大家用的是GI和taxid的对应文件,现在该文件已淘汰)。其格式为:

accession       accession.version       taxid   gi
A0A009IHW8      A0A009IHW8.1    1310613 1835922267
A0A011QK89      A0A011QK89.1    327160  2203519076
(2)另一个是taxdump文件夹里面的names.dmpdivision.dmp

里面包含了物种层级和物种名称等文件。解压后其中最关键的是names.dmpnodes.dmp文件。

(a) names.dmp 是\t和|符号分隔的文件,提供了taxid之间的物种分类进化树信息,

Taxonomy names file (names.dmp):
        tax_id                                  -- the id of node associated with this name
        name_txt                                -- name itself
        unique name                             -- the unique variant of this name if name not unique
        name class                              -- (synonym, common name, ...)
  • 第一列数据是taxid号;
  • 第二列数据是进化树上级节点的taxid号;
    如下所示:(共四列,重要的也就 taxid 和物种名的前两列信息):
1       |       all     |               |       synonym |
1       |       root    |               |       scientific name |
2       |       Bacteria        |       Bacteria <bacteria>     |       scientific name |
2       |       bacteria        |               |       blast name      |
2       |       eubacteria      |               |       genbank common name     |
2       |       Monera  |       Monera <bacteria>       |       in-part |
2       |       Procaryotae     |       Procaryotae <bacteria>  |       in-part |
2       |       Prokaryotae     |       Prokaryotae <bacteria>  |       in-part |
2       |       Prokaryota      |       Prokaryota <bacteria>   |       in-part |
2       |       prokaryote      |       prokaryote <bacteria>   |       in-part |

(b)nodes.dmp示例(共13列,重要的也就taxid、上层级taxid、分类层级这前三列信息):

nodes.dmp file consists of taxonomy nodes. The description for each node includes the following
fields:
        tax_id                                  -- node id in GenBank taxonomy database
        parent tax_id                           -- parent node id in GenBank taxonomy database
        rank                                    -- rank of this node (superkingdom, kingdom, ...)
        embl code                               -- locus-name prefix; not unique
        division id                             -- see division.dmp file
        inherited div flag  (1 or 0)            -- 1 if node inherits division from parent
        genetic code id                         -- see gencode.dmp file
        inherited GC  flag  (1 or 0)            -- 1 if node inherits genetic code from parent
        mitochondrial genetic code id           -- see gencode.dmp file
        inherited MGC flag  (1 or 0)            -- 1 if node inherits mitochondrial gencode from parent
        GenBank hidden flag (1 or 0)            -- 1 if name is suppressed in GenBank entry lineage
        hidden subtree root flag (1 or 0)       -- 1 if this subtree has no sequence data yet
        comments                                -- free-text comments and citations

为了让分类更简单,我们按taxonomy数据库本身分类的分法,即division.dmp文件,提供了divisionid和实际分类阶元的对应关系,第一列是divisionid,第二列是division名称,第三列是division的描述信息。如下所示,共12类物种。

Divisions file (division.dmp):
        division id                             -- taxonomy database division id
        division cde                            -- GenBank division code (three characters)
        division name                           -- e.g. BCT, PLN, VRT, MAM, PRI...
        comments
0       |       BCT     |       Bacteria        |               |
1       |       INV     |       Invertebrates   |               |
2       |       MAM     |       Mammals |               |
3       |       PHG     |       Phages  |               |
4       |       PLN     |       Plants and Fungi        |               |
5       |       PRI     |       Primates        |               |
6       |       ROD     |       Rodents |               |
7       |       SYN     |       Synthetic and Chimeric  |               |
8       |       UNA     |       Unassigned      |       No species nodes should inherit this division assignment        |
9       |       VRL     |       Viruses |               |
10      |       VRT     |       Vertebrates     |               |
11      |       ENV     |       Environmental samples   |       Anonymous sequences cloned directly from the environment        |

readme.txt文件中解释了每个文件的每一列信息(注意|是列间隔,而非列本身):

*.dmp files are bcp-like dump from GenBank taxonomy database.

General information.
Field terminator is "\t|\t"
Row terminator is "\t|\n"

nodes.dmp file consists of taxonomy nodes. The description for each node includes the following
fields:
    tax_id                  -- node id in GenBank taxonomy database (Taxonomy记录号)
    parent tax_id               -- parent node id in GenBank taxonomy database (上一层分类级别的tax_id)
    rank                    -- rank of this node (superkingdom, kingdom, ...)  该tax_id所处的分类层级)
    embl code               -- locus-name prefix; not unique
    division id             -- see division.dmp file
    inherited div flag  (1 or 0)        -- 1 if node inherits division from parent
    genetic code id             -- see gencode.dmp file
    inherited GC  flag  (1 or 0)        -- 1 if node inherits genetic code from parent
    mitochondrial genetic code id       -- see gencode.dmp file
    inherited MGC flag  (1 or 0)        -- 1 if node inherits mitochondrial gencode from parent
    GenBank hidden flag (1 or 0)            -- 1 if name is suppressed in GenBank entry lineage
    hidden subtree root flag (1 or 0)       -- 1 if this subtree has no sequence data yet
    comments                -- free-text comments and citations

Taxonomy names file (names.dmp):
    tax_id                  -- the id of node associated with this name (为taxonomy的记录号)
    name_txt                -- name itself  (即对应tax_id号的物种名称)
    unique name             -- the unique variant of this name if name not unique
    name class              -- (synonym, common name, ...)

Divisions file (division.dmp):
    division id             -- taxonomy database division id
    division cde                -- GenBank division code (three characters)
    division name               -- e.g. BCT, PLN, VRT, MAM, PRI...
    comments

Genetic codes file:
    genetic code id             -- GenBank genetic code id
    abbreviation                -- genetic code name abbreviation
    name                    -- genetic code name
    cde                 -- translation table for this genetic code
    starts                  -- start codons for this genetic code

Deleted nodes file (delnodes.dmp):
    tax_id                  -- deleted node id

Merged nodes file (merged.dmp):
    old_tax_id                              -- id of nodes which has been merged
    new_tax_id                              -- id of nodes which is result of merging

Citations file (citations.dmp):
    cit_id                  -- the unique id of citation
    cit_key                 -- citation key
    pubmed_id               -- unique id in PubMed database (0 if not in PubMed)
    medline_id              -- unique id in MedLine database (0 if not in MedLine)
    url                 -- URL associated with citation
    text                    -- any text (usually article name and authors).
                        -- The following characters are escaped in this text by a backslash:
                        -- newline (appear as "\n"),
                        -- tab character ("\t"),
                        -- double quotes ('\"'),
                        -- backslash character ("\\").
    taxid_list              -- list of node ids separated by a single space

2.按物种拆分NR库

2.1 第一步:获得Aceesson和分类物种的对应关系

Invertebrates
Viruses




Plants 33090
Bacteria 2
Fungi 4751
Viruses 10239
Archaea 2157

Eukaryota为2759

根据以上的prot.accession2taxid.gznodes.dmpdivision.dmp文件,可通过编写脚本来获得accession和以上12类物种的对应关系。脚本略,自己写。假设结果文件命名为acc2sp.xls,格式如下:

2.2 第二步:获得分类物种的序列

根据acc2sp.xls这个文件以及NR总库序列文件nr.gz,我们就可以获得各类物种的序列信息了。当然除了taxonomy数据库本身分的这12类,我们也可以将它们合并来自定义子库。比如,

  • 这12类中没有动物,我们可以将Invertebrates.fa、 Mammals.fa、 Primates.fa、 Rodents.fa 和Vertebrates.fa合并为动物作为一类,
  • 也可以将"Bacteria"、"fungi"、"Viruses"、"Phages""Environmental.samples"等合并为微生物作为一类(这在宏组学注释中常用)。
  • 当然NR中也有这12类中没包含的序列,我们可将其归为unknown.fa(不同于Unassigned.fa,它是没有物种信息)。

脚本自己写,最后得到的是各个子数据库的fasta序列文件。

2.3 第三步:建库和比对

blast或diamond比对工具进行序列数据库建库,后面比对选择对应的字库就可。
blastall:

formatdb -p T  -i Plants.fa
blastall -i query.fa -d Plants.fa -o blastout.nr -p blastp -F F -m 7 -e 1e-5 -b 10 -v 10 -a 5

或diamond:

diamond makedb --in Plants.fa -d Plants.fa
diamond blastp --evalue 1e-5 --threads 4 --outfmt 5 -q query.fa  -d Plants.fa.dmnd -o blastout.nr --seg no --max-target-seqs 20 --more-sensitive -b 0.5 --salltitles

https://www.cnblogs.com/jessepeng/p/13736609.html

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,230评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,261评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,089评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,542评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,542评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,544评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,922评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,578评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,816评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,576评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,658评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,359评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,937评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,920评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,156评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,859评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,381评论 2 342

推荐阅读更多精彩内容