最近使用了另一个很火的比对软件:STAR。STAR在比对速度上胜过其他比对器50多倍,在一个普通的12核服务器上,每小时比对5.5亿2 x 76 bp双端片段到人类基因组上,同时改进了比对敏感性和准确性。除了典型剪接的非偏从头检测外,STAR能够发现非典型拼接和嵌合(融合)转录本,并能够比对全长RNA序列。
虽然STAR的比对速度非常的快,但是这是建立在你有足够的内存基础上的,比如你如果使用小鼠或者人类的基因组来比对,那么至少需要30G内存来支持STAR的运行,所以一般的笔记本电脑都无法达到这个要求。
Step 1 - Build a genome index构建索引
进行比对之前,需要对基因组构建索引。代码格式如下:
STAR --runMode genomeGenerate --runThreadN <# cpus> --genomeDir <genome output directory> --genomeFastaFiles <input Genome FASTA file>
参数说明:
- --runThreadN是指你要用几个cpu来运行;
- --genomeDir构建索引输出文件的目录;
- --genomeFastaFiles你的基因组fasta文件所在的目录。
以人类GRCh38基因组来构建索引,代码如下:
STAR \
--runMode genomeGenerate \
--runThreadN 40 \
--genomeDir ./ \ #生成文件存到当前文件夹
--genomeFastaFiles /gpfs/share/apps/iGenomes/Homo_sapiens/NCBI/GRCh38/Sequence/WholeGenomeFasta/genome.fa \
--sjdbGTFfile /gpfs/share/apps/iGenomes/Homo_sapiens/NCBI/GRCh38/Annotation/Genes.gencode/genes.gtf
产生结果如下图所示(未打码文件)
Step 2 - Align RNA-Seq Reads to the genome with STAR比对
首先要明确的是,STAR软件的参数实在是太多了,那么经常用的就那么几个。
我运行的代码:
STAR \
--runThreadN 40 \ #线程数
--runMode alignReads \#比对模式
--readFilesCommand zcat \#说明你的fastq文件是压缩形式的,就是.gz结尾的,不加的话会报错
--quantMode TranscriptomeSAM GeneCounts \ #将reads比对至转录本序列
--twopassMode Basic \#先按索引进行第一次比对,而后把第一次比对发现的新剪切位点信息加入到索引中进行第二次比对。这个参数可以保证更精准的比对情况,但是费时也费内存。
--outSAMtype BAM Unsorted \ #输出BAM文件,不进行排序。如果不加这一行,只输出SAM文件。
--outSAMunmapped None \
--genomeDir /gpfs/home/fangy04/downloads/STAR_index/GRCh38/ \ #索引文件目录
--readFilesIn /gpfs/home/fangy04/downloads/SRR8112732_1.fastq.gz /gpfs/home/fangy04/downloads/SRR8112732_2.fastq.gz \ #两个fastq文件目录
--outFileNamePrefix DRB_TT_seq_SRR8112732 #输出文件前缀
运行时会显示进度
如果你想查看比对率之类的信息,可以查看*.Log.final.out文件:
更多信息可阅读官方PDF文档STAR.pdf