Hifiasm的使用

Hifiasm是用于PacBio Hifi读取的快速单倍型解析的从头汇编程序。它可以在几个小时内组装一个人类基因组,并与加利福尼亚红木基因组(迄今为止测序最复杂的基因组之一)一起工作。Hifiasm可以生产质量最好的组装商的初级/替代组装。它还引入了新的图合并算法,并在给定三重数据的情况下实现了最佳的单倍型解析程序集。

我认为hifiasm不仅组装速度快,而且准确度也很好,所以还是很推荐使用

#使用conda安装
conda install -c bioconda hifiasm
#安装hifiasm(需要g++和zlib)
git clone https://github.com/chhylp123/hifiasm
cd hifiasm && make

由于是bam格式需要转换为fasta格式

# bam --> fasta
samtools view *.bam | awk '{print ">"$1"\n"$10}' > fasta
#补充一下其他格式的转换
## sam ---> fasta
cat *.sam | awk '{print ">"$1"\n"$10}' > *.fasta
## fasta ---> sam
bowtie2 -1 *_1.fa -2 *_2.fa -p 16 -x prefix -S *.sam
## sam --> bam
# -@:线程 -b:输出格式为BAM -S:自动检测输入格式 -o:输出文件
samtools view -@ 16 -b -S final.sam -o final.bam
## bam --> sam
samtools view *.bam -O SAM > *.sam
$ hifiasm
Usage: hifiasm [options] <in_1.fq> <in_2.fq> <...>
Options:
  Input/Output:
    -o STR       prefix of output files [hifiasm.asm]
    -i           ignore saved read correction and overlaps
    -t INT       number of threads [1]
    -z INT       length of adapters that should be removed [0]
    --version    show version number
  Overlap/Error correction:
    -k INT       k-mer length (must be <64) [51]
    -w INT       minimizer window size [51]
    -f INT       number of bits for bloom filter; 0 to disable [37]
    -D FLOAT     drop k-mers occurring >FLOAT*coverage times [5.0]
    -N INT       consider up to max(-D*coverage,-N) overlaps for each oriented read [100]
    -r INT       round of correction [3]
  Assembly:
    -a INT       round of assembly cleaning [4]
    -m INT       pop bubbles of <INT in size in contig graphs [10000000]
    -p INT       pop bubbles of <INT in size in unitig graphs [0]
    -n INT       remove tip unitigs composed of <=INT reads [3]
    -x FLOAT     max overlap drop ratio [0.8]
    -y FLOAT     min overlap drop ratio [0.2]
    -u           disable post join contigs step which may improve N50
    --lowQ       INT
                 output contig regions with >=INT% inconsistency in BED format; 0 to disable [70]
    --b-cov      INT
                 break contigs at positions with <INT-fold coverage; work with '--m-rate'; 0 to disable [0]
    --h-cov      INT
                 break contigs at positions with >INT-fold coverage; work with '--m-rate'; -1 to disable [-1]
    --m-rate     FLOAT
                 break contigs at positions with <=FLOAT*coverage exact overlaps;
                 only work with '--b-cov' or '--h-cov'[0.75]
    --primary    output a primary assembly and an alternate assembly
  Trio-partition:
    -1 FILE      hap1/paternal k-mer dump generated by "yak count" []
    -2 FILE      hap2/maternal k-mer dump generated by "yak count" []
    -c INT       lower bound of the binned k-mer's frequency [2]
    -d INT       upper bound of the binned k-mer's frequency [5]
    -3 FILE      list of hap1/paternal read names []
    -4 FILE      list of hap2/maternal read names []
    --t-occ      INT
                 force remove unitigs with >INT unexpected haplotype-specific reads;
                 ignore graph topology; [60]
  Purge-dups:
    -l INT       purge level. 0: no purging; 1: light; 2/3: aggressive [0 for trio; 3 for unzip]
    -s FLOAT     similarity threshold for duplicate haplotigs [0.75 for -l1/-l2, 0.55 for -l3]
    -O INT       min number of overlapped reads for duplicate haplotigs [1]
    --purge-cov  INT
                 coverage upper bound of Purge-dups [auto]
    --n-hap      INT
                 number of haplotypes [2]
  Hi-C-partition:
    --h1 FILEs   file names of Hi-C R1  [r1_1.fq,r1_2.fq,...]
    --h2 FILEs   file names of Hi-C R2  [r2_1.fq,r2_2.fq,...]
    --seed INT   RNG seed [11]
    --n-weight   INT
                 rounds of reweighting Hi-C links [3]
    --n-perturb  INT
                 rounds of perturbation [10000]
    --f-perturb  FLOAT
                 fraction to flip for perturbation [0.1]

典型的hifiasm命令行如下所示:

hifiasm -o <outputPrefix> -t <nThreads> <HiFi-reads.fasta>
hifiasm -o NA12878.asm -t 32 NA12878.fq.gz

其中NA12878.fq.gz提供输入reads,-t设置使用中的CPU数,-o输出文件的前缀名

加入HiC测序数据进行hifiasm组装
在新版本中可添加hic测序数据进行组装,组装的结果还是不错的

hifiasm --h1 HIC_1_clean.fq.gz --h2 HIC_2_clean.fq.gz -t 50 HiFi-reads.fq.gz
# --h1 --h2 HiC 数据
# -t 线程数
# -o 输出文件前缀
# HiFi-reads.fq.gz

当亲本reads可用时,hifiasm可以生成一对具有三位一体的单倍型解析程序集。要进行这种组装,需要先用yak计算k-mers,然后进行组装:

yak count -b37 -t <nThreads> -o <pat.yak> <paternal-short-reads.fastq>
yak count -b37 -t <nThreads> -o <mat.yak> <maternal-short-reads.fastq>
yak count -k31 -b37 -t16 -o pat.yak paternal.fq.gz
yak count -k31 -b37 -t16 -o mat.yak maternal.fq.gz

然后我们用以下命令产生the paternal assembly and the maternal assembly

hifiasm -o <outputPrefix> -t <nThreads> -1 <pat.yak> -2 <mat.yak> <HiFi-reads.fasta>
hifiasm -o NA12878.asm -t 20 -1 pat.yak -2 mat.yak NA12878.fq.gz

对于非三重组装,hifiasm会生成以下文件:

prefix.r_utg.gfa(Haplotype-resolved raw unitig graph in GFA format):保留了组装生成的所有单体型信息,包括体细胞突变和重复的测序错误。
prefix.p_utg.gfa(Haplotype-resolved processed unitig graph without small bubbles):无小气泡的单倍型解析;去掉由于体细胞突变和数据背景噪音引起的small bubbles(这个并不是真正的单体型信息),对于高度杂合基因组物种优先选择这个结果。
prefix.p_ctg.gfa(Primary assembly contig graph):对于低杂合度物种来说,优先选择该文件;对于高杂合度物种,该结果代表其中一个单倍型。
prefix.a_ctg.gfa(Alternate assembly contig graph):组装出来的另一套单体型基因组结果。

对于三重组装,hifiasm会生成以下文件:

prefix.r_utg.gfa(Haplotype-resolved raw unitig graph in GFA format):保存了所有的单倍型信息。
prefix.hap1.p_ctg.gfa(Phased paternal/haplotype1 contig graph):保留了阶段性父系/单倍型1组装。
prefix.hap2.p_ctg.gfa(Phased maternal/haplotype2 contig graph):保留了阶段性母系/单倍型2组装。

目前用于Pacbio HIFI测序数据的组装软件主流上有:FALCON、Hifiasm、Hicanu三款。Hifiasm的使用介绍Hifiasm是用于PacBio Hifi读取的快速单倍型解析的从头汇编程序。它可以在几个小时内组装一个人类基因组,并与加利福尼亚红木基因组(迄今为止测序最复杂的基因组之一)一起工作。Hifiasm可以生产质量最好的组装商的初级/替代组装。它还引入了新的图合并算法,并在给定三重数据的情况下实现了最佳的单倍型解析程序集。软件安装#使用conda安装conda insta Canu专门组装PacBio或Oxford Nanopore序列。Canu分为三个阶段:校正、修整和装配。校正阶段将提高读取中基数的准确性。微调阶段将微调显示为高质量序列的部分的读取,删除可疑区域,如剩余的SMRTbell适配器。组装阶段将把读取排序为重叠,生成一致序列,并创建备用路径图。 输入序列可以是FASTA或FASTQ格式,未压缩或用gzip(.gz)、bzip2(.bz2)或xz(.xz)压缩。请注意,不支持zip文件(.zip)。 官方测试数据下载 下面包括了pacbio、Nanopore 从Hi-C数据高分辨率估计DNA-DNA相互作用频率的工具 HIFI是一组工具,可以根据Hi-C数据以限制性片段(RF)分辨率推断真正的染色体内相互作用频率。 它使用自适应核密度估计和马尔可夫随机场方法从稀疏读取计数矩阵中提供对交互频率矩阵的准确估计。 输入:与来自给定染色体(或其一部分)的Hi-C数据相对应的BAM文件。 步骤1:使用BAMtoSparseMatrix.py程序生成RF分辨率读取计数矩阵。 步骤2:使用HIFI程序产生RF分辨率的真实IF估计。 步骤3 :(可选)使用parseHIFIoutput.py和plotHIFIoutput.py程序可视化推断出的真实IF矩阵。 步骤4 :(可选)使用SparseToFixed.py程序将RF分辨率矩阵转换为规范的固定合并矩阵。 步骤5 :(可选)使用callPeaks程序进行调用循环。 # Install hifiasm (requiring g++ and zlib) git clone https://github.com/chhylp123/hifiasm cd hifiasm && make # Run on test data (use -f0 for small datasets) wget https://github.com/chhylp123/hifiasm/releases/download/v0.7/chr11-2M.fa.gz ./hifiasm -o test -t4 -f0 chr11-2M.fa.gz 2> test.log awk ' /^S/{print ">"$2;print $3} ' test.p_ctg.gfa > test.p_ctg.fa # get primary contigs in FASTA # Assembl
hifiasm是一个能有效利用PacBio HiFi测序技术,在分型组装图(pahsed assembly gprah)中可靠的表示单倍体信息的算法。 流程介绍 hifiasm的分析流程如下,主要分为3个阶段 第一阶段:通过所有序列的相互比对,对前在测序错误进行纠正。如果一个位置只存在两种碱基类型,且每个碱基类型至少有3条read支持,那么这个位置会被当作杂合位点,否则,视作测序错误,将被纠正。 第二阶段:根据序列之间的重叠关系,构建分型的字符串图(phased string graph)。其中调整朝向的序
使用 Hifiasm 的步骤如下: 安装 Hifiasm。你需要先安装依赖软件,然后使用 git clone 来下载 Hifiasm 的源代码,最后运行 make 命令来编译和安装。 准备数据。Hifiasm 需要你提供测序的原始数据,包括 FASTQ 格式的序列数据和参考基因组。 rust-mdbg 是一种超快的minimizer-space de Bruijn graphs (mdBG) 实现,适用于组装长而准确的读数,例如PacBio HiFi。 随着18年以来Pacbio HiFi reads的出现,让一些复杂基因组组装不再复杂,而且有越来越多的课题组也加入到了基因组学的研究中,正是因为有了高精度长读长的reads,目前也产生了很多专门用于HiFi组装的软件,如Hifiasm,当然这篇文章的软件的算法,可以用超短时间,低内存去组装。我相信随着不断的发展,以后做组装
Genome assemblers List of genome assembly programs for PacBio long-read datasets. Not in any specific order :D Some of the assemblers are suitable also for ONT reads. Hifiasm https://github.com/chhylp123/hifiasm Hifiasm is a fast haplotype-resolved de no
HiFi reads(High fidelity reads) 是Sequel II 三代测序平台推出的兼顾长读长和高准确度的测序序列,一般采用CCS(Circular Consensus Sequencing)模式测序。在这种测序模式下,酶读长一般大于插入片段长度,因此酶会绕着模板进行滚环测序,插入片段会被多次测序。单次测序中造成的随机测序错误,可以通过算法进行自我纠错校正,最终得到高准确度的HiFi reads。 要在单次测序中得到更多的HiFi reads往往需要平衡测序的酶读长
### 回答1: 使用hifiasm组装基因组时,对HiFi数据进行纠错非常重要。HiFi数据的准确性比传统的测序数据更高,但是仍然可能包含一些错误,如插入、缺失或替换错误。因此,在进行组装之前,需要对HiFi数据进行错误纠正,以确保生成高质量的基因组hifiasm已经内置了错误纠正功能,可以根据HiFi数据进行纠正,提高组装结果的质量。因此,当使用hifiasm组装HiFi数据时,需要对数据进行错误纠正。 ### 回答2: 在使用hifiasm进行基因组组装时,是否需要对HiFi数据进行纠错,这取决于HiFi数据的质量和组装需求。HiFi(高保真)测序技术相较于传统的二代测序技术,具有较高的准确性和较低的错误率,因此在某些情况下可以省略纠错步骤。 首先,如果HiFi数据的质量非常高,即错误率非常低,组装的结果能够满足研究需求,那么可以直接使用未经纠错的HiFi数据进行组装。这样可以节省时间和资源,同时避免引入额外的错误。 其次,如果组装的目标是对基因组结构和变异进行较精确的分析,如鉴定重复序列、融合基因、基因型等,那么纠错可能是必要的。因为高保真测序虽然准确性高,但仍有一定的错误率,这些错误可能会对特定应用产生影响,如在辨识高度相似序列时容易产生错配。在这种情况下,建议对HiFi数据进行纠错,以提高组装的精度和准确性。 总之,使用hifiasm组装基因组时,是否需要对HiFi数据进行纠错取决于数据质量和组装需求。对于高质量的HiFi数据,可以直接使用未经纠错的数据进行组装。然而,如果需要获得更精确的基因组结构和变异信息,则建议对HiFi数据进行纠错,以提高组装的准确性和可靠性。 ### 回答3: 使用hifiasm组装基因组时,是否需要对HiFi数据进行纠错取决于HiFi数据的质量和组装的目标。HiFi数据是指具有较高准确性的长读长(Long-read)测序数据,相对于传统的短读长(Short-read)测序数据,具有更高的连续性和能力解决重复区域等难题。 首先,如果HiFi数据质量较高,经过质控处理后已经具有较高的准确性,那么在组装基因组时就不一定需要进行纠错。这是因为HiFi数据的准确性已经相对较高,可以直接用于组装,减少了纠错的需求,同时提高了组装的准确性和连续性。 相反,如果HiFi数据质量较差,包含较多的错误、缺失或假阳性,那么在进行组装之前,需要对HiFi数据进行纠错。纠错的目的是通过使用纠错算法来修复错误或缺失的序列,以提高数据的准确性、连续性和可信度。纠错通常包括错误校正和碱基修复等步骤,这些步骤可以帮助消除测序错误并提高测序数据的质量,从而更好地进行基因组组装。 总之,是否需要对HiFi数据进行纠错的问题具有一定的灵活性,需要根据具体的数据质量和组装的目标来决定。如果数据质量较高,可以直接进行组装,而如果数据质量较差,则需要对数据进行纠错以提高组装的准确性。