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:

data type

path

raw data

/CR1*.fq.gz

Software/Parameters:

fastqc

options

function

-q --quiet

禁止在标准输出上显示所有进度,仅报告错误;安静模式

-o --outdir

指定输出目录

-h --help

选项的详细介绍

-t 4

设置线程数

--noextract

指定结果文件压缩

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

options

function

-i

read1 输入文件名

-o

read1 输出文件名

-I

read2 输入文件名

-O

read2 输出文件名

--thread=4

指定线程数为4

-l --length_required 15

短于指定长度的reads将被丢弃,默认为15,即长度<15的read被去掉

--length_limit

设置read最大长度,默认为0,即没有最大长度限制。

-j --json filename

设置输出的json格式的质控结果文件名,不设置则默认json文件名为fastp.json

-h --html filename

设置输出html格式的质控结果文件名,不设置则默认html 文件名为fastp.html

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文件。

options with Parameter Setting

function

-n N

代表在高保真区内的错配不能超过N个,这里设置为0,即不允许任何错配

-a

在允许的错配碱基数量下的全部可能的比对情况都输出

-m1 --best -strata

只报告最好的比对情况的那一个输出

-p 4

指定使用4个线程

-l L

代表序列高保真区的长度,最短不能少于5,这里我们设置为L=15

--un *rm_rRNA.fq

输出不能map到指定基因组上的reads,fasta格式。即我们所需要的去除rRNA后的文件

-S

输出文件名,格式为.sam

-1/-2

对于PE测序数据,-1指定输入的read1文件,-2指定输入的read2文件

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

options with Parameter Setting

function

--runThreadN Number_of_Threads

set number of threads

--limitBAMsortRAM 20000000000

maximum available RAM for sorting BAM

--outFilterType BySJout

reduces the number of "spurious" junctions

--outFilterMismatchNmax 10

alignment will be output only if it has no more mismatches than this value

--genomeDir /path/to/genomeDir

path to genom directory

--readFilesIn /path/to/read1 /path/to/read2

path to input files

--readFilesCommand 'zcat'

If the read files are compressed, use the --readFilesCommand UncompressionCommand option,for gzipped files (.gz) use --readFilesCommand zcat

--outFileNamePrefix

output files name prefix

--outSAMtype BAM Unsorted

output unsorted Aligned.out.bam file

--quantMode TranscriptomeSAM GeneCounts

With --quantMode TranscriptomeSAM option STAR will output alignments translated into transcript coordinates in the Aligned.toTranscriptome.out.bam file

--outSAMattributes All

The SAM attributes can be specified by the user using --outSAMattributes

--outSAMstrandField intronMotif

For unstranded RNA-seq data, Cufflinks/Cuffdiff require spliced alignments with XS strand attribute, which STAR will generate with --outSAMstrandField intronMotif option

--outBAMcompression 6

int:-1 to 10 BAM compression level

--outReadsUnmapped Fastx

output of unmapped and partially mapped reads in separate file;Fastx:output in separate fasta/fastq files, Unmapped.out.mate1/2

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

options with Parameter Setting

function

-f bam

设置输入文件的格式

-s no

设置是否是链特异性测序

-i gene_id

设置feature ID是由gtf/gff文件第9列哪一个标签决定的

-t CDS

设置指定的feature进行表达量计算

-m union

设置表达量计算模式,可有的参数值有union, intersection-strict and intersection-nonempty。真核生物推荐使用union模式

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

options with Parameter Setting

function

-a

设置RiboCode注释文件夹路径

-r

设置输入的sam文件路径

-o

设置输出路径

-m 26

设置最小值

-M 34

设置最大值

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