hisat2比对转录组数据

目前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 -o ${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()

你可能感兴趣的:(hisat2比对转录组数据)