RNA-seq 分析流程(一)linux部分

基于miniconda3进行linux部分分析,由于很多软件是基于Python3.7写成的,建议使用Py3.7版本的miniconda3
miniconda3安装及注意事项见:
https://www.jianshu.com/p/914edc1de634
https://www.jianshu.com/p/42b7598fbc34
https://www.jianshu.com/p/e620115f7313

Step1:软件安装

数据资源下载,参考基因组及参考转录组(linux)

gtf ,genome,fa

质控,需要fastqc及multiqc(linux)

trimmomatic,cutadapt,trim-galore

对比(linux)

star,HISAT2,TOPHAT2, bowtie,bwa,subread

计数(linux)

featureCounts,htseq-counts,bedtools

nomalization 归一化,差异分析等(R 包)

DEseq2,edgeR,limma 

注,fastqc和trim-galore需要下载openjdk,非常大,建议使用conda install --offline /home/xxx/src/openjdk-11.0.1-h516909a_1016.tar.bz2 线下安装

conda install -y fastqc trim-galore star bwa hisat2 bowtie2 subread tophat htseq bedtools deeptools salmon cutadapt multiqc sra-tools
conda install -c bioconda trimmomatic

Step2:原始数据校验

md5sum -c cdmd5.txt 

Step3: 数据质控与矫正

3.1. fastqc

fastqc 批处理并将结果保存在qc文件夹下

fastqc  -o ./qc/ *.fq.gz

multiqc整合fastqc结果

multiqc -o ./qc/ ./qc/*.zip

3.2. trim_galore 质控

去除接头
去除两端低质量碱基(-q 25)
最大允许错误率(默认-e 0.1)
去除<36的reads(--length 36)
切除index的overlap>3的碱基
reads去除以对为单位(--paired)

ls *_1.clean.fq.gz >1
ls *_2.clean.fq.gz >2
paste 1 2 >config
cat config

建立好config后,接下来就可以进行批量质控了
建立批量处理脚本

vim qc.sh
bin_trim_galore=trim_galore
mkdir filter-data
dir='/home/XXX/reads/filter-data'
cat config |while read id
do
    arr=($id)
    fq1=${arr[0]}
    fq2=${arr[1]}
nohup $bin_trim_galore -q 25 --phred33 --length 36 -e 0.1 --stringency 3 --paired -o $dir $fq1 $fq2 &
done

拿到config和qc.sh后

bash qc.sh config

注意trim_galore是平行批量处理,对于在自己电脑上做比对的人来说,对电脑伤害比较大

3.3. 异常碱基剪切

发现本次测序数据的前15个碱基碱基比例异常,因此决定剪掉起始的25bp碱基

vim trim.sh
ls *.gz
ls *.gz|while read id;do echo $id;
cutadapt -u 25 -o /home/XXX/trim.$id /home/XXX/$id;
done

去掉样本名称前的trim

rename "s/trim.//" *fq.gz

Step4: hisat2 比对 (可选1)

hisat2 build index

hisat2_extract_exons.py tair10_ensemble_chr.gtf >exon_arab.txt
hisat2_extract_splice_sites.py tair10_ensemble_chr.gtf >ss_arab.txt
hisat2-build -p 2 --exon /home/polya/Public/genome/Arab/tair/exon_arab.txt --ss /home/polya/Public/genome/Arab/tair/ss_arab.txt /home/XXX/Public/genome/Arab/tair/tair10_ensemble_chr.fa /home/XXX/Public/genome/Arab/index/hisat/index

hisat2 mapping 使用vim map.sh, 构建比对,可以一个一个比对,也可以写个循环比对

hisat2 -p 2 -x /home/polya/Public/genome/Arab/index/hisat/index -1 /home/polya/data/clean/trim/sample_read1.clean.fq.gz -2 /home/polya/data/clean/trim/sample_read2.clean.fq.gz -S /home/polya/data/clean/sam/sample.hisat.sam;

Step4: STAR 比对 (可选2)

star build the index

STAR --runThreadN 6 --runMode genomeGenerate --genomeDir /home/polya/Public/genome/Arab/tair10/ --genomeFastaFiles /home/polya/Public/genome/Arab/tair10/TAIR10_chr_all.fas --sjdbGTFfile /home/polya/Public/genome/Arab/tair10/TAIR10_GFF3_genes.gff --sjdbGTFfeatureExon exon --sjdbGTFtagExonParentTranscript ID --sjdbGTFtagExonParentGene Parent

使用vim map.sh, 构建比对,可以一个一个比对,也可以写个循环比对

STAR --runThreadN 12 --readFilesCommand zcat --alignEndsType EndToEnd --outSAMtype SAM --outFilterMultimapNmax 1 --genomeDir /home/polya/Public/genome/Arab/tair10/ --readFilesIn rep1.R1.clean_val_1.fq.gz rep1.R2.clean_val_2.fq.gz --outFileNamePrefix /home/polya/Public/data/sam/rep1;

Step5: sam to bam, 继续使用vim xxx.sh,使用chmod 777 给sh权限,然后nohup ./xxx.sh 2>&1&后台挂起,下同

ls *.sam
ls *.sam|while read id;do echo $id;
samtools view -Sb $id > ${id%%.*}.bam;
done

Step6:bam to sorted bam

ls *.bam
ls *.bam|while read id;do echo $id;
samtools sort $id -o ${id%%.*}.sorted.bam;
done

rename 's/Aligned.out//g' *

Step7: generate flagstat for summary of mapping

ls *sorted.bam |while read id ;do ( samtools flagstat -@ 1 $id > $(basename ${id} ".bam").flagstat );done

index for IGV visualization

ls *sorted.bam|xargs -i samtools index {} #构建索引,拿到IGV里面看

multiqc ./*.flagstat

Step8 featurecounts to calculate gene expression,常规RNA-seq分析用这个就行 (多数情况选择)

ls *sorted.bam
ls *sorted.bam|while read id;do echo $id;
featureCounts -T 6 -p -t gene -g gene_id -a /home/polya/Public/genome/Arab/tair10/TAIR10_ensemble_Chr.gtf  -o all.gene.txt *.bam;
done

这一步结束就可以移动到R 中进行下游的差异分析了:详见RNAseq分析流程(二)https://www.jianshu.com/p/7c0d61363ce3

少数情况:

Step8: #featurecounts to calculate first exon expression,针对RNA 加工中的转录本差异用的,小众 (仅少见情况选择)

ls *sorted.bam
ls *sorted.bam|while read id;do echo $id;
featureCounts -T 6 -t exon -g Parent -a /home/polya/Public/genome/Arab/tair10/TAIR10_GFF3_fexon.gff  -o all.exon.txt *.bam;
done

如果想使用bedgraph看IGV

Step9: bam to bedgraph, Note: plus is actual minus for strand-specific reads,这部分是生成IGV的bedgraph文件

ls *.sorted.bam
ls *.sorted.bam|while read id;do echo $id;
genomeCoverageBed -ibam $id  -bga -split -g /home/polya/Public/genome/Arab/tair10/TAIR10_chr_all.fas > ${id%%.*}.bedgraph
done

RNA-seq 分析流程(二)DEseq2 分析差异表达基因见https://www.jianshu.com/p/7c0d61363ce3

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

推荐阅读更多精彩内容