水稻(学名:Oryza sativa)是草本稻属的一种,也是稻属中作为粮食的最主要最悠久的一种,又称为亚洲型栽培稻,简单来说也可以说是稻。全世界有半数以上人口以水稻为主食[1]
水稻是非常重要的粮食作物,也是重要的禾本科模式植物之一。
转录组是实验进行数据挖掘以及后续实验验证的有效手段。
下面就是水稻RNA-seq进行数据挖掘的主要分析流程。
转录组上游分析涉及到的软件主要有:
sra-tools fastqc multiqc trim-galore hisat2 samtools subread
一、下载水稻基因组数据
目前水稻的权威数据库主要有两个:
#1.水稻MSU版本的数据库(2011年最后一次更新,已经很旧了)
http://rice.plantbiology.msu.edu/
#2.水稻RAP版本的数据库
https://rapdb.dna.affrc.go.jp/
下载水稻基因组文件和基因组注释文件
#MSU版本
#基因组文件
wget -c http://rice.plantbiology.msu.edu/pub/data/Eukaryotic_Projects/o_sativa/annotation_dbs/pseudomolecules/version_7.0/all.dir/all.con
#gff3注释文件
wget -c http://rice.plantbiology.msu.edu/pub/data/Eukaryotic_Projects/o_sativa/annotation_dbs/pseudomolecules/version_7.0/all.dir/all.gff3
#RAP版本
#基因组文件
wget -c ftp://ftp.ensemblgenomes.org/pub/release-44/plants/fasta/oryza_sativa/dna/Oryza_sativa.IRGSP-1.0.dna.toplevel.fa.gz
#gff3注释文件
wget -c ftp://ftp.ensemblgenomes.org/pub/release-44/plants/gff3/oryza_sativa/Oryza_sativa.IRGSP-1.0.44.gff3.gz
#gtf注释文件
wget -c ftp://ftp.ensemblgenomes.org/pub/release-44/plants/gtf/oryza_sativa/Oryza_sativa.IRGSP-1.0.44.gtf.gz
数据下载好,以备后续构建基因组索引以及count值的使用
二、搭建RNA-seq数据分析环境
使用conda搭建分析环境以及安装分析软件
安装conda并设置镜像
#服务器
##安装conda,并且配置镜像
wget -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
source ~/.bashrc
##确认是否安装成功
conda --help
##安装好conda后,需要设置镜像
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda
conda config --set show_channel_urls yes
建立小环境以及安装软件
#conda构建rna-seq分析小环境
conda create -n rna-seq python=2
conda activate rna-seq
conda install -y sra-tools fastqc multiqc hisat2 samtools subread gffread
conda deactivate
创建分析所用的文件夹
mkdir rnaseq
cd rnaseq
mkdir {sra,clean_data,fastqc,refastqc,align,count}
三、转录组数据分析
step1 测序数据的下载(sra-tools)
在文章中搜索GSE编号,进而搜索到SRR编号(SRR_list),进行sra数据的下载
#激活小环境
conda activate rna-seq
#使用while循环批量进行下载sra数据
cat SRR_Acc_List.txt| while read id;do ( nohup prefetch -O ./sra $id &); done
step2 数据格式转化(sra--->fastq)
注意下载数据是双端数据还是单端数据
双端数据--split-3
cd sra
ls *.sra|while read id;do ( nohup fastq-dump --gzip --split-3 -O ./ ${id} & );done
step3 第一次质量控制(fastqc && multiqc)
cd ../fastqc
nohup fastqc -t 6 -O ./ ../sra/*_?.fastq.gz &
#汇总质控报告
multiqc ./*.zip
阅读质控报告(重点关注一下测序质量以及接头序列情况),观察是否需要进行截断以及切除接头序列
step4 数据过滤 (trim-galore)
#批量进行数据过滤
cd ~/project_rna/sra
dir=~/project_rna/sra
ls *_1.fastq.gz > 1
ls *_2.fastq.gz > 2
paste 1 2 > config
cat config |while read id
do
arr=(${id})
fq1=${arr[0]}
fq2=${arr[1]}
trim_galore --phred33 -q 25 -e 0.1 --length 36 --stringency 3 --paired -o ../clean_data $dir/${fq1} $dir/${fq2}
done
step5 第二次质量控制(fastqc && multiqc)
cd ~/project_rna/clean_data
ls *.gz|while read id;do ( nohup fastqc -t 6 -O ../refastqc $id &);done
top
#multiqc,对质控结果进行整合
multiqc ./*.zip
继续查看质控报告,查看碱基质量是否合格,以及是否还有接头序列存在,是否满足下游的数据分析。
step6 比对(hisat2)
第一步:构建index
#需要genome.fa 和 gtf文件 ##在此以水稻参考基因组序列和水稻的gtf文件为例
##使用hisat2软件自导的py脚本 extract_exons.py 和 extract_splice_sites.py 分别寻找外exon和splice的位点
hisat2_extract_exons.py Oryza_sativa.gtf > genome.exon
hisat2_extract_splice_sites.py Oryza_sativa.gtf > genome.ss
#寻找完位点以后,进行index的构建
hisat2-build -p 20 Oryza_sative.fa --ss genome.ss --exon genome.exon genome_tran
第二步:hisat2比对
cd ~/rnaseq/clean_data/
for i in `ls *_1*`
do
i=${i/_*/}
nohup hisat2 -p 10 -x ~/ly_sra/ref/index/hisat2/genome_tran -1 ./${i}_1_val_1.fq.gz -2 ./${i}_2_val_2.fq.gz -S ../align/${i}.sam &
done
top
step7 SAM文件转化为BAM文件(转化+排序)(samtools)
ls *.sam|while read id;do ( nohup samtools sort -O bam -@ 4 -o ${id%%.*}.bam ${id} & );done
top
rm *.sam
#删除掉所有的sam文件,因为sam文件占的内存太大
step8 bam文件的质控
##批量进行bam索引的构建
ls *.bam|xargs -i samtools index {}
#加上h 属于加上了表头
###统计一下bam文件的比对情况,使用samtools flagstat。然后1>标准输出出来,2>标准错误输出也输出出来
ls *.bam|while read id;do ( nohup samtools flagstat -@ 4 ${id} 1> ${id%%.*}.flagstat 2>${id}.log &) ;done
#注意标准输出和标准错误输出即可
step9 featureCounts统计counts值
#将所有bam进行featureCounts
cd ~/project_rna/align/
nohup featureCounts -T 5 -p -t exon -g gene_id -a ~/ref/gtf/Oryza_sativa.IRGSP-1.0.44.gtf.gz -o ../count/all.id.txt ./*.bam &
top
#之后得到的all.id.txt即为得到的count值
#至此,转录组上游分析基本结束。