官方使用文档 | 最好的分箱工具BASALT-v1.0.1配置及中文使用说明(2024.04)

之前的推文NC | 北京大学余珂课题组发表新的宏基因组分箱新工具 BASALT已经介绍了这款分箱工具的效能,BASALT表现出从复杂微生物社区中恢复高质量、高多样性MAGs方面的显著优势,突出了在鉴定ORFs、揭示未知遗传物质和识别更广泛分类群方面出色的表现。今天余珂老师携带团队亲自提供了友好的中文官方使用文档,强烈推荐大家使用学习交流!(小编ps:余珂老师真的太贴心了,为了避免国内用户访问github速度慢的问题,所有资源都提供了国内下载链接。)

9cf90a1e472a92491ea551c8387b8657.png

内容目录

(一) BASALT支持的数据类型及特点

(二) 依赖程序

(三) 安装方法

(四) 软件使用

(五) 安装和运行中常见问题

(六) 常见其他问题(FAQ)

(七)  软件引用


(一)  BASALT支持的数据类型及特点

BASALT是一个多功能工具包,支持从(1)纯二代序列的组装序列、(2)纯三代序列组装序列(现阶段主要支持PacBio-HiFi数据,其他纯三代数据如ONT因覆盖率计算的问题仍在评估中,约在稍晚开放支持)及(3)二代加上三代数据的混合组装的一系列数据中获取高质量MAGs。BASALT具有以下几个的特点:

1) BASALT支持多组装文件的相互精修

已有的软件如MetaWRAP及DASTool仅支持单一组装文件的分箱,并在多组装文件出现时利用去冗余软件,如dRep进行去冗余。部分分箱软件,如VAMB等,也具有多组装文件共同输入的功能,但我们的实测结果表明这些软件做多组装文件时的分箱效果,不如它们做单一分箱的效果。在总结我们过往的测试结果的基础上,BASALT开发了一套通过多个组装文件同时分箱后,利用我们自主开发的覆盖率一致性算法识别冗余基因组,挑选质量最好的基因组,并且进一步将冗余基因组对选定的最好质量的基因组进行修正。这里面包括通过冗余基因组中存在的片段补全被选定的基因组,及利用冗余基因组对选定基因组进行补洞(gap)。故理论上使用了BASALT后不需要再用dRep进行去冗余,但用户可根据自己的需求进行修改。

2) 基于深度学习的修正(refinement)模块可大幅度的提高基因组质量

结合自主开发的神经网络的算法,BASALT可高效率的识别潜在错误片段,并经过自动评估后去除潜在的错误片段。在过去我们对Binning refinner和RefineM评估中,BASALT的修正效果均大幅度好于这两个软件。由于metaWRAP内置的修正软件所用的是Binning refiner, metaWRAP在修正上差于BASALT。DASTool与BASALT比较的结果也显示BASALT修正的效果好于DASTool。并且,这一模块可独立使用,如用户有一组已经完成分箱的基因组,可通过BASALT内的data feeding脚本将基因组和原始数据提供于BASALT,进行覆盖率等计算,随后用refinement模块进行修正。

3) BASALT对polish流程及重组装进行大幅度优化

在二代及三代数据存在的情况下,BASALT强化了修正功能,及我们整合了利用pilon等软件的polish的功能。在这一过程中,BASALT进行了大量polishing的效率优化,在运行相同的polish次数(run)的情况下,BASALT可以比用户单独使用polish软件节省约90%的polish的时间。BASALT对各种情况下的数据进行重组装的优化。尤其是对2/3代混装的效率和质量均达到了已知最好的水平。纯3代数据的优化仍在进行中,该功能会在稍晚释放给用户使用。我们仍需提醒用户一点,即重组装可大幅度提高基因组质量,但同时也会导致获取基因组的时间增长非常多。我们在2+3代混合重组装时测试了Opera-MS/Unicycler及SPAdes等软件,最终选择SPAdes为默认的重组装软件,这也是基于效率的考虑。事实上,Unicycler在单菌2+3代混装下的重组装效果远远好于SPAdes,但Unicycler重组装的耗时为SPAdes数倍。故在重组装过程中,我们选择了SPAdes作为默认软件,Unicycler为可选的软件。

008d19cac3d3028f462dc41f4485d284.jpeg

BASALT已经可以比较好的支持纯2代数据的分箱分析及2+3的混装数据的分析,但基于纯3代测序数据组装文件的分析仍在开发中。BASALT仍有大量改进空间,我们将进一步解决3代测序数据的分析问题及效率问题。感谢用户的耐心,期望大家和我们一同提出BASALT的问题,如遇到问题,请直接和我们联系,可发邮件至 yuke.sz@pku.edu.cn进行反馈,我们将陆续完善整个软件包的功能。谢谢!(小编ps:可以后台联系我,邀请加入由通神建立的又一高质量微信交流群"BASALT用户群",余珂老师及其团队成员经常在群里直接解答用户的疑惑和需求)

(二)  依赖程序:

1) 系统及脚本语言

Linux x64系统, Python (>=3) , Perl, Java (>=1.7)

Python附加脚本包:biopython, pandas, numpy, scikit-learn, copy, multiprocessing, collections,pytorch, tensorboardx

2) 内置的自动分箱软件

MetaBAT2, Maxbin2, CONCOCT, Semibin2, Metabinner(可选,默认不使用)

*VAMB也存在于BASALT环境中,但内部测试的结果显示VAMB的效果并不是很好,故我们暂时阻隔了通过BASALT对该软件的调用。若想使用VAMB的用户,可以自行安装VAMB进行分箱后,使用data feeding将分箱结果输入至BASALT中。

3) 映射、解析、预测及比对软件

Bowtie2, BWA, SAMtools, Prodigal, BLAST+, HMMER, Minimap2

4) 组装及碱基修正软件

SPAdes, IDBA-UD, Pilon, Unicycler(可选,默认不使用)

5) 基因组评估软件

CheckM:CheckM数据库, pplacer

CheckM2:可选,默认不使用。BASALT中已包含了CheckM2的主程序,但BASALT环境中没有默认下载CheckM2数据库。

*由于CheckM2为基于神经网络设计的程序;我们在以标准基因组进行评估的过程中发现CheckM2与CheckM有大量的偏差,故现阶段我们仍倾向于使用CheckM而非CheckM2进行质量评估。未来在CheckM2更加成熟,或有可替代软件的情况下将会进行修正。用户如需使用CheckM2, 可使用参数-qc进行选择,详见下文说明

*BASALT环境中没有配置CheckM2数据库。用户需手动配置CheckM2的数据库(https://github.com/chklovski/CheckM2,可参考CheckM2页面)。

ac55f79bcc5e99948f4a57a1a03fd3d7.png

6) 工作站硬件要求

8+内核,128GB+RAM;暂不支持显卡加速,该功能仍在开发中,将在后续版本推出。

(三)  安装方法

1) 外网的用户推荐使用BASALT_setup.py安装

  • 下载BASALT_setup.py

  • 通过该命令下载软件:(该过程耗时较长,请耐心等待)

    python BASALT_setup.py

*注:该脚本已内置了BASALT的环境配置、主程序及模型的下载及安装

2) 内网且无法科学上网的用户推荐使用BASALT_setup_ China_mainland.py安装

  • 下载BASALT_setup_China_mainland.py

  • 通过该命令下载软件:(该过程耗时较长,请耐心等待)

    python BASALT_setup_China_mainland.py
  • 下载神经网络训练模型:

从腾讯微云(https://share.weiyun.com/r33c2gqa)下载BASALT.zip并上传至您的Linux路径,随后依次执行以下三个命令

mv BASALT.zip ~/.cache
cd ~/.cache
unzip BASALT.zip

*注:由于国内访问Github时常受限,国内用户可使用以下的手动安装方式进行BASALT的安装。

3) 手动配置BASALT环境(国内用户推荐用该方式安装

由于需要安装许多依赖项,推荐使用conda安装和管理BASALT。安装Miniconda或Anaconda后,创建一个conda环境,并在特定环境中安装BASALT。

  • (可选)添加镜像以提高下载速度,如国内用户可用清华的conda镜像进行安装:

site=https://mirrors.tuna.tsinghua.edu.cn/anaconda
conda config --add channels ${site}/pkgs/free/
conda config --add channels ${site}/pkgs/main/
conda config --add channels ${site}/cloud/conda-forge/
conda config --add channels ${site}/cloud/bioconda/
  • 从Github克隆BASALT仓库并配置BASALT环境

git clone https://github.com/EMBL-PKU/BASALT.git
cd BASALT
conda env create -n BASALT --file basalt_env.yml

conda create的命令耗时较长,需要耐心等待(小编ps:推荐使用mamba安装,可提高安装速度

* 注:因为github在国内访问不稳定,我们同时将环境文件:basalt_env.yml存至微云之中,国内用户可通过共享文件夹下载basalt_env.yml文件:https://share.weiyun.com/xXdRiDkl,在下载完成之后,可参考上面的cd BASALT命令,及conda create命令进行操作

  • 授权BASALT脚本。一般来说conda BASALT环境位于conda安装的子目录envs中(例如:/home/anaconda2/envs)

chmod -R 777 your_conda/envs/BASALT/bin/*

*注:命令举例:conda中BASALT环境所在地址可以使用以下方式进行查看:conda info --envs, 在其中找到BASALT所在的地址,如下图:

2252b9458162524a8a3b9f06afdffdc6.png

其安装的子目录为/home/emma/miniconda3/envs/BASALT,故在这一情况下使用的命令为:

chmod -R 777 /home/emma/miniconda3/envs/BASALT /bin/*
  • 下载神经网络训练模型:

预先下载好BASALT_models_download.py脚本,并执行下列命令:

python BASALT_models_download.py

*注:BASALT_models_download.py可通过github直接获得,为保证国内用户可以下载该文件,可访问https://share.weiyun.com/xXdRiDkl,从中下载该文件。

BASALT_models_download.py命令在国内可能会失效,国内安装推荐使用以下的方法一进行安装,国外安装也可用以下方法二进行手动安装:

方法一(内网):

从腾讯微云(https://share.weiyun.com/r33c2gqa)下载BASALT.zip并上传至您的Linux路径:

mv BASALT.zip ~/.cache
cd ~/.cache
unzip BASALT.zip

方法二(外网):

wget https://figshare.com/ndownloader/files/41093033
mv 41093033 BASALT.zip
mv BASALT.zip ~/.cache
cd ~/.cache
unzip BASALT.zip

4) 测试文件

我们准备了测试文件以测试BASALT是否成功安装并且可以顺利运行。测试文件分为三个部分:测试数据(Data.tar.gz)、用作对照看软件是否安装成功的测试结果(Final_bestbinset.tar.gz)和执行命令脚本(basalt.sh)

  • 下载测试文件并运行程序

  • 文件下载地址:

  • https://figshare.com/articles/dataset/BASALT_demo_files/22323424

共三个:Data.tar.gz、Final_bestbinset.tar. gz、basalt.sh),然后执行下面的命令运行程序:

bash basalt.sh

(该过程耗时大约六小时,请耐心等待)

(四) 软件使用

1) 参数简述

以python执行BASALT.py脚本进行操作;BASALT.py为BASALT主程序。如果使用conda环境,运行时直接输入BASALT及相关参数;如果单独使用环境,使用python BASALT.py及相关参数运行程序。以conda环境为例,若需帮助,可使用BASALT -h查看运行参数。

a) 必须参数:

-a 输入组装文件,组间以英文逗号分隔‘,’不可出现空格;BASALT支持用户以.fa, .fna, .fasta, .gz, .tar.gz, .zip等格式输入序列文件

示例:

-a assembly1.fa,assembly2.fa
  • BASALT支持单一组装文件或多组装文件进行binning;在样品的物种非常相似,但群落中物种丰度不同的情况下,如时间序列样品,多组装文件可大幅度提高binning的效果,但也可能会导致运算时间过长,但我们依然推荐大家用多组装文件模式进行分箱分析。如果运算资源不足,推荐使用多组数据进行合并组装的组装文件进行后续的分箱分析。详细可参考下文中的应用案例。

-s 输入二代测序paired-end数据,多组数据间要用‘/’间隔不同组的文件,‘/’或‘,’前后不可出现空格; BASALT支持用户以.gz, .tar.gz, .zip等格式多个序列文件

示例:

-s d1_r1.fq,d1_r2.fq/d2_r1.fq,d2_r2.fq

*BASALT支持.tar.gz等文件的输入,但是最好直接输入未压缩的序列文件

-l 输入三代测序数据,组间以英文逗号分隔,不可出现空格;BASALT支持用户以.gz, .tar.gz, .zip等格式多个序列文件

示例:

-l lr1.fq,lr2.fq

*BASALT支持.tar.gz等文件的输入,但是最好直接输入未压缩的序列文件

-t 输入线程数,示例:-t 32

-hf 输入HiFi数据,组间以英文逗号分隔 ’,’ 不可出现空格

示例:

-hf hifi1.fq,hifi2.fq

-c 输入Hi-C数据,组间以英文逗号分隔 ’,’ 不可出现空格

示例:

-c hc1.fq,hc2.fq

-m 输入内存量,示例:

-m 128

最小内存量建议设置为32G

b) 可选参数

--min-cpn 设定保留的基因组的最小完整度,默认值为35, 示例:

--min-cpn 30

--max-ctn 设定保留的基因组的最大污染度,默认值为20,示例:

--max-ctn 25

--mode  设定运行模式,预设new及continue两种模式。New模式为重新开始binning项目,continue为断点续跑跑上一次任务未完成的任务,默认模式为continue

--module  设定BASALT的工作模块,BASALT可单独进行autobinning + bin selection,refinement及gap三个部分的独立运行,也可以以all进行完整的自动化binning,默认模式为all (*注:该功能仍待完善,预计在BASALT-1.0.2版本中将更新,预计更新时间为2024年5月)

--autopara 在autobinning模块预设三个参数more-sensitive, sensitive及quick,依次整个脚本包的运行速度会变快,但获得的基因组数目可能降低。默认参数设定为more-sensitive

--refinepara 设定refinement模块的运行参数,预设deep和quick两个参数,deep参数可将基因组修正的更好,但会相对耗费更多时间,默认参数为deep

--hybrid_reassembly 设定hybrid_reassembly模块的运行参数,预设y和n两个参数,y参数利用unicycler进行混合组装,但会相对耗费大量运算;n参数即不进行混合重组装,默认参数为n

-qc 设定quality check软件的参数运行,预设软件为CheckM,可选CheckM2

示例:

-qc checkm2

-e 设定额外分箱工具,可选参数m(表示设定额外分箱工具为Metabinner)

示例:

-e m

代表BASALT将会在使用MetaBAT2,Maxbin2,CONCOCT及Semibin2作为分箱工具的同时也添加Metabinner对数据进行分箱分析

-h 帮助文档

2) 使用范例:

a)单独使用二代测序数据进行binning及修正

BASALT -a as1.fa,as2.fa,as3.fa -s ds1_r1.fq,d1_r2.fq/d2_r1.fq,d2_r2.fq -t 60 -m 250

* 组装文件的顺序和序列的顺序并不重要,顺序可以随意放置

b)单独使用三代测序数据进行binning及修正

BASALT -a as1.fa,as2.fa,as3.fa -s ds1_r1.fq,d1_r2.fq/d2_r1.fq,d2_r2.fq -l lr1.fq,lr2.fq -t 60 -m 250

c)使用二代测序数据及Hi-C数据进行binning及修正

BASALT -a as1.fa,as2.fa,as3.fa -s ds1_r1.fq,d1_r2.fq/d2_r1.fq,d2_r2.fq -c hc1.fq,hc2.fq -t 60 -m 250

d)使用二代测序数据、三代测序数据及Hi-C数据进行binning及修正

BASALT -a as1.fa,as2.fa,as3.fa -s ds1_r1.fq,d1_r2.fq/d2_r1.fq,d2_r2.fq -l lr1.fq,lr2.fq -c hc1.fq,hc2.fq -t 60 -m 250

e)使用hifi数据进行binning及修正

BASALT -a as1.fa -hf hifi1.fq -t 60 -m 250

f)使用hifi数据及二代测序数据进行binning及修正

BASALT -a as1.fa -hf hifi1.fq -s ds1_r1.fq,d1_r2.fq -t 60 -m 250

如需对特定步骤进行设定可参考:

BASALT -a as1.fa,as2.fa,as3.fa -s ds1_r1.fq,d1_r2.fq/d2_r1.fq,d2_r2.fq -l lr1.fq,lr2.fq -t 60 -m 250 --autopara sensitive --refinepara quick --min-cpn 30 --max-ctn 25 -qc checkm2

3) 使用举例

a) 项目一:水产养殖肠道样本组装及分箱策略

项目背景:采集三种不同水产养殖生物池塘中:养殖生物肠道、养殖水环境、养殖塘沉积物样本共计27份,进行宏基因组二代测序及三代测序。

组装策略:首先,通过OPERA-MS软件对二代测序数据及三代测序数据进行单个样本的混合组装;同时,对所获取的相同类型样品平行样的双端数据及三代测序数据合并后进行多个样本的混合组装,以获取该类型样本更多维度信息,便于后续分箱处理;在获取单个样本及多个平行样本混合的组装文件后,进行分箱处理。

示例——以A养殖塘水环境样本为例:

  • 样本数据:

sampleA_w1_R1.fq, sampleA_w1_R2.fq,
sampleA_w2_R1.fq, sampleA_w2_R2.fq,
sampleA_w3_R1.fq, sampleA_w3_R2.fq
sampleA_w1_lr.fq
sampleA_w2_lr.fq
sampleA_w3_lr.fq
  • 组装结果:

sampleA_w1_assembly.fa
sampleA_w2_assembly.fa
sampleA_w3_assembly.fa
sampleA_w1+A_w2+A_w3_assembly.fa
  • 分箱命令:

BASALT -a sampleA_w1_assembly.fa,sampleA_w2_assembly.fa,sampleA_w3_assembly.fa,sampleA_w1+A_w2+A_w3_assembly.fa \
-s sampleA_w1_R1.fq,sampleA_w1_R2.fq/sampleA_w2_R1.fq,sampleA_w2_R2.fq/sampleA_w3_R1.fq,sampleA_w3_R2.fq \
-l sampleA_w1_lr.fq,sampleA_w2_lr.fq,sampleA_w3_lr.fq \
-t 60 -m 250

76caf717a622bfe532f9c053fcc6d0a7.png

a) 项目二:不同生长周期鸟类肠道样本组装及分箱策略

项目背景:在鸟类生长不同时期采集若干种不同鸟类粪便样本,进行宏基因组二代测序。

组装策略:首先,通过metaspades软件对二代测序数据进行单个样本的组装;同时,对所获取的同种鸟类的同一生长周期样品平行样的双端数据数据合并后进行多个样本的组装,以获取该生长周期样本更多维度信息,便于后续分箱处理;在获取单个样本及多个平行样本混合的组装文件后,进行分箱处理。

示例——以A鸟样本为例:

  • 样本数据:

(A类鸟阶段1样本)

sampleA_s1_1_R1.fq, sampleA_s1_1_R2.fq,
sampleA_s1_2_R1.fq, sampleA_s1_2_R2.fq,
sampleA_s1_3_R1.fq, sampleA_s1_3_R2.fq

(A类鸟阶段2样本)

sampleA_s2_1_R1.fq, sampleA_s2_1_R2.fq,
sampleA_s2_2_R1.fq, sampleA_s2_2_R2.fq,
sampleA_s2_3_R1.fq, sampleA_s2_3_R2.fq

(A类鸟阶段3样本)

sampleA_s3_1_R1.fq, sampleA_s3_1_R2.fq,
sampleA_s3_2_R1.fq, sampleA_s3_2_R2.fq,
sampleA_s3_3_R1.fq, sampleA_s3_3_R2.fq
  • 组装结果:

  • 阶段1单样品组装结果

sampleA_s1_1_assembly.fa,sampleA_s1_2_assembly.fa,sampleA_s1_3_assembly.fa
  • 阶段2单样品组装结果

sampleA_s2_1_assembly.fa,sampleA_s2_2_assembly.fa,sampleA_s2_3_assembly.fa
  • 阶段3单样品组装结果

sampleA_s3_1_assembly.fa,sampleA_s3_2_assembly.fa,sampleA_s3_3_assembly.fa
  • 阶段1多样品合并组装结果

sampleA_s1_assembly.fa
  • 阶段2多样品合并组装结果

sampleA_s2_assembly.fa
  • 阶段3多样品合并组装结果

sampleA_s3_assembly.fa
  • 分箱命令:

(一阶段样品分箱命令)

BASALT -a sampleA_s1_assembly.fa, sampleA_s1_1_assembly.fa,sampleA_s1_2_assembly.fa,sampleA_s1_3_assembly.fa \
-s sampleA_s1_1_R1.fq,sampleA_s1_1_R2.fq/sampleA_s1_2_R1.fq,sampleA_s1_2_R2.fq/sampleA_s1_3_R1.fq,sampleA_s1_3_R2.fq \
-t 60 -m 250

*注:二、三阶段样品分箱命令和一阶段相同,仅需替换对应文件即可

(五) 安装和运行中常见问题

1)按照官网流程安装后在运行BASALT的过程中遇到报错:

samtools: error while loading shared libraries: libcrypto.so1.0.0: cannot open shared object file: No such file or directory

解决方案:

a) 首先查看安装BASALT环境的路径下是否存在libcrypto.so1.0.0:

~/anaconda3/<path>/<to>/BASALT/lib$ ls libcry*

b)BASALT环境路径下如果存在libcrypto.so.1.1但是不存在libcrypto.so.1.0.0则建立软链接将libcrypto.so.1.1链接到libcrypto.so.1.0.0:

~/anaconda3/<path>/<to>/BASALT/lib$ ln -s ~/anaconda3/<path>/<to>/BASALT/lib/libcrypto.so.1.1 ~/anaconda3/<path>/<to>/BASALT/lib/libcrypto.so.1.0.0

 c)在BASALT环境下测试samtools能否使用:

samtools –help

2)运行BASALT的过程中遇到报错:

Traceback (most recent call last): File "/users/raw937/.conda/envs/BASALT/bin/BASALT", line 57, in datasets[str(n)].append(pr[1].strip()) IndexError: list index out of range

解决方案:

该问题是由于BASALT不支持使用路径输入序列文件导致,可以通过建立一个单独的文件夹用于存放需要处理的文件来解决。运行命令可以参考:

BASALT -a a1.fa,a2.fa -s seq1_r1.fq,seq1_r2.fq/seq2_r1.fq,seq2_r2.fq \
-l ont_seq.fq -t 60 -m 250

3)运行BASALT的过程中遇到报错:

Traceback (most recent call last): File "/dss/dsshome1/lxc04/ge24yaf2/.conda/envs/BASALT/bin/BASALT", line 53, in  datasets_list=sr_datasets.split('/')

解决方案:

该问题是由于BASALT不支持仅输入三代测序文件导致(目前版本仅支持PacBio-HiFi的纯三代数据输入),可以通过输入二代+三代测序文件来解决。

4)运行BASALT的过程中遇到报错:

INFO: Running CheckM2 version 1.0.1 [03/13/2024 12:56:34 PM] INFO: Running quality prediction workflow with 30 threads. [03/13/2024 12:56:34 PM] ERROR: DIAMOND database not found. Please download database using

解决方案:

该问题是由于CheckM2数据库无法在conda安装过程中自动安装导致,可以通过按照CheckM2安装指南手动下载来解决。CheckM2安装指南:https://github.com/chklovski/CheckM2

5)运行BASALT的过程中遇到报错:

BASALT: command not found

解决方案:

将BASALT_script.zip放入BASALT环境下(一般路径为/home/user/anaconda2/envs)。

unzip BASALT_script.zip
chmod -R 777 BASALT_scrip
mv BASALT_scrip /* your_conda/envs/BASALT/bin

6)运行BASALT的过程中遇到报错:

Traceback (most recent call last):
 File "/home/pthierin/miniconda3/envs/BASALT/bin/BASALT", line 137, in
 BASALT_main_d(assembly_list, datasets, num_threads, lr_list, hifi_list, hic_list, eb_list, ram, continue_mode, functional_module, autobining_parameters, refinement_paramter, max_ctn, min_cpn, pwd, QC_software)
 File "/home/pthierin/miniconda3/envs/BASALT/bin/BASALT_main_d.py", line 494, in BASALT_main_d
 Contig_recruiter_main(best_binset_from_multi_assemblies, outlier_remover_folder, num_threads, continue_mode, min_cpn, max_ctn, assembly_mo_list, connections_list, lr_connection_list, coverage_matrix_list, refinement_paramter, pwd)
 File "/home/pthierin/miniconda3/envs/BASALT/bin/S6_retrieve_contigs_from_PE_contigs_10302023.py", line 1819, in Contig_recruiter_main
 parse_bin_in_bestbinset(assemblies_list, binset+'_filtrated', outlier_remover_folder, PE_connections_list, lr_connection_list, num_threads, last_step, coverage_matrix_list, refinement_mode)
 File "/home/pthierin/miniconda3/envs/BASALT/bin/S6_retrieve_contigs_from_PE_contigs_10302023.py", line 1695, in parse_bin_in_bestbinset
 bin_comparison(str(binset), bins_checkm, str(binset)+'_retrieved', refinement_mode, num_threads)
 File "/home/pthierin/miniconda3/envs/BASALT/bin/S6_retrieve_contigs_from_PE_contigs_10302023.py", line 731, in bin_comparison
 for line in open('quality_report.tsv','r'):
FileNotFoundError: [Errno 2] No such file or directory: 'quality_report.tsv'

解决方案:

该问题是由于数据coverage较低导致binning文件夹中的bins数量过少,从而导致quality_report.tsv无法生成。

7)运行BASALT的过程中我需要设定输出路径吗?

解决方案:

不需要。BASALT在输出时候自动将结果及重要过程文件输出至当前工作路径下,建议用户将需要分析的文件单独建立文件夹存放和运行BASALT,以免重复输出覆盖原有结果。我们正在考虑在后续版本中增加路径的设置。

(六) 常见其他问题(FAQ)

1)Q: 在单独组装与合并组装文件同时输入的情况下,某些contigs被重复利用,会影响分箱结果吗?

A: 在单独组装与合并组装文件同时输入的情况下,确实会产生冗余的基因组,如:bin1从sampleA1_assembly.fa中获得,bin2从sampleA1A2A3_assembly.fa中获得,而bin1与bin2实际上为同一个基因组。考虑到这种情况的产生,BASALT在bin selection中可以识别并去除冗余的基因组,因此最终产出的基因组为非冗余基因组。

2)Q: 与metaWRAP相比,BASALT运行速度通常会更慢。是否有加快运行的方法?

A: 在使用单个组装文件运行的过程中,BASALT的完整流程所耗时间确实会比metaWRAP要多出一倍左右,其耗时比例还会随着样品的复杂度增加而进一步增加。但是,在文章中也提到,即使不运行gap filling模块,BASALT所得到的基因组质量与数量均比metaWRAP要好。实际上,在多个组装文件输入模式下,BASALT比metaWRAP会更省时,因为BASALT只需运行一次,且其单独组装+合并组装+去冗余的模式可以大大增加非冗余基因组的产出。如用户对基因组的深度挖掘要求不高,且需要加快整个分箱进程,建议以下两种策略:

(1)使用MetaBAT2 + Semibin2作为初始Binners,可以大大加快auto-binning的进程;

(2)仅运行BASALT中的auto-binning + bin selection + refinement模块,不使用gap filling模块可以减少运行时间;

(3)在多个样品同时输入的情况下,仅使用单一的合并组装文件(如:sampleA1A2A3_assembly.fa),可以减少auto-binning的运算时间,但也会相应减少基因组的产生。

* 注:BASALT的三种运行模式仍在测试之中, 预计在BASALT-1.0.2版本中会得到更新(约2024年5月更新),请耐心等待。

3)Q: 我已经有之前分箱得到的基因组,想要直接进行refinement,该如何操作?

A: 在已有基因组的情况下,可以利用data feeding模块进行数据的输入。

* 注:BASALT的data feeding运行模式仍在测试之中, 预计在BASALT-1.0.2版本中会得到更新(约2024年5月更新),请耐心等待。

4)Q: 运行BASALT的过程中我需要设定输出路径吗?

A: 不需要。BASALT在输出时候自动将结果及重要过程文件输出至当前工作路径下,建议用户将需要分析的文件单独建立文件夹存放和运行BASALT,以免重复输出覆盖原有结果。

(七)  软件引用

Z Qiu, L Yuan, C Lian, B Lin, J Chen, R Mu, X Qiao, L Zhang, Z Xu, L Fan, Y Zhang, S Wang, J Li, H Cao, B Li, B Chen, C Song, Y Liu, L Shi, Y Tian, J Ni, T Zhang, J Zhou, W Zhuang, K Yu.  BASALT refines binning from metagenomic data and increases resolution of genome-resolved metagenomic analysis. Nature Communications 2024, 15, 2179. https://doi.org/10.1038/s41467-024-46539-7



* 只用于学术分享和交流,不用于任何商业行为!如有侵权,请联系删!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值