【dRep报错】运行dRep去冗余时出现checkm failed的处理

发布时间 2023-07-14 18:08:45作者: 翱翔的小蛙

做宏基因组分析时,会用到drep软件去冗余,有时会出现checkM failed的错误

$dRep dereplicate dreplicated_out -g bins/*fa # 运行命令

错误信息如下:
Running checkM
!!! checkM failed !!!

官方文档提到了几个解决方案

https://drep.readthedocs.io/en/latest/advanced_use.html#troubleshooting-checkm

这里先用其中一个方法处理(单独跑checkm再将结果给drep用):

第一步
自己用checkM跑一下评估
checkm运行命令:

checkm lineage_wf -t 6 -x fa --nt --tab_table -f checkm_out.txt bins/ checkm_result

第二步
从checkm的结果文件checkm_out.txt中提取信息,新建一个genome_info.csv文件;

  • 文件格式:
    第一行 header 是genome,completeness,contamination,随后每行就是每个fa的对应信息,注意字母全为小写;
    第一列是要跑drep的各个fa文件的名称,第二列和第三列分别是fa对应的完整度completeness、污染度contamination,它俩必须是0-100的值;

  • 文件示例

genome,completeness,contamination
Enterococcus_casseliflavus_EC20.fasta,98.28,0.0
Enterococcus_faecalis_T2.fna,98.28,0.0

第三步
准备好文件后就可以跑dRep了,只要加一个参数--genomeInfo就可

dRep dereplicate dreplicated_out -g bins/*fa --genomeInfo genome_info.csv

随后可能的报错
如果出现Both Bdb and a genome list are found- either don't include a genome list or start a new work directory!信息,就删掉输出目录rm -r dreplicated_out/再跑;

如果出现fastANI找不到的话,找到这个python文件, python*/site-packages/drep/d_cluster/external.py ,93行左右有一个exe_loc = drep.get_exe('fastANI'),93行没有的话就自己搜一下在哪行,把这行改成:

exe_loc = "你的fastANI执行文件路径,可以在命令行用 which fastANI 查看,如果没有的话就安装一个"

如果又有报错提示*/dreplicated_out/data/fastANI_files/fastANI_out_*这个文件不存在,依旧修改上面那个文件,把--minFraction改成--minFrag:

# cmd = [exe_loc, '--ql', glist, '--rl', glist, '-o', out_base, '--matrix', '-t', str(p), "--minFraction", str(0)]
cmd = [exe_loc, '--ql', glist, '--rl', glist, '-o', out_base, '--matrix', '-t', str(p), "--minFrag", str(0)]