美文网首页基因组注释基因组组装基因组组装
生信常用数据库(四):NR数据库分类搭建

生信常用数据库(四):NR数据库分类搭建

作者: geneonto | 来源:发表于2020-10-28 00:10 被阅读0次

    前言

        因为完整的NR数据库下载下来后数据量非常庞大,在我们做序列比对的时候,尤其是很多很大的序列比对的时候,特别消耗计算资源和内存,最重要的是很耽误分析的周期,因此将NR数据库拆开搭建是必要的,小编这里拆为动物(animal)、植物(plant)、微生物(micro)

    下载

        分类搭建需要下载两部分,一部分为NR数据库,另一部分为Taxonomy数据库下载,Taxonomy有两个文件prot.accession2taxid和taxdump

    (一)NR数据库下载:Index of /blast/db/FASTA   #ascp使用见NCBI数据下载工具:aspera的安装与使用 - 简书

    ascp -i ~/asperaweb_id_dsa.openssh  -QTr -l500m  anonftp@ftp.ncbi.nlm.nih.gov:/blast/db/FASTA/nr.gz ./  #下载

    ascp -i ~/asperaweb_id_dsa.openssh  -QTr -l500m  anonftp@ftp.ncbi.nlm.nih.gov:/blast/db/FASTA/nr.gz.md5 ./  #下载

    md5sum -cnr.gz.md5  #验证MD5值

    gunzip -c nr.gz >nr.fa #解压

    (二)prot.accession2taxid下载地址 ftp://ftp.ncbi.nlm.nih.gov/pub/taxonomy/accession2taxid/prot.accession2taxid.gz

    ascp -i ~/asperaweb_id_dsa.openssh -QTr -l500m anonftp@ftp.ncbi.nlm.nih.gov:/pub/taxonomy/accession2taxid/prot.accession2taxid.gz ./   #下载

    ascp -i ~/asperaweb_id_dsa.openssh -QTr -l500m anonftp@ftp.ncbi.nlm.nih.gov:/pub/taxonomy/accession2taxid/prot.accession2taxid.gz.md5 ./   #下载

    md5sum -c prot.accession2taxid.gz.md5  #验证MD5值

    gunzipprot.accession2taxid.gz  #解压

        该文件格式如下,accession.version对应nr.fa中的序列ID,taxid对应axdump中nodes.dmp文件第一列的ID,之后会用到

    (三)axdump下载地址:

    ascp -i ~/asperaweb_id_dsa.openssh -QTr -l500m anonftp@ftp.ncbi.nlm.nih.gov:/pub/taxonomy/taxdump.tar.gz ./  #下载

    ascp -i ~/asperaweb_id_dsa.openssh -QTr -l500m anonftp@ftp.ncbi.nlm.nih.gov:/pub/taxonomy/taxdump.tar.gz.md5 ./  #下载

    md5sum -c taxdump.tar.gz.md5  #验证MD5值

    tar -pzxvf taxdump.tar.gz  #解压

      该文件关注division.dmp和nodes.dmp,division.dmp内容如下,以“|”分割,分为四列,将数据库分成了12类,第一列为分类号,详细说明见readme.txt文件,小编的分类搭建基于此分类

          nodes.dmp文件格式如下,第一列对应prot.accession2taxid文件中的taxid,第五列对应division.dmp文件中的第一列分类号,详细见readme.txt文件

    分类数据库搭建

        (1)根据prot.accession2taxid、division.dmp、nodes.dmp三个文件的对应关系,提取得到下边一样的对应文件(如accession2taxid.txt),以Plants and Fungi为例:

    awk -F"\|" '{print$1"\t"$5}' nodes.dmp|awk '{if($2=="4")print$1}' >PLN.taxid

    Python get.py PLN.taxid prot.accession2taxid PLN.ID

    get.py 脚本如下

    上述PLN.ID为所有Plants and Fungi的ID,最终得到结果如下,已将prot.accession2taxid中所有的accession.version ID分类(有一部分不存在),相当于将NR数据库的序列进行了分类

        (2)序列提取步骤:

        extract_seq.pl脚本代码如下:

    die "perl $0 <id> <fa> <OUT>" unless(@ARGV==3);

    use Bio::SeqIO;

    use Bio::Seq;

    $in = Bio::SeqIO->new(-file => "$ARGV[1]" , -format => 'Fasta');

    $out = Bio::SeqIO->new(-file => ">$ARGV[2]" , -format => 'Fasta');

    my%keep=();

    open IN ,"$ARGV[0]" or die "$!";

    while(<IN>){

        chomp;

        next if /^#/;

        $keep{$_}=1;

    }

    close(IN);

    while ( my $seq = $in->next_seq() ) {

        my($id,$sequence,$desc,$len)=($seq->id,$seq->seq,$seq->desc,$seq->length);

    if(exists $keep{$id}){

    $out->write_seq($seq);

        }

    }

    $in->close();

    $out->close();

    建库使用

        提取完序列后,使用blast建库后就可以就行比对使用

    makeblastdb -in Plants.Fungi.nr.fa -dbtype prot

    makeblastdb -in  animals.nr.fa -dbtype prot

    makeblastdb -in  micro.nr.fa  -dbtype prot 


    其他用途说明

        Taxonomy数据库数据库还可以进行其他多样化的分类,有兴趣可以去官网研究,小编能力有限,不再述说

    相关文章

      网友评论

        本文标题:生信常用数据库(四):NR数据库分类搭建

        本文链接:https://www.haomeiwen.com/subject/gmzxvktx.html