宏基因组分析做了小十年每年都要带新人从零跑一遍Bin流程。说实话这活儿看着门槛不高但真正能把一个样本从下机数据做到高质量基因组草图中间坑特别多组装参数选不对后面分箱就全是碎片Bin完不评估NCBI比对一塌糊涂做完不精炼统计结果根本没法写进文章。这篇文章我就按项目实际推进顺序把宏基因组Bin及后续分析的具体步骤从头到尾拆开讲每一步都给出我实测过、跑得通的命令和参数顺便把我踩过的坑和不写在文档里的经验一并交代清楚。适合刚接触宏基因组、准备自己上手处理第一批数据的同学也适合已经跑通流程但想提升Bin质量和后续分析规范性的同行。1. 项目整体思路与前置准备1.1 宏基因组Bin的核心逻辑宏基因组BinBinning的本质上就是把一个复杂微生物群落中的高通量测序数据按照“哪些序列来自同一个基因组”这个标准重新归堆。环境样本里往往同时存在几十甚至几百种微生物直接拼出来的contigs是混在一起的“毛线团”分箱就是把这团毛线按颜色拆开每一卷对应一个物种或菌株的基因组。为什么近些年“Bin”成了宏基因组文章里的主力分析因为传统的扩增子测序比如16S rRNA只能告诉你“有哪些菌”而宏基因组Bin可以给出“这些菌的基因组长什么样、带什么功能基因、菌株之间有什么差异”。打个比方16S像是看小区住户名单Bin则是给每户人家做一次完整的户籍档案登记档案里记录了他们的代谢能力、耐药基因、毒力因子这些才是发文章、做机制研究的关键素材。“组装-分箱-评估-注释”是全流程的主线。组装解决“把短读长拼成连续序列”的问题分箱解决“把序列按基因组归属归类”的问题评估解决“归出来的箱子质量是否可信”注释则把质量达标的基因组转化为生物学结论。四个环节缺一不可任何一个环节粗糙都会导致下游分析失真所以我建议第一次跑流程的人先完整通读一遍本文再动手操作而不是边做边查。1.2 环境配置与工具选型Bin流程涉及的工具比较多强烈建议用conda管理环境。我一般在Linux服务器上建一个专门的宏基因组环境工具版本锁定在当时测试过的稳定版本避免“昨天还能跑、今天更新后报错”的尴尬。conda create -n meta -c bioconda -c conda-forge python3.9 conda activate meta conda install -c bioconda fastp megahit spades metaquast \ metabat2 maxbin2 concoct checkm-genome gtdbtk \ drep prodigal eggnog-mapper这里我专门解释一下工具选型逻辑。质控用fastp它速度快、报告直观单端和双端都能处理组装在megahit和spades之间二选一大型复杂环境样本我推荐megahit内存占用低速度是spades的十倍以上spades在单菌基因组和低复杂度样本里更能发挥精度优势分箱工具装了三个——metabat2是主力maxbin2做辅助校验concoct主要用在超复杂土壤宏基因组评估用checkm物种注释用gtdbtk它比传统的与nr库比对更准确直接基于基因组系统发育标记基因分类是目前的主流标准。一个容易忽略的细节是checkm和gtdbtk依赖的数据库都很大checkm的数据库约1.4GBgtdbtk的数据库超过60GB务必提前下载并配置好路径。很多人做到一半卡在这里以为是工具坏了其实只是数据库没就位。1.3 数据准备与质控标准动手前先把原始数据理清楚。拿到下机数据通常是fastq.gz格式第一件事就是看三条信息测序平台Illumina还是Nanopore、读长PE150还是PE250、数据量每个样本多少Gb。这些参数直接决定后续组装的策略不能跳过。一个常规的宏基因组样本要求至少5-10Gb的测序数据量复杂环境如土壤推荐20Gb以上。数据量不足会导致组装出的contigs太短分箱时特征不足最终Bin的数量和完整度都会大打折扣。如果发现样本数据量不够我的建议是优先补测而不是硬着头皮往下跑。质量控制的合格线我一般这样卡Q20比例不低于95%Q30比例不低于90%接头残留低于0.1%duplication rate不高于20%。超过这个范围的样本要先处理数据问题而不是直接进组装。这一步虽然枯燥但在项目初期花半小时做质控能避免后续几天的算力浪费。2. 组装与序列处理2.1 质控和去宿主的实操命令质控我用fastp一套跑完同时输出质控前后的对比报告方便后面写methods时直接引用。命令如下fastp -i sample_R1.fastq.gz -I sample_R2.fastq.gz \ -o clean_R1.fastq.gz -O clean_R2.fastq.gz \ --detect_adapter_for_pe \ --thread 16 \ --html sample_fastp.html --json sample_fastp.json--detect_adapter_for_pe是双端数据自动检测并切除接头强烈建议开启。如果不加这个参数接头残留会直接影响后续组装产生的contig在接头位置断裂导致序列碎片化。针对宿主污染比如人类肠道样本中的人源DNA或者组织样本中的宿主细胞需要在质控后做去宿主。最常用的是比对到参考基因组后过滤掉比上的reads。这里有几个实用细节比对工具建议用bowtie2索引构建用bowtie2-build比对时用--very-sensitive参数提高敏感性。bowtie2 -x host_index -1 clean_R1.fastq.gz -2 clean_R2.fastq.gz \ --very-sensitive -p 16 --un-conc host_removed /dev/null比对后生成的两个host_removed文件就是去宿主后的reads。--un-conc参数输出未比对上的paired reads就是我们要保留的微生物序列。这里有个经验之谈去宿主宁可宽松一点也就是比对参数敏感度调高一些避免误杀目标微生物的序列。特别是一些与宿主基因组有相似区域的微生物敏感度过低会把它们当成宿主序列去掉直接影响后续物种组成分析。2.2 组装工具选择与参数组装是整个Bin流程的地基。拼出来的contig越长、越完整后续分箱的准确率就越高。我平时跑宏基因组组装主要用megahit配置不高的服务器也跑得动。一条比较成熟的命令如下megahit -1 host_removed_R1.fastq.gz -2 host_removed_R2.fastq.gz \ -o megahit_out \ --min-contig-len 1000 \ -t 32 --memory 0.8--min-contig-len我设成1000bp低于这个长度的contig直接丢弃。短contig本身信息量不足放进分箱反而增加噪声。如果你后续想连接不同组装参数的结果来提质量也可以保留500bp以上的序列但默认1000是一个平衡点。如果样本复杂度不高且测序深度足够可以用spades的宏基因组模式spades.py -1 clean_R1.fastq.gz -2 clean_R2.fastq.gz \ --meta -o spades_out -t 32 -m 200-m 200表示最大内存200GB这个参数要根据你的服务器配置调整。spades在复杂环境中容易内存爆炸我强烈建议先用megahit粗跑一遍根据结果评估样本复杂度再决定要不要用spades尝试精细组装。还有一个细节如果数据集中混有Nanopore长读长数据可以先用短读长做组装再用长读长做polish效果远优于把长短reads一起喂给组装器。但长读长polish是进阶玩法新手第一次做可以暂时跳过。2.3 组装结果统计与评估组装完成后第一件事是看基本的连续性统计指标。用seqkit或者写一个简单的python脚本就能完成seqkit stats megahit_out/final.contigs.fa重点看N50、N90、最大contig长度以及总长度。合格的宏基因组组装结果通常N50在几千到几万bp之间如果N50低于3000bp建议检查是否数据量不足或者质控环节有没有把太多有效序列过滤掉。序列总数也要观察contig过多往往意味着组装碎片化严重分箱难度大。更专业的评估工具是metaquast它可以对比参考基因组评估组装完整性但在没有参考的情况下其核心价值在于给出详细的GC含量分布、Nx曲线和contig长度分布。命令如下metaquast -o metaquast_out megahit_out/final.contigs.fa组装评估环节最容易犯的错误是只盯着N50这一个指标。我给个实用建议结合GC含量分布图和覆盖度分布图看。正常情况下不同菌的contig会呈现多个GC峰如果GC分布非常均匀单调可能是样本中优势菌群单一也可能是组装出了问题。这个现象在后续分箱里还会用到现在先记住GC分布是分箱的底层信号之一。3. 分箱核心流程3.1 分箱特征与原理拆解分箱算法本质上在做聚类聚类的依据主要来自两个维度的信息序列组成特征和覆盖度特征。组成特征包括GC含量、四核苷酸频率也叫k-mer频率通常取k4因为这种频率在同一个基因组内部相对稳定覆盖度特征则是不同样本中同一contig的测序深度。这两个特征合在一起构成了“这个contig属于哪个基因组”的判别依据。为什么需要这两个特征一起用我给你打个比方。GC含量和四核苷酸频率像一个人的口音和长相同一物种比较接近但不同物种之间也可能碰巧相似覆盖度像一个人在不同场合出现的频率同一个基因组的不同区域覆盖度一致不同基因组的覆盖度往往不同。单独用任何一个特征都容易误判两个维度的信息合并后准确率才能上来。这里就引出一个常见操作误区很多人拿单个样本直接分箱导致覆盖度特征缺失效果很差。分箱质量最好的情况是有多个样本比如同一位点不同时间、不同处理放在一起用跨样本的覆盖度矩阵区分基因组。所以如果手头有多个相关样本务必放在一起做co-binning而不是一个一个地分箱。这是提升Bin数量和质量最立竿见影的方法没有之一。基于这个原理分箱前的数据准备就有了章法第一步用bowtie2把所有样本的clean reads分别比对到拼接得到的contigs上第二步用jgi_summarize_bam_contig_depths生成覆盖度矩阵文件第三步把覆盖度矩阵连同contig序列一起喂给分箱工具。3.2 三种主流分箱工具的实操对比我在这篇文章里只讲三个工具MetaBAT2、MaxBin2和CONCOCT。它们算法不同、适用场景不同但输出都是“contig到bin的映射关系”。MetaBAT2是目前使用最广泛的宏基因组Binning工具速度和对复杂度的容忍度都很高我一般作为主力工具。操作如下jgi_summarize_bam_contig_depths --outputDepth depth.txt *.bam metabat2 -i final.contigs.fa -a depth.txt -o bins_dir/bin -t 16 -m 2000这里重点解释-m 2000它表示分箱时contigs最小长度为2000bp。我刚才组装时保留的是1000bp以上序列分箱时再把阈值提高到2000因为太短的序列聚类信号弱强行分入某个Bin反而会引入噪声。-o bins_dir/bin是输出前缀结果会生成bin.1.fa、bin.2.fa等文件。MaxBin2的亮点是充分利用覆盖度信息在基因组大小差异明显的样本中表现更好。它需要先预测contig的覆盖度我一般这样操作maxbin2 -contig final.contigs.fa -reads all_samples.fastq \ -out maxbin_out/bin -thread 16 -minbin 1注意maxbin2不像metabat2那样需要预先生成depth文件直接给reads即可但这样也有一个限制——它不太好直接处理多个BAM文件。如果想用它做跨样本co-binning你可以把多个样本的reads简单合并成一个fastq文件输入或者手动把多个样本的深度信息写成一个文件。CONCOCT的算法比较复杂运行也比较慢但对高复杂度群落比如土壤宏基因组有时会找到metabat2和maxbin2漏掉的Bin。它需要逐步执行concoct --composition_file final.contigs.fa \ --bam_file sample1.bam sample2.bam \ --coverage_file coverage.tsv \ -b concoct_out说句实话三个工具在常规样本上跑出来的Bin集合会有差异没有哪个在所有场景下绝对最优。我的办法是把三个工具的结果扔给DAS工具做整合这个整合步骤放在下面细讲。对于不确定性强的contig整合后会被标记为“未分配”这个过程比单工具输出更可靠。3.3 Bin精炼与整合直接跑出来的Bin通常带有不少杂质尤其是一些共享区域、重复序列和水平转移元件所在的contig容易被放错位置。Bin精炼bin refinement就是用工具对原始Bin集合进行清理和合并。推荐的工具是DAS Tool它能够整合多个工具的结果并为每个基因组挑选一个最优的非冗余contig集合。核心命令如下das_tool -i sample_bins_list.txt \ -c final.contigs.fa \ -o das_out \ --write_bins 1 --threads 16-i文件是参加的Bin列表文件每行一个Bin的fasta路径。DAS Tool的原理是如果某个contig在多个工具的Bin里都出现并且这些Bin的一致性高那么这个contig就保留如果只有一个工具把它分进某个Bin它的可信度就要打问号如果各工具之间矛盾很大则标记为冲突。这类似于多专家投票机制比单一专家更有说服力。此外我强烈建议配合手动检查和清理。用checkm的tree_qa和bin_qa输出看看每个Bin在系统发育树上的位置是否合理如果出现同一Bin的contig在树上分属不同门类的极端情况说明这个Bin是嵌合体需要剔除。人工清理的步骤不能省略特别是你要发文章的时候reviewer经常会抽查Bin的质量和系统发育一致性。3.4 分箱去重与聚类当你跑了多个样本并且做co-binning时不同样本可能产出高度相似的基因组Bin比如同一个物种在多个样本中都被Bin出来了这时候需要dRep去做去重。dRep的原理基于平均核苷酸一致性ANIANI大于95%的Bin视为同一个物种基因组只保留质量最高的那个。dRep dereplicate drep_out \ -g bins_all/*.fa \ -sa 0.95 -pa 0.9 \ -comp 50 -con 10 -p 16这里的-comp 50和-con 10表示只保留完整度大于50%、污染度小于10%的Bin参与去重。经过dRep去重后你得到的是一套非冗余的代表基因组集合这就是后续物种注释和功能注释的基础。如果没有做dRep直接拿有冗余的Bin集合去统计“样本中发现了多少种微生物”会严重高估物种数量。我见过不少初学者的文章初稿被审稿人质疑“物种数是不是夸张了”多半就是没走dRep这一步。4. 质量评估与物种注释4.1 CheckM评估与质量阈值分箱做完后必须用CheckM评估每个Bin的完整度和污染度这两个指标直接决定Bin能不能往下走。完整度是指Bin覆盖了多少目标基因组污染度是指Bin里混入了多少其他基因组的序列。完整度用单拷贝标记基因的比例估算污染度用多拷贝标记基因的比例估算。运行CheckM的命令如下checkm lineage_wf -x fa bins_dir checkm_out \ --threads 16 --pplacer_threads 8 --tab_tableCheckM会先基于每个Bin的标记基因做系统发育推断确定参照谱系再计算完整度和污染度。输出结果在checkm_out/下可以用checkm qa来汇总checkm qa checkm_out/lineage.ms checkm_out \ --tab_table -f checkm_qa.txt行业里通行的质量标准是完整度≥90%且污染度≤5%的Bin定义为高质量基因组草图High-quality MAG完整度≥50%且污染度≤10%定义为中等质量Medium-quality MAG。发表在Microbiome、ISME这类期刊上审稿人普遍要求至少提供Medium-quality以上的Bin集合重点菌株则要求达到High-quality。这里有一个容易忽略的点完整度90%以上的Bin可能是两个近缘物种的杂交结果污染度评估有时会失真。建议对每个High-quality Bin额外检查16S-23S rRNA区域和tRNA数量如果rRNA区域不完整或tRNA少于10个这个Bin很可能还是不完整的。检查方法很简单用barrnap或者直接比对到rRNA数据库都行。4.2 GTDB-Tk物种注释Bin的物种注释我首选GTDB-Tk不推荐直接用NCBI nr比对。原因很简单GTDBGenome Taxonomy Database专门为基因组设计它的分类体系在门和纲级别上修正了大量过去基于16S的分类错误而且GTDB-Tk直接输出标准化的分类文件方便后续统计分析。gtdbtk classify_wf --genome_dir bins_drep --out_dir gtdb_out \ --cpus 16 --pplacer_cpus 8 --prefix gtdbGTDB-Tk的两个重要文件是gtdb.bac120.summary.tsv和gtdb.ar53.summary.tsv分别对应细菌和古菌每个文件里面都有每个Bin从界到种的完整分类学谱系。一个值得注意的细节是GTDB-Tk给出的分类学结果里很多Bin只能定位到属或科这是正常现象不用强行注释到种。强行给一个基因组定种是学术不严谨的行为。用GTDB-Tk做物种注释还有一个双重验证的好处它的标记基因系统发育结果可以反过来辅助判断你的Bin是否嵌合。如果同一个Bin的多个单拷贝标记基因在系统发育树上落在完全不同的谱系那这个Bin八成是嵌合体需要回到精炼步骤处理。4.3 相对丰度计算与定量宏基因组Bin之后的定量分析通常采用“reads mapping到Bin基因组”的方式。具体操作是把每个样本的clean reads比对到所有Bin的串联序列或者逐个Bin比对统计每个Bin的平均覆盖度该覆盖度就代表该基因组在样本中的相对丰度。bowtie2-build all_bins.fa all_bins.index bowtie2 -x all_bins.index -1 sample_R1.fastq.gz -2 sample_R2.fastq.gz \ -p 16 --very-sensitive --minins 0 --maxins 1000 | \ samtools sort - 8 -o sample_mapped.bam用coverm genome可以直接从BAM文件计算每个基因组的覆盖度coverm genome --bam-files sample_mapped.bam \ --genome-fasta-directory bins_drep \ --methods covered_fraction mean --output-file coverage.tsv定量这一步特别要小心多拷贝序列的干扰。比如rRNA基因和转座子在基因组里有多份拷贝如果直接用这些区域的reads数量代表丰度结果会被高估。CoverM提供了“covered_fraction”这样更稳健的指标它统计的是基因组中被reads覆盖的区域比例同时排除重复区域的干扰。这种稳健性对于后续做差异丰度分析很重要。5. 功能注释与比较基因组分析5.1 基因预测与功能注释Bin集合确定后下一步是做功能基因注释。流程分两步基因预测用Prodigal和功能注释用eggNOG-mapper。Prodigal专门为细菌和古菌基因组设计预测准确度高prodigal -i bin_representative.fa -o bin_genes.gff \ -a bin_proteins.faa -d bin_nucleotides.fna -p single对于MAG我建议-p single模式因为Bin通常是单一基因组用-p meta反而会把短序列误判为完整基因。如果MAG的完整度不高比如只有60%用-p meta更稳妥它能处理不完整的基因结构。功能注释用eggNOG-mapper它整合了COG、KEGG、GO等多个数据库的注释信息emapper.py -i bin_proteins.faa --cpu 16 -o bin_eggnog运行结束后会生成bin_eggnog.emapper.annotations文件。我通常更关心KEGG注释结果因为后续做代谢通路分析比如碳水活性酶CAZyme、抗生素耐药基因ARG都依赖KEGG注释。另外eggNOG-mapper还输出COG功能分类适合做整体功能组成饼图。5.2 泛基因组与菌株水平比较如果分析目标是“同一个物种在不同样本中的差异”单看Bin级别不够需要做泛基因组分析。泛基因组分析的核心是把多个样本中同一种ANI95%的Bin放到一起鉴定核心基因组和辅助基因组。常用工具是Roary或PIRATE# 先为每个基因组建一个gff文件用Roary roary -f pan_out -e --mafft -p 16 *.gff做完后用query_pan_genome统计核心基因数量、辅助基因数量。Roary输出一个gene_presence_absence.csv它暗含了哪些基因只有在特定样本中存在可以用来构建系统发育树或绘制基因存在/缺失矩阵热图。泛基因组分析的一个坑是对输入基因组质量非常敏感如果输入基因组碎片化严重基因预测会遗漏或截短直接导致核心基因数量被低估。所以做泛基因组分析前务必确保所有Bin都达到Medium-quality以上的标准不然结果不可信。5.3 代谢潜力分析与可视化功能注释完成后可以针对特定研究方向做功能富集分析。比如研究肠道菌群时通常关注碳水活性酶CAZyme、抗生素耐药基因ARG、毒力因子VF等。CAZyme注释常用dbCANrun_dbcan.py bin_proteins.faa protein --out_dir dbcan_out分析耐药基因则用ABRicate的ResFinder数据库或者CARD数据库abricate --db resfinder bin_representative.fa resfinder_results.txt这些功能分析的结果汇总起来就能回答“这个菌能降解什么底物”“它带了哪些耐药基因”“它的代谢通路有什么特殊性”等问题。可视化方面我推荐用ggtree画基因组系统发育树并加上功能注释热图或者用AnnoTree在线的GTDB树做展示。这些图也是宏基因组文章里最有辨识度的部分。6. 常见问题与排查经验宏基因组Bin流程的报错和异常结果花样繁多我挑几个我实际遇到最多的问题直接给出排查路径和解决方案建议你收藏起来逐条对照。6.1 组装阶段的问题问题1N50极低1000bp大量短contig。排查思路先看质控后的reads总量如果clean数据不足3Gb大概率是数据量不足再检查GC含量分布如果GC分布呈现明显的双峰可能是宿主污染没去除干净宿主基因组碎片混进了组装。解决方案增加测序深度或者重新严格去宿主提高比对敏感度并使用更大的参考数据库。如果确定是数据量不够任何参数调整都治标不治本。问题2megahit运行时内存溢出被杀死。排查思路megahit默认把所有重复序列都加载到内存如果样本复杂度高、重复序列多内存消耗会超预期。检查--memory参数是否设得太小同时确认服务器有没有其他任务抢占内存。解决方案把--memory调低如0.5让megahit使用磁盘存储kmer虽然速度下降但不会崩。复杂样本我推荐用--k-list 21,41,61,81,99这样的多kmer迭代模式它比默认更稳。6.2 分箱质量不佳的问题问题3Bin数量远少于预期而且很多contig没有被分配。排查思路这一步优先检查深度矩阵的质量。用jgi_summarize_bam_contig_depths生成的depth.txt如果列数不对或者样本间深度差异极小co-binning的信号就会很弱。解决方案确认每个样本的BAM文件是否都成功比对检查比对率通常要在80%以上。如果只有单样本数据co-binning本就受限可以考虑补充同生态位样本这是提升Bin数量最有效的手段。问题4CheckM显示污染度10%Bin里有明显的外源contig。排查思路可能是组装阶段产生的嵌合contigchimeric contig也可能是分箱阈值设置过松。检查污染contig的GC含量和覆盖度是否与其他contig差异显著如果是嵌合contig直接剔除即可如果只是噪声contig重新用更严格参数跑分箱。解决方案用bowtie2把污染contig比对到参考数据库比如GTDB代表基因组看看它到底属于哪个物种更合理然后手动从Bin中移除。人工精炼确实是脏活累活但这一步是发高质量文章的关键。6.3 注释与分析阶段的常见问题问题5GTDB-Tk报错说找不到标记基因。排查思路这类情况多数发生在Bin质量太差完整度30%或者输入文件为空。GTDB-Tk需要至少能找到部分标记基因才能定位谱系。解决方案回到分箱精炼步骤把完整度太低的Bin剔除或者从原始组装的contigs里重新提取这些Bin的序列看看是不是fasta格式有问题比如序列行被截断。问题6eggNOG-mapper注释率很低50%。排查思路先确认蛋白序列文件是否正常是否包含大量*终止符或被截断的序列。再检查输入fasta的ID格式eggNOG-mapper对ID里的特殊字符比较敏感比如空格、括号会导致注释中断。解决方案用seqkit清洗序列文件把ID标准化为简单的字母数字组合重新运行emapper。如果注释率依然低可能是基因组本身偏向新奇的未表征谱系这不一定是错误但在文章中需要说明。问题7dRep去重结果太少或太多。排查思路dRep的ANI阈值-sa默认0.95如果你觉得去重太狠可以把阈值调高到0.98表示只有更相似的基因组才合并如果去重太轻说明阈值或完整度过滤参数设置偏保守检查是否把低质量Bin也纳入了比较。解决方案dRep去重前务必先做CheckM过滤我一般只用完整度≥50%且污染度≤10%的Bin参与dRep否则大量低质量Bin会干扰聚类中心的选择。写在最后一点经验之谈做宏基因组Bin最大的体会是“慢工出细活”。工具本身的运行时间往往不是瓶颈瓶颈在于每一步之间的质量把控。我见过不少人在组装完成后直接跑分箱然后对着一个完整度只有30%的Bin发呆也见过有人跳过dRep拿着冗余Bin做物种统计最后数字大得离谱被审稿人打回。这些教训都是可以提前规避的。我个人推荐的最小可行流程是fastp质控 → bowtie2去宿主 → megahit组装 → metaquast评估 → jgi_summarize_bam_contig_depths生成深度 → metabat2/maxbin2/concoct分箱 → DAS Tool整合 → dRep去重 → CheckM评估 → GTDB-Tk注释 → ProdigaleggNOG-mapper功能注释。每一步都跑通并做好记录你的分析结果就能达到发表水平。如果你按上面流程跑一遍有几个小地方可以单独再优化多样本co-binning时可以在深度矩阵里手动加入样本的生态分组信息DAS Tool和CONCOCT都能利用分组信息组装前查看一下reads的kmer分布如果峰值集中在高kmer说明样本复杂度低可以尝试用spades提高连接精度对重点关注的目标菌株可以在Bin基础上再做一轮迭代组装reassembly用该Bin的reads重新组装往往能进一步提高基因组完整度。最后留个实用建议把每一步的日志文件和中间文件都保留好特别是版本号、数据库版本号和关键参数写文章methods时直接照抄即可后面补数据整理时会省很多力气。目前的经验就到这里如果后续有新的工具和工作流更新我再继续补充。
