使用MMseqs对数据库进行制作

说明:之所以会有数据库制作这一步,是因为按照官网给出的制作命令,运行错误且一直没有找到解决办法。。。

mmseqs databases GTDB gtdb tmp # 官方给出的制作命令,其中GTDB是制作的数据库名称,在mmseqs软件中会有几个常见的数据库,可以直接运行这条命令制作,但名称一定要对,gtdb是制做后的数据库名称,可以自定义,tmp用来存放制作时产生的临时文件。

一、准备所需文件

 

将第一个文件gtdb_proteins_aa_reps.tar.gz解压后,包含三个文件:archaea; bacteria; gtdb_release_tk.log

 

 archaea和bacteria文件夹中包含的是待解压的序列,类似于:

 首先将上述两个文件夹中的文件解压,然后将它们统一放到一个文件夹(gtdbjieya)下,最后再压缩,并命名为gtdb.tar.gz,解压后的文件如下:

 压缩命令:

tar -zcvf gtdb.tar.gz gtdbjieya

按照以上步骤得到制作数据库的三个文件:gtdb.tar.gz; bac120_taxonomy.tsv; ar53_taxonomy.tsv

 二、根据mmseq提供的databases.sh进行操作

GitHub地址:https://github.com/soedinglab/MMseqs2/blob/master/data/workflow/databases.sh

  • 建立一个空文件夹tmp,将以上三个文件放入tmp文件夹下

  • 依次运行以下几条命令

1.mmseqs tar2db tmp/gtdb.tar.gz tmp/tardb --tar-include 'faa$' --threads 15
2.sed 's|_protein\.faa||g' tmp/tardb.lookup > tmp/tardb.lookup.tmp
3.mv -f -- tmp/tardb.lookup.tmp tmp/tardb.lookup
4.mmseqs createdb tmp/tardb targetdb/GTDB # targetdb是自己创建的现存的目录,GTDB是数据库的名字(自定义)
# 上述四条命令运行完,只是完成了"createdb"的操作,会得到以下几个文件:GTDB; GTDB.dbtype; GTDB.index; GTDB.lookup; GTDB.source; GTDB_h; GTDB_h_dbtype; GTDB_h_index; GTDB_taxonomy
# 下面还要完成"createtaxdb"的操作得到一个GTDB_mapping文件
5.       CMD='BEGIN {
              FS = "[\t;]";
              rank["c"] = "class";
              rank["d"] = "superkingdom";
              rank["f"] = "family";
              rank["g"] = "genus";
              rank["o"] = "order";
              rank["p"] = "phylum";
              rank["s"] = "species";
              taxCnt = 1;
              ids["root"] = 1;
              print "1\t|\t1\t|\tno rank\t|\t-\t|" > taxdir"/nodes.dmp";
              print "1\t|\troot\t|\t-\t|\tscientific name\t|" > taxdir"/names.dmp";
          }
          {
              prevTaxon=1;
              for (i = 2; i <= NF; i++) {
                  if ($i in ids) {
                      prevTaxon = ids[$i];
                  } else {
                      taxCnt++;
                      ids[$i] = taxCnt;
                      r = substr($i, 0, 1);
                      name = substr($i, 4);
                      gsub(/_/, " ", name);
                      printf("%s\t|\t%s\t|\t%s\t|\t-\t|\n", taxCnt, prevTaxon, rank[r]) > taxdir"/nodes.dmp";
                      printf("%s\t|\t%s\t|\t-\t|\tscientific name\t|\n", taxCnt, name) > taxdir"/names.dmp";
                      prevTaxon = taxCnt;
                  }
              }
              printf("%s\t%s\n", $1, ids[$NF]) > taxdir"/mapping_genomes";
          }' # 可以用"$CMD"输出一下,看"CMD"变量是否设置成功
6.mkdir -p tmp/taxonomy
7.awk -v taxdir=tmp/taxonomy "$CMD" tmp/bac120_taxonomy.tsv tmp/ar53_taxonomy.tsv
8.touch tmp/taxonomy/merged.dmp
9.touch tmp/taxonomy/delodes.dmp
10.mmseqs createtaxdb targetdb/GTDB tmp/taxdb --ncbi-tax-dump tmp/taxonomy --tax-mapping-file tmp/taxonomy/mapping_genomes --tax-mapping-mode 1 --threads 15
# 上述命令运行完你会得到一个GTDB_mapping文件,至此数据库创建完毕。

 数据库文件如下(在targetdb目录下,tmp中的文件可自行删除):

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值