hisat2比对转录组数据
2021-04-05 本文已影响0人
大海龟啦啦啦
目前hisat2是最流行的转录组比对软件,其比对速度快,且准确度较高。具体使用方法如下:
用到的软件版本为hisat2-2.2.1,samtools-1.6
1. 构建hisat2参考基因组比对库
hisat2-build -p 10 ref.fa ref
2. 用hisat2进行比对
#对于双端序列
hisat2 -p 20 -x ref -1 ${sample}_1.fastq.gz -2 ${sample}_2.fastq.gz -S ${sample}.sam
#对于单端序列
hisat2 -p 20 -x ref -U ${sample}.fastq.gz -S ${sample}.sam
3. 用samtools将sam转换成bam
samtools view -Sb ${sample}.sam -@ 20 > ${sample}.bam
4. 用samtools将bam排序
samtools sort ${sample}.bam -@ 20 ${sample}.sort
5. 用featureCounts进行计数
featureCounts -T 10 -a ref.gtf -o ${sample}.txt -f -t gene ${sample}.sort.bam
6. 用自己写的脚本算TPM值
import sys
if len(sys.argv) !=3 or "--help" in sys.argv:
print("Usage: python counts2_TPM.py featurecounts.results Tpm.results")
exit()
file=open(sys.argv[1],"r")
line =file.readlines()
out=open(sys.argv[2],"w")
list=[]
for i in line[2:]:
l=i.strip().split("\t")
num=l[-1]
len=l[-2]
N=int(num)/int(len)
list.append(N)
for i in line[2:]:
l=i.strip().split("\t")
id=l[0]
num=l[-1]
len=l[-2]
tpm=((int(num)/int(len))*(10**6))/sum(list)
out.write(id+"\t"+str(tpm)+"\n")
file.close()
out.close()