对比(Mapping)就是通过局部比对将短的reads定位到参考基因组上,以共后续分析使用。序列比对的过程包括:首先对参考基因组建立索引,建立索引之后,利用比对软件将clean data与参考基因组进行比对,得到sam文件,通过samtools view转换为bam文件,bam文件为二进制文件,对bam文件进行排序,得到排序后的bam文件。
Subread
subread是个套件,里面有subread aligner, subjunc aligner, featureCounts, exactSNP。subread aligner可以用于DNA-seq和RNA-seq;当用于RNA-seq时,subread只适用于差异分析;对于检测基因组变异如可变剪接之类的,需要reads的完全比对,这时候可以使用subjunc进行比对;在比对RNA-seq数据时,subread不会取检测exon-exon junctions的存在,只会把exon-spanning eads的最大可比对区域作为比对结果.但是,如果只是进行差异分析的话,subread的结果足以进行.subread的比对上reads可能会比subjunc多.
## 建索引
subread-buildindex -o XXX_subread.genome XXX.genome.fasta.gz
## 比对
for i in A_rep1 A_rep2 A_rep3 B_rep1 B_rep2 B_rep3 C_rep1 C_rep2 C_rep3
do
subjunc -T 6 -i $SubjuncGenome -r $output/2_fastp/"$i"_R1.fq.gz -R $output/2_fastp/"$i"_R2.fq.gz -o $output/3.1.1_subjunc/"$i".bam
done
wait
Hisat2
HISAT2利用大量FM索引以覆盖整个基因组,使用改进的BWT算法,实现了更快的速度和更少的资源占用。
## 建索引
hisat2-build XXX.genome.fa XXX_hisat2.genome
## 比对
for i in A_rep1 A_rep2 A_rep3 B_rep1 B_rep2 B_rep3 C_rep1 C_rep2 C_rep3
do
hisat2 -p 6 --dta -x $Hisat2Genome -1 $output/2_fastp/"$i"_R1.fq.gz -2 $output/2_fastp/"$i"_R2.fq.gz -S $output/4.2.1_hisat2_sam/"$i".sam
done
wait
## SAM转BAM,sort,index
for i in A_rep1 A_rep2 A_rep3 B_rep1 B_rep2 B_rep3 C_rep1 C_rep2 C_rep3
do
samtools sort -@ 8 -o $output/4.2.2_hisat2_bam/"$i".bam $output/4.2.1_hisat2_sam/"$i".sam
samtools index $output/4.2.2_hisat2_bam/"$i"_sorted.bam
done
wait
Tophat2
TopHat是一个基于Bowtie的RNA-Seq数据分析工具,它可以快速确认exon-exon剪切拼接事件。TopHat2比对有三个主要的过程,转录组的比对、基因组的比对、剪接比对,双端测序的Read首先每端数据要分别单独进行比对,然后考虑比对的片段长度以及方向将单独比对结果合并在一起形成双端比对结果。
## 建索引
bowtie2-build XXX.genome.fa XXX_bowtie2.genome
## 比对
for i in A_rep1 A_rep2 A_rep3 B_rep1 B_rep2 B_rep3 C_rep1 C_rep2 C_rep3
do
tophat -o $output/4.3.1_Tophat2/$i -r 50 -p 5 -a 8 -G $XXX.genome.gtf $Bowtie2Genome $output/2_fastp/"$i"_R1.fq.gz $output/2_fastp/"$i"_R2.fq.gz
done
wait
## 去除PCRdup,sort,index
for i in A_rep1 A_rep2 A_rep3 B_rep1 B_rep2 B_rep3 C_rep1 C_rep2 C_rep3
do
samtools rmdup -s $output/4.3.1_Tophat2/$i/accepted_hits.bam $output/4.3.1_Tophat2/"$i".rmdup.bam
samtools sort $output/4.3.1_Tophat2/"$i".rmdup.bam -o $output/4.3.1_Tophat2/"$i".rmdup.sorted.bam
samtools index $output/4.3.1_Tophat2/"$i".rmdup.sorted.bam
done
wait