发现服务器上没有安装STAR (Spliced Transcripts Alignment to a Reference),这个转录组最常用的比对工具之一,也是我之前一直的用的转录组比对工具,今天安装一下并重新学习,好好理解之前设置的参数是否正确。
STAR是ENCODE计划(ENCyclopedia Of DNA Elements,人类基因组DNA元件百科全书计划)的御用pipeline工具,在转录组的文章中出镜率极高,别人说其准确率高,映射速度快,但需要占用大量内存,对计算资源有较高的要求。在之前Hisat2安装使用过程中,提到了2017年的一篇NC比较转录组比对工具的文章,又查了一下,这样总结的:STAT相比较TopHat和Hisat2,有较高的唯一比对率;STAR会将没有paired mapping上的reads都剔除,避免single reads比对到基因组上;并且STAR对lower-quality(包括more soft-clipped和错配碱基)比对有较高的容忍度,这对一些杂合率较高的基因组优势比较明显;这次注意到,在用GATK对RNA-Seq进行 Call Variants时,采用STAR的STAR 2-pass模式,估计以后也会用到。
下载安装软件
https://github.com/alexdobin/STAR
选择其中一个版本下载后, tar -zxvf 进行解压:
tar -zxvf STAR-2.7.9a.tar.gz
cd STAR/source
make STAR
二、构建基因组索引Index
和Hisat2一样,需要先构建基因组索引,索引文件作用现在还只记得是在比对过程中,我们并不是把几十万条reads直接比对到基因组上去,而是和Index进行比较,使比对过程变地可行,希望等课题结束后,再回过头来好好学习一下索引文件作用的原理,先上脚本:
参数解释:
--runThreadN:线程数为10
--runMode:genomeGenerate,构建基因组索引;
--genomeDir:指定索引生成目录;
--genomeFastaFiles:指定参考基因组;
--sjdbGTFfile:指定参考基因组的注释文件;
--sjdbOverhang:这个是reads长度的最大值减1,默认是100,我不是很理解很多人分析的学习方法中都设置100,二代测序都是150bp的序列长度,我设置了149 (有时间时改一下数值比较一下对结果是否有影响);
发现有三个反斜杠“\”异常成了黄色,暂时不清楚原因,结果报错了:
其实我也不知道为啥,将运行命令行的反斜杠去掉,再试一下:
刚才的问题解决了,又报了其它错误信息:
居然是gtf文件的错误,第一次遇见这个问题,然后找原因:
我们看一下gtf的开头是CM023448.1,如下图:
我的参考基因组开头是>GWHAMMI00000001,如下图:
原来是染色体的命名方式不一样,一个是CM开头,另一个是GWHAMMI开头,我回到NCBI去下载序列文件又看了一下,居然是我之前下错文件了(从另一个数据库下载的参考基因组,两个数据库同一物种染色体编号规则不同),之前做的工作又浪费了,重新下载,指定序列文件,30min后,成功建立索引,索引目录如下:
reads比对:
相比于Hisat2,STAR太多的参数设置了,对于模式生物还好,很多默认参数就可以,但对于我的课题研究,就得仔细看看这些参数了,着实用去了我不少时间,先上我的脚本,如下图:
我的参数设置:
未用的其它参数:
--outFilterMismatchNmax:比对时允许的最大错配数(可根据结果修改);
--outSAMmapqUnique60:将uniquelymapping reads的MAPQ值调整为60,满足下游使用GATK进行分析的需要;
--readFilesCommand:对FASTQ文件进行操作;
--readFilesIn:输入FASTQ文件的路径;
--outSJfilterReadsUnique:对于跨越剪切位点的reads(junction reads),只考虑跨越唯一剪切位点的reads;
--alignIntronMin:最短的内含子长度设定了20,(根据GTF文件计算);
--alignIntronMax:最长的内含子长度设定了50000,(根据GTF文件计算);
--bamRemoveDuplicatesType 输出BAM文件时,STAR还可以对BAM进行一些预处理,用于去重。
四:结果如下图,
1、使用samtools查看生成的BAM文件。
samtoolsview sample_Aligned.sortedByCoord.out.bam |head -n 5
2、结果内容:
Aligned.sortedByCoord.out.bam:reads比对到基因组的位置;
Aligned.toTranscriptome.out.bam:reads比对到转录本的位置;
Log.final.out:统计了比对情况的信息,是非常重要的结果;
SJ.out.tab:splice junctions的一些信息,其中需要注意的是:对于junction的位置信息,STAR则是按照intron的起始和终止位置来定,而其他的一些软件则是按照exon的位置来决定的
附:我比较了一下star和Hisat2的结果差异,在运行时间和比对率上,star并没有表现出明显的优越性上。
参考:
https://blog.csdn.net/weixin_28913137/article/details/112281831
本文使用 文章同步助手 同步
网友评论