2.2.Ribo-seq Analysis

本章为Ribo-seq数据处理的说明,分为Prepare Data Matrix和Data analysis两大部分。

  • Part I.Prepare Data Matrix:完成样本的Reads Processing、Remove RNA and Mapping工作,得到Mapped reads(bam)并绘制质量控制相关图,计算Ribo-seq reads count matrix。

  • Part II.Data analysis:完成差异翻译效率分析。

    • 利用Xtail基于Ribo-seq的count matrix 和RNA-seq的count matrix计算差异翻译效率。为了方便对比RNAseq只统计CDS区域的reads。

Part I.Prepare Data Matrix

0) 数据说明

Ribo-seq测序数据位于/data/TA_QUIZ_RNA_regulation/data/riboshape_liulab_batch4/Ribo-seq 这里我们以(CR1_1,CR1_2,CR1_3)为例。

1) Mapping

这里我们通过脚本进行样本的批量处理,分为fastqc,trimmed,remove_rRNA,mapping,read_count_HTSeq 5个脚本,每个脚本路径我们在下面详细说明。

1.1) QC of raw data

这步操作主要是检查数据的质量,脚本参考/data/TA_QUIZ_RNA_regulation/script/PartII.Ribo-seq_analysis/1.fastqc.sh

Input:

Software/Parameters:

fastqc

Output:

  • \*.html:质控报告解读的网页文件。

  • \*.zip:网页文件中画图的数值及图片。

因此fastqc结果仅看html即可。

1.2) Cut adaptor & trim long read

这里使用fastp默认参数,对数据自动进行全方位质控,脚本参考:/data/TA_QUIZ_RNA_regulation/script/PartII.Ribo-seq_analysis/2.trimmed.sh

Software/Parameters:

fastp

usage: fastp -i <in1> -o <out1> [-I <in1> -O <out2>] [options...]

Output :

eg:

  • CR1_1.clean.fq.gz fastp质控后的数据。

  • CR1_1.html/CR1_1.json:质控结果报告文件。

1.3) Clean rRNA reads

使用bowtie将上一步中得到的fastp质控后的*.clean.[1/2].fastq.gz文件比对到rRNA index上,除去这部分比对到rRNA index的部分,从而得到不含rRNA reads的文件.fastq文件。参考脚本:/data/TA_QUIZ_RNA_regulation/script/PartII.Ribo-seq_analysis/3.remove_rRNA.sh

Input :

1.2)操作结束后的\*.clean.fq.gz

Software/Parameters :

bowtie 可以Clean rRNA reads得到不含rRNA reads的.fastq文件。

reference:

bowtie -n 0 -y -a --norc --best --strata -S -p 4 -l 15 \
--un ~/*.rm_rRNA.fq \
~/Arabidopsis_thaliana.TAIR10.34.rRNA \
-1 ~/*.clean.fastq.gz \
-2 ~/*.clean.fastq.gz \
~/*.aligned_rRNA.txt

Output

  • *rm_rRNA.fq:不含rRNA reads的.fastq文件,位于fastq文件夹。

  • map到rRNA index上的*aligned_rRNA.txt

gzip压缩*rm_rRNA.fq文件,得到*rm_rRNA.fq.gz文件。

1.4) Mapping

1.4a) Generating genome index

由于PartI.RNA-seq analysis中我们已经创建了参考基因组目录。这里直接使用已经创建好的genome directory即可,不做详细描述。

1.4b) Running mapping jobs

我们使用STAR软件对1c)操作得到的*rm_rRNA_[1/2].fq进行比对。参考脚本:/data/TA_QUIZ_RNA_regulation/script/PartII.Ribo-seq_analysis/4.mapping.sh

Software/Parameters :

STAR

reference:

CR1_1样本为例:

STAR \
--runThreadN 4 \
--outFilterType BySJout \
--outFilterMismatchNmax 2 \
--outFilterMultimapNmax 1 \
--genomeDir genomedir \
--readFilesIn ~/CR1_1.rm_rRNA.fq.gz \
--readFilesCommand 'zcat' \
--outFileNamePrefix CR1_1. \
--outSAMtype BAM SortedByCoordinate \
--quantMode TranscriptomeSAM GeneCounts \
--outSAMattributes All \
--outSAMattrRGline ID:1 LB:ribo_seq PL:ILLUMINA SM:CR1_1 \
--outBAMcompression 6 \
--outReadsUnmapped Fastx
  • outFilterMultimapNmax=1,是因为不考虑Multimap reads

    注意部分参数的选择与differential expression的选择不同,为什么不同,请大家自行思考。

output:

  • .Aligned.out.sorted :比对结果文件。

  • .toTranscriptome.out.sorted:比对到转录本上的reads组成的文件。

1.4c) samtools sort &index

这里我们使用samtools sort -T按TAG值排序,随后使用samtools index对排序后的序列建立索引。输出为bai文件。

output :

  • .Aligned.sortedByCoord.out.bam

  • .Aligned.toTranscriptome.out.sorted.bam

  • .Aligned.sortedByCoord.out.bam.bai

  • .Aligned.toTranscriptome.out.sorted.bam.bai

1.4d) Reads counts

这里我们使用mapping后并且经过samtools排序索引后的比对结果文件作为输入。使用htseq-count软件来计算reads数。参考脚本:/data/TA_QUIZ_RNA_regulation/script/PartII.Ribo-seq_analysis/5.read_count_HTSeq.sh

input:

  • .Aligned.sortedByCoord.out.bam

Software/Parameters :

htseq-count

reference:

htseq-count \
-f bam \
-s no \
-i gene_id \
-t CDS \
-m union \
~/*.Aligned.sortedByCoord.out.bam \
~/Arabidopsis_thaliana.TAIR10.34.gtf > ~/.read_count.HTSeq.txt

注意,由于Ribo-seq测序数据,仅测到被核糖体保护的片段,因此这里我们仅设置CDS模式。

得到的read_count.HTSeq.txt中包含着以__开头的注释信息。因此需要进行以下处理。

# 提取其中的__开头的信息。
grep __ ~/*.read_count.HTSeq.txt > ~/*.read_count.HTSeq.txt.summary

# 除去其中的__开头的信息
sed -i '/^__/d' ~/*.read_count.HTSeq.txt

output:

  • read_count.HTSeq.txt:包含gene_id与reads counts的信息。

  • read_count.HTSeq.txt.summary:汇总信息。

Part II.Data analysis

0) 数据说明

在这里我们给出Ribo-seq的6个样本的bam和reads count结果,以及RNA-seq的6个样本的reads counts在统计CDS模式下的结果。

  • Ribo-seq 6个样本的Bam文件:/data/TA_QUIZ_RNA_regulation/result/PartII.Ribo-seq_analysis/3.mapping

  • Ribo-seq 6个样本合并后reads matrix文件是:/data/TA_QUIZ_RNA_regulation/result/PartII.Ribo-seq_analysis/6.Differential_translation_efficiency/Ribo-seq

  • RNA-seq 6个样本CDS区域reads matrix文件是:/data/TA_QUIZ_RNA_regulation/result/PartII.Ribo-seq_analysis/6.Differential_translation_efficiency/RNA-seq-CDS/count_CDS.txt,这里我们只用每个RNA的CDS区域的reads

1) 周期性和ORF分析

Ribosome profiling data with a good quality tend to have a good 3-nt periodicity. 这里我们使用RiboCode中的metaplots来获得3-nt periodicity分析报告。 参考脚本为:/data/TA_QUIZ_RNA_regulation/script/PartII.Ribo-seq_analysis/6.RiboCode_metaplot.sh

input:

  • .Aligned.toTranscriptome.out.bam:1.d.3)中mapping后并且经过samtools排序索引后的比对结果文件。

  • /data/TA_QUIZ_RNA_regulation/data/Ribocode/RiboCode_annot:由RiboCode产生的一些注释文件目录。

Software/Parameters:

metaplots

reference:

metaplots \
-a /data/TA_QUIZ_RNA_regulation/data/Ribocode/RiboCode_annot \
-r ~/*.Aligned.toTranscriptome.out.sorted.bam \
-o ~/RiboCode/metaplot \
-m 26 \
-M 34 \
-s no \
-pv1 0.05 \
-pv2 0.05

output:

  • ~/RiboCode/metaplot:输出目录,目录中包含3-nt periodicity分析的pdf文件。

  • *.Aligned.toTranscriptome.out.sorted.pdf:pdf文件。

2) Differential translation efficiency

我们利用Xtail基于Riboseqcount matrixRNAseqcount matrix计算差异翻译效率。为了方便对比RNAseq只统计CDS区域的reads

使用R包xtail进行差异翻译分析。 参考脚本:/data/TA_QUIZ_RNA_regulation/script/PartII.Ribo-seq_analysis/9.xtail.R

注:/data/zhaoyizi/software/anaconda3/envs/Riboshape/bin/下的R未安装xtail软件,安装了xtail的R脚本为:/BioII/lulab_b/liuxiaofan/software/conda2/bin/Rscript

运行xtail软件步骤如下:

##### 以下操作均在服务器命令行窗口运行 #####
### 进入文件传输通道,未进入文件传输通道中是无法访问/BioII文件夹的
ssh tmgt 
### 运行脚本
/BioII/lulab_b/liuxiaofan/software/conda2/bin/Rscript /path/to/your/9.xtail.R

input:

  • WT_count.txt

  • count_CDS.txt

reference:

# 读取riboseq和mrna的reads counts matrix。
ribo <- read.table('~/wt_count.txt',header=T,quote='',check.names=F, sep='\t',row.names=1)
mrna<- read.table('~/count_CDS.txt',header=T,quote='',check.names=F, sep='\t',row.names=1)

# 样本信息
condition <- c("control","control","treat","treat","treat")

# 获得xtail分析结果,按照q-value排序,选择输出log2FCs和log2R
results <- xtail(mrna,ribo,condition,minMeanCount=1,bins=10000)
results_tab <-resultsTable(results,sort.by="pvalue.adjust",log2FCs=TRUE,log2Rs=TRUE)

# 输出xtail分析结果
write.table(results_tab,"~/wt.0-vs-1.TE_new.xls",quote=F,sep="\t")

output:

输出结果为/data/TA_QUIZ_RNA_regulation/result/PartII.Ribo-seq_analysis/7.TE/wt.0-vs-1.TE_new.csv 输出结果未进行差异基因过滤。

Last updated