STAR比对
比对原理参考生信媛的文章:https://www.jianshu.com/p/16c938fd3bd6
建立索引:
STAR --runMode genomeGenerate \
--genomeDir ~/HF/GSE55296/HF/afterfastp/SRR1175538\index --genomeFastaFiles ~/HF/Homorefer/humanhg38/hg38.fa \
--sjdbGTFfile ~/HF/Homorefer/humangtf/gencode37.gtf --sjdbOverhang 75
#这个参数是用于可变剪接的预测,一般设置为100(101-1),也可设置为测序长度减1
注意参考基因组fasta和gtf注释文件的染色体名称必须保持一致,都是chr1、chr2、chr3或1、2、3。
2020-08-10:
用中科院服务器构建好了STAR的index文件,中科院代码如下所示:
STAR --runMode genomeGenerate --runThreadN 10 \
--genomeDir /picb/rnasys/share/database/Homo_sapiens/GENCODE/hg19/StarIndex/ \
--genomeFastaFiles /picb/rnasys/share/database/Homo_sapiens/GENCODE/hg19/GRCh37.primary_assembly.genome.fa \
--sjdbGTFfile /picb/rnasys/share/database/Homo_sapiens/GENCODE/hg19/gencode.v27lift37.annotation.gtf
--genomeSAindexNbases 14 --genomeChrBinNbits 18 --genomeSAsparseD 1 --sjdbOverhang 100
放在/home/sxw/HF/index里,现在尝试在GSE46224里运行STAR:
#在/home/sxw/HF/GSE46224/normal/afterfastp文件夹里,目前有SRR830965-SRR830972这8个双端测序文件
STAR \
--genomeDir /home/sxw/HF/Index \ #索引文件夹
--runThreadN 20 \ #20个线程
--readFilesCommand zcat \ #输入的测序文件是fq.gz格式的(未解压缩的)
--readFilesIn SRR830965_1.fastp.fq.gz SRR830965_2.fastp.fq.gz \ #双端测序(空格空开)
--outSAMtype BAM SortedByCoordinate \ #输出格式为BAM并排序
--outBAMsortingThreadN 10 \ #SAM排序成BAM时调用线程数
--outFileNamePrefix ./SRR830965_ #输出文件的前缀
--quantMode TranscriptomeSAM GeneCounts
#STAR是基于基因组比对,RSEM是基于转录本比对,这个参数是将基于基因组比对转化为基于转录本比对,
#为使用RSEM定量分析做准备;GeneCounts可生成每个gene上有几个reads
报错:
报错原因:版本错误?应该用2.7.4a版本
STAR输出文件解读:
*_log.out记录STAR运行时的参数和命令,用于检测运行的是否正确
*_log.final.out储存了对比对结果的统计信息(可以放在大论文里),RNA-seq总数(number of input reads)、平均reads长度
*_ST.out.tab记录剪接位点的信息
*_Aligned.sortedByCoord.out.bam是比对排序过的bam文件
*_Aligned.toTranscriptome.out.bam转换后基于转录本(非基因组)的bam文件
*_ReadsPerGene.out.tab是每个基因上有多少reads的统计信息
2020-08-15:
在/home/sxw/HF/GSE46224/HF/afterfastp这个文件夹里建立索引,代码如下所示:
STAR --runMode genomeGenerate \ #运行程序模式,默认是比对
--genomeDir /home/sxw/HF/Homorefer/index \ #这个index文件夹一定是事先建立好的
--runThreadN 20 \ #线程数
--genomeFastaFiles /home/sxw/HF/Homorefer/humanhg38/hg38.fa \ #基因组fasta文件路径
--sjdbGTFfile /home/sxw/HF/Homorefer/humangtf/genecode38.gtf \ #gtf文件路径
--sjdbOverhang 100 #读段长度减1,这个就用默认参数100
建立索引成功,接下来在/home/sxw/HF/GSE46224/HF/afterfastp文件夹里进行比对,写循环进行比对:
for i in $(ls *_1.fastp.fq.gz)
do
i=${i/_1.fastp.fq.gz/}
STAR --genomeDir /home/sxw/HF/GSE46224/HF/afterfastp/index --runThreadN 10 \
--readFilesCommand zcat --readFilesIn ${i}_1.fastp.fq.gz ${i}_2.fastp.fq.gz \
--outSAMtype BAM SortedByCoordinate --outFileNamePrefix ./${i}_
done
以上GSE46224是双端测序,接下来GSE116250是单端测序:
for i in $(ls *.fastp.fq.gz)
do
i=${i/.fastp.fq.gz/}
STAR --genomeDir /home/sxw/HF/Homorefer/index --runThreadN 20 \
--readFilesCommand zcat --readFilesIn ${i}.fastp.fq.gz \
--outSAMtype BAM SortedByCoordinate --outFileNamePrefix ./${i}_
done
2021-03-26:对小鼠基因组进行操作
在ftp://ftp.ensembl.org/pub/中下载小鼠参考基因组文件和注释文件
在跑流程时遇到一个问题,GTF和FASTA里染色体命名方式不同,fasta里为chr1,gtf文件里为1,将gtf文件里的1替换为chr1,方式:sed -i ‘s/^/chr&/’ *.gtf