STAR 2-pass, picard 到gatk的使用

!!!对 RNA-seq 产出的数据进行变异检测分析,与常规重测序的主要区别就在序列比对这一步,因为 RNA-seq 的数据是来自转录本的,比对到参考基因组需要跨越转录剪切位点,所以 RNA-seq 进行变异检测的重点就在于跨剪切位点的精确序列比对。

STAR相比较其他两款软件有较高的唯一比对率;STAR会将没有paired mapping上的reads都剔除,避免single reads比对到基因组上;并且STAR对lower-quality(包括more soft-clipped和错配碱基)比对有较高的容忍度

构建基因组索引

STAR --runThreadN 25 --runMode genomeGenerate --genomeDir index_dir --genomeFastaFiles genome.fasta --sjdbGTFfile genome.gtf --sjdbOverhang 149
--runThreadN:线程数。

--runMode genomeGenerate:构建基因组索引。

--genomeDir:索引目录。(index_dir一定要是存在的文件夹,需提前建好)

--genomeFastaFiles:基因组文件。

--sjdbGTFfile:基因组注释文件。

--sjdbOverhang:reads长度减1。

实例
STAR --runThreadN 25 --runMode genomeGenerate --genomeDir STAR_index --genomeFastaFiles mm10.fa --sjdbGTFfile mm10_genes.gtf --sjdbOverhang 149
####
STAR --runThreadN 25 --runMode genomeGenerate --genomeDir STAR_index --genomeFastaFiles GRCm39.fa --sjdbGTFfile GRCm39.gtf --sjdbOverhang 149
STAR --runThreadN 25 --runMode genomeGenerate --genomeDir STAR_index_mm39 --genomeFastaFiles mm39.fa --sjdbGTFfile mm39.gtf --sjdbOverhang 149

#若出现报错如下:
[u20111230014@cpu23 GCF_GRCm38.p6]$ more Out.star_index 
        STAR --runThreadN 25 --runMode genomeGenerate --genomeDir STAR_index --genomeFastaFiles GRCm38.fa --sjdbGTFfile GRCm38.gtf --sjdbOverhang 149
        STAR version: 2.7.9a   compiled: 2021-05-04T09:43:56-0400 vega:/home/dobin/data/STAR/STARcode/STAR.master/source
Mar 29 22:19:17 ..... started STAR run
Mar 29 22:19:17 ... starting to generate Genome files

EXITING because of FATAL PARAMETER ERROR: limitGenomeGenerateRAM=31000000000is too small for your genome
SOLUTION: please specify --limitGenomeGenerateRAM not less than 33524373088 and make that much RAM available 

##解决
一般平台使用slurm时,cpu核数与内存之间要相对平衡,建议1:5,即#SBATCH -c 2; #SBATCH --mem=10G。
将脚本的cpu改大一点,并配上 --limitGenomeGenerateRAM 报错的内存数字
#!/bin/bash
#SBATCH -J Job.star_index
#SBATCH -p dna             
#SBATCH -N 1  
#SBATCH --mem=80G               
#SBATCH --cpus-per-task=40    
#SBATCH -t 1-10:00:00        
#SBATCH -o Out.star_index
#SBATCH --mail-user=394710725@qq.com

STAR --runThreadN 40 --runMode genomeGenerate --genomeDir STAR_index --genomeFastaFiles GRCm38.fa --sjdbGTFfile GRCm38.gtf --sjdbOverhang 149 --limitGenomeGenerateRAM 335
24373088

STAR 2-pass mode

为了发现更加灵敏的new junction,STAR建议使用2-pass mode,其能增加检测到的new junction数目,使得更多的splices reads能mapping到new junction。因此STAR先用一般参数做一遍mapping,收集检测到的junction信息,然后利用这已经annotated junction来做第二次mapping

双端比对

示例
STAR --twopassMode Basic --quantMode TranscriptomeSAM GeneCounts --runThreadN 6 --genomeDir index_dir --alignIntronMin 20 --alignIntronMax 50000 --outSAMtype BAM SortedByCoordinate --sjdbOverhang 149 --outSAMattrRGline ID:sample SM:sample PL:ILLUMINA --outFilterMismatchNmax 2 --outSJfilterReads Unique --outSAMmultNmax 1 --outFileNamePrefix out_prefix --outSAMmapqUnique 60 --readFilesCommand gunzip -c --readFilesIn seq1.fq.gz seq2.fq.gz

##单端比对
示例
STAR \
--runThreadN  20 \
--genomeDir hg19_STAR_db \
--readFilesIn reads.fq \
--sjdbGTFfile hg19.gtf \
--sjdbOverhang  100 \
--outFileNamePrefix sampleA \
--outSAMtype BAM SortedByCoordinate

##命令参数也很好理解:
--runThreadN :设置线程数
--genomeDir :index输出的路径
--genomeFastaFiles :参考基因组序列
--sjdbGTFfile :参考基因组注释文件
--sjdbOverhang :这个是reads长度的最大值减1,默认是100
如果是per-sample(单样本)的2-pass mapping,可以直接用--twopassMode Basic参数将第两步mapping中的make index省去,直接再mapping

操作路径:/home/u20111230014/workspace/genome/STAR_mm10
实例
STAR --runThreadN  25 --genomeDir  ./STAR_index --readFilesIn DPP-0_clean.fq --sjdbGTFfile mm10_genes.gtf --sjdbOverhang 100 --outFileNamePrefix DPP-0 --outSAMtype BAM SortedByCoordinate


操作路径:/home/u20111230014/workspace/genome/GRCm39/STAR_GRCm39
实例
STAR --runThreadN  25 --genomeDir  ./STAR_index --twopassMode Basic --readFilesIn DPP-0_clean.fq --sjdbGTFfile GRCm39.gtf --sjdbOverhang 149 --outFileNamePrefix DPP-0-GRCm39 --outSAMtype BAM SortedByCoordinate

操作路径: /home/u20111230014/workspace/genome/mm10_to_mm39
实例
STAR --runThreadN  25 --genomeDir  ./STAR_index --twopassMode Basic --readFilesIn DPP-0_clean.fq --sjdbGTFfile mm39.gtf --sjdbOverhang 149 --outFileNamePrefix DPP-0-mm39 --outSAMtype BAM SortedByCoordinate

picard

Picard由下列两样构成:基于Java的来处理SAM文件的命令行工具,和一个Java API (HTSJDK) (Java应用程序接口),这个API可以用于创建可以读写SAM文件的新软件。它支持SAM文本格式和SAM二进制格式 (BAM)。

注:参考基因组序列需要.dict文件和.fai文件,可参考https://software.broadinstitute.org/gatk/documentation/article?id=1601
PS: picard已更新语法!!!(https://gatk.broadinstitute.org/hc/en-us/articles/360037052812-MarkDuplicates-Picard-

/home/u20111230014/workspace/genome/GRCm39/STAR_GRCm39/picard_AddOrReplaceReadGroups.slurm

操作路径:/home/u20111230014/workspace/genome/GRCm39/STAR_GRCm39/
示例
java -jar ~/biosoft/picard/picard.jar CreateSequenceDictionary R=GRCm38.p5.genome.fa O=GRCm38.p5.genome.dict
samtools faidx GRCm38.p5.genome.fa

实例
操作路径:/home/u20111230014/workspace/genome/GRCm39/STAR_GRCm39
java -jar /home/public/software/miniconda2/share/picard-2.26.2-0/picard.jar CreateSequenceDictionary -R GRCm39.fa -O GRCm39.dict
samtools faidx GRCm39.fa

java -jar /home/public/software/miniconda2/share/picard-2.26.2-0/picard.jar CreateSequenceDictionary -R mm39.fa -O mm39.dict
samtools faidx mm39.fa
###

实例
java -jar /home/public/software/miniconda2/share/picard-2.26.2-0/picard.jar CreateSequenceDictionary -R mm10.fa -O mm10.dict

###比对结果文件预处理
在用STAR的2-pass mode比对时,由于考虑到后续还要给bam文件添加RG标签(GATK要求的),所以就没有在比对输出时就对其先排序,反正用picard在添加RG标签时也能顺便排序:

使用picard在添加RG标签时顺便排序

PS:GATK要求输入的bam文件包含Read groups,如果没有就会报错。
 Read group是@RG开始。
示例查找Read groups
samtools view -H sample.bam | grep '@RG'

[u20111230014@cpu15 STAR_GRCm39]$ samtools view -H DPP-0-GRCm39Aligned_sortedByCoord_sorted.bam |grep '@RG'
@RG ID:DPP-0-GRCm39 LB:mRNA PL:illumina SM:DPP-0 PU:HiSeq2500

PS: 1.Picard是通过使用HTSJDK Java 库来实现的,java -jar和软件的具体路径一定要写上,
       2.RGLB

JeremyL
--RGID,即-ID = Read group identifier
--RGLB,即LB= DNA preparation library identifier: 对一个read group的reads进行重复序列标记时,需要使用LB来区分reads来自那条lane;有时候,同一个库可能在不同的lane上完成测序;为了加以区分,同一个或不同库只要是在不同的lane产生的reads都要单独给一个ID。
--RGPL,即PL= Platform/technology used to produce the read, 测序使用的平台
--RGPU,即PU= Platform Unit,由三部分组成: {FLOWCELL_BARCODE}.{LANE}.{SAMPLE_BARCODE}。GATK 使用时,PU不是必须要求的;但是PU与ID同时存在时,PU优先级高于ID。
--RGSM,即SM= Sample,GATK产生的VCF文件也使用这个名字
实例
picard=/home/public/software/miniconda2/share/picard-2.26.2-0/picard.jar

java -jar $picard AddOrReplaceReadGroups -I DPP-0-GRCm39Aligned.sortedByCoord.out.bam -O DPP-0-GRCm39Aligned_sortedByCoord_sorted.bam -SO coordinate --RGID DPP-0-GRCm39 --RGLB DPP-0-GRCm39 --RGPL illumina --RGPU HiSeq2500 --RGSM DPP-0

java -jar $picard AddOrReplaceReadGroups -I DPP-1-GRCm39Aligned.sortedByCoord.out.bam -O DPP-1-GRCm39Aligned_sortedByCoord_sorted.bam -SO coordinate --RGID DPP-1-GRCm39 --RGLB DPP-1-GRCm39 --RGPL illumina --RGPU HiSeq2500 --RGSM DPP-1


##用picard套件MarkDuplicates命令对duplicate reads进行标记,并构建index (--CREATE_INDEX true )

picard=/home/public/software/miniconda2/share/picard-2.26.2-0/picard.jar

java -jar $picard MarkDuplicates -I DPP-0-GRCm39Aligned_sortedByCoord_sorted.bam -O DPP-0-GRCm39_marked_duplicates.bam -M DPP-0-GRCm39_marked_dup_metrics.txt
--CREATE_INDEX true --VALIDATION_STRINGENCY SILENT

java -jar $picard MarkDuplicates -I DPP-1-GRCm39Aligned_sortedByCoord_sorted.bam -O DPP-1-GRCm39_marked_duplicates.bam -M DPP-1-GRCm39_marked_dup_metrics.txt
--CREATE_INDEX true --VALIDATION_STRINGENCY SILENT

参考:(https://gatk.broadinstitute.org/hc/en-us/articles/360057439771-MarkDuplicates-Picard-)
 https://cncbi.github.io/Picard-Manual-CN/
[HTSJDK](https://links.jianshu.com/go?to=http%3A%2F%2Fgithub.com%2Fsamtools%2Fhtsjdk)


















































©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,242评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,769评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,484评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,133评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,007评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,080评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,496评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,190评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,464评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,549评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,330评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,205评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,567评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,889评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,160评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,475评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,650评论 2 335

推荐阅读更多精彩内容