2021-10-26 RNA-seq分析个人记录帖

a.整体流程及相关软件

  1. 数据资源下载,参考基因组及参考注释组

  2. 数据质控及相关软件
    fastp (代替fastqc,multiqc, trimmomatic,cutadapt,trim_galore)

  3. 比对及相关软件
    HISAT2,STAR,TOPHAT2,bowtie2,bwa...
    本文用HISAT2

  4. 统计及相关软件
    featureCounts,htseq-counts,bedtools...

  5. 均一化及差异分析
    DEseq2, edgeR,limma,cuffdiff...

b.环境搭建及软件安装

conda create -n rnaseq python=3.8 r-base=4.0
#搭建conda环境,指定python及R版本

conda activate rnaseq
#激活conda环境

conda install -c bioconda fastp
#conda install -c bioconda fastqc
#conda install -c bioconda multiqc
#conda install -c bioconda trimmomatic
#conda install -c bioconda cutadapt
#安装质控相关软件,#号为可选软件,推荐用fastp代替,方便

conda install -c bioconda hisat2
conda install -c bioconda samtools
conda install -c bioconda subread
conda install -c bioconda htseq
conda install -c bioconda bioconductor-deseq2
conda install -c bioconda bioconductor-edger

c.具体流程

1.数据质控和过滤

本文中使用fastp一步到位对数进行质控、过滤并统计。
具体参数见前文fastp部分。测序数据过滤原理相同(去接头、去低质量等)。

usage:fastp -i <in1> -o <out1> [-I <in1> -O <out2>] [options...]
#1 PE测序
fastp -i sample.R1.fastq.gz -o sample.R1.clean.fq.gz \  
-I sample.R2.fastq.gz -O sample.R2.clean.fq.gz     \  
-5 --cut_front_window_size 4   --cut_front_mean_quality 20 \    
-3 --cut_tail_window_size  4   --cut_tail_mean_quality 20  \     
--cut_right --cut_right_window_size 4 --cut_right_mean_quality 20 \   
--detect_adapter_for_pe     \   
-q 15  -u 40 -e 20 -n 5 -l 30 -p -P 20 -w 4   -R  "sample"

#2 SE测序
fastp -i sample.fq -o sample.clean.fq  \
-5 --cut_front_window_size 4 --cut_front_mean_quality 20  \
-3 --cut_tail_window_size 4 --cut_tail_mean_quality 20  \
--cut_right --cut_right_window_size 4  \
--cut_right_mean_quality 20  \
-f 5 -q 15 -u 40 -e 20 -n 5  -p -P 20 -w 4 -R  "sample"

过滤完成后用fastqc再跑一遍看质量

fastqc [-o output dir] [--(no)extract] [-f fastq|bam|sam] [-c contaminant file] seqfile1 .. seqfileN

-o --outdir       FastQC生成的报告文件的储存路径,生成的报告的文件名是根据输入来定的
-f --format       指定输入文件的格式
--extract         生成的报告默认会打包成1个压缩文件,使用这个参数是让程序不打包
-t --threads      选择程序运行的线程数,每个线程会占用250MB内存,越多越快咯
--min_length      设置序列的最小长度,≥最长read的长度
-c --contaminants 污染物选项,输入的是一个文件,格式是Name [Tab] Sequence,里面是可能的污染序列,如果有这个选项,FastQC会在计算时候评估污染的情况,并在统计的时候进行分析,一般用不到
-a --adapters     也是输入一个文件,文件的格式Name [Tab] Sequence,储存的是测序的adpater序列信息,如果不输入,目前版本的FastQC就按照通用引物来评估序列时候有adapter的残留
-q --quiet        安静运行模式,一般不选这个选项的时候,程序会实时报告运行的状况

跑完fastqc后用multiqc汇总质量报告,网页查看

multiqc ./

2 HISAT2比对

##构建索引
hisat2-build -p 20 ~/ref/hg19.fa ./hg19/hg19 
#-p 线程数
#~/ref/hg19.fa 参考基因组
#./hg19/hg19 输出文件及前缀

##比对
hisat2 -x ~/ref/hisat2_index/hg19/hg19 -p 40 --dta -1 ../2.cleandata/$i.1.clean.fq.gz -2 ../2.cleandata/$i.2.clean.fq.gz -S $i.sam
#-x 构建好的参考基因组索引
#-p 线程数
#--dta 用于组装需要的参数
#-1 第一条reads
#-2 第二条reads
#-S 输出为sam文件

##sam批量转换为bam
ls *.sam |while read id;do (samtools view -@ 5 -b -S  ${id} -o $(basename ${id} ".sam").bam);done

##bam文件排序
samtools sort -n sample.bam -o sample.sort.bam

##bam文件批量质控
ls *.bam |while read id;do (samtools flagstat -@ 5  ${id} > $(basename ${id} ".bam").flagstat);done

##Featurecounts做成表达矩阵(单个样品)
featureCounts -T 5 -p -t exon -g gene_id -a ~/ref/hg19.ensGene.gtf -o $i.enscounts.txt $i.sort.bam

##Featurecounts做成表达矩阵(所有样品)
featureCounts -T 5 -p -t exon -g gene_id -a ~/ref/hg19.ensGene.gtf -o all.enscounts.txt *.sort.bam

#说明:很奇怪,用refGene.gtf 每个样本能找出28267条信息,但是用ensGene.gtf每个样本能找出60236条记录,不知道发生了什么,可能是ensemble数据库基因注释较多。我后续用的ens注释做分析。
#详细参数
#input file 输入的bam/sam文件,支持多个文件输入
-a < string >   参考gtf文件名,支持gz压缩文件
-A  提供一个逗号分割为两列的文件,一列为gtf中的染色体名,另一列为read中对应的染色体名,用于将gtf和read中的名称进行统一匹配,注意该文件提交时不需要列名
-J  对可变剪切进行计数
-G < string >   当-J设置的时候,通过-G提供一个比对的时候使用的参考基因组文件,辅助寻找可变剪切
-M  如果设置-M,多重map的read将会被统计到
-o < string >   输出文件的名字,输出文件的内容为read 的统计数目
-O  允许多重比对,即当一个read比对到多个feature或多个metafeature的时候,这条read会被统计多次
-T  线程数目,1~32
下面是有关featrue/metafeature选择的参数   参数说明
-p  只能用在paired-end的情况中,会统计fragment而不统计read
-B  在-p选择的条件下,只有两端read都比对上的fragment才会被统计
-C  如果-C被设置,那融合的fragment(比对到不同染色体上的fragment)就不会被计数,这个只有在-p被设置的条件下使用
-d < int >  最短的fragment,默认是50
-D < int >  最长的fragmen,默认是600
-f  如果-f被设置,那将会统计feature层面的数据,如exon-level,否则会统计meta-feature层面的数据,如gene-levels
-g < string >   当参考的gtf提供的时候,我们需要提供一个id identifier 来将feature水平的统计汇总为meta-feature水平的统计,默认为gene_id,注意!选择gtf中提供的id identifier!!!
-t < string >   设置feature-type,-t指定的必须是gtf中有的feature,同时read只有落到这些feature上才会被统计到,默认是“exon”

##Featurecounts结果说明
Geneid  Chr     Start   End     Strand  Length  ck1.sort.bam
#第一列 Geneid
#第二列 chr,可能对应多个位置
#第三列 起始位点,可对应多个位点
#第四列 终止位点,跟前边一一对应
#第五列 +-链信息
#第六列 基因长度
#第七列 样本表达信息(最重要的一列)


##提取信息做成数据表达矩阵
for i in $(cat ../sample.txt);do awk -F "\t" '{print $1"\t"$7}' >$i.expr.txt $i.enscounts.txt;done
#提取第1列(geneid)和第7列(expression)存入$i.expr.txt

ls *.expr.txt|while read dd;do sed -i '1d' $dd;done
#将第一行信息删除
剩下的用R语言统计比较方便了

3 差异表达基因统计

说明文件请参考RNA-seq(6): reads计数,合并矩阵并进行注释
计数分为三个水平: gene-level, transcript-level, exon-usage-level
标准化方法: FPKM RPKM TMM TPM
该文使用DEseq2

setwd("./")

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

推荐阅读更多精彩内容