Cufllinks的安装与使用

一. 简介

Cufflinks下主要包含cufflinks,cuffmerge,cuffcompare和cuffdiff等几支主要的程序。主要用于基因表达量的计算和差异表达基因的寻找。

二. 安装

Cufflinks下载网页
1. 为了安装Cufflinks,必须有Boost C++ libraries。下载Boost并安装。默认安装在/usr/local。

$ tar jxvf boost_1_53_0.tar.bz2
$ cd boost_1_53_0
$ ./bootstrap.sh
$ sudo ./b2 install

2.安装SAM tools。

下载SAM tools。
$ tar jxvf samtools-0.1.18.tar.bz2
$ cd samtools-0.1.18
$ make
$ sudo su 
# mkdir /usr/local/include/bam
# cp libbam.a /usr/local/lib
# cp *.h /usr/local/include/bam/
# cp samtools /usr/bin/

3. 安装 Eigen libraries。

下载Eigen
$ tar jxvf 3.1.2.tar.bz2
$ cd eigen-eigen-5097c01bcdc4
$ sudo cp -r Eigen/ /usr/local/include/

4. 安装Cufflinks。

$ tar zxvf cufflinks-2.0.2.tar.gz
$ cd cufflinks-2.0.2
$ ./configure --prefix=/path/to/cufflinks/install --with-boost=/usr/local/ --with-eigen=/usr/local/include//Eigen/
$ make
$ make install

5. 可以直接下载Linux x86_64 binary。不需要上述繁琐步骤,解压后的程序直接可用。

三. Cufflinks的使用

1. Cufflinks简介

Cufflinks程序主要根据Tophat的比对结果,依托或不依托于参考基因组的GTF注释文件,计算出(各个gene的)isoform的FPKM值,并给出trascripts.gtf注释结果(组装出转录组)。

2. 使用方法

$ cufflinks [options]* <aligned_reads.(sam/bam)>

一个常用的例子:
$ cufflinks -p 8 -G transcript.gtf --library-type fr-unstranded -o cufflinks_output tophat_out/accepted_hits.bam

3. 普通参数

-h | --help
-o | --output-dir <sting>  default: ./
    设置输出的文件夹名称

-p | --num-threads  default: 1
    用于比对reads的CPU线程数

-G | --GTF <reference_annotation.(gtf/gff)>
    提供一个GFF文件,以此来计算isoform的表达。此时,将不会组装新的transcripts,
程序会忽略和reference transcript不兼容的比对结果

-g | --GTF-guide <reference_annotation.(gtf/gff)>
    提供GFF文件,以此来指导转录子组装(RABT assembly)。此时,输出结果会包含ref
erence transcripts和novel genes and isforms。

-M | --mask-file <mask.(gtf/gff)>
    提供GFF文件。Cufflinks将忽略比对到该GTF文件的transcripts中的reads。该
文件中常常是rRNA的注释,也可以包含线立体和其它希望忽略的transcripts的注释。将这
些不需要的RNA去除后,对计算mRNA的表达量是有利的。

-b | --frag-bias-correct <genome.fa>
    提供一个fasta文件来指导Cufflinks运行新的bias detection and correct
ion algorithm。这样能明显提高转录子丰度计算的精确性。

-u | --multi-read-correct
    让Cufflinks来做initial estimation步骤,从而更精确衡量比对到genome多个
位点的reads。

--library-type  default:fr-unstranded
    处理的reads具有链特异性。比对结果中将会有个XS标签。一般Illumina数据的lib
rary-type为 fr-unstranded。

4. 丰度评估参数

-m | --frag-len-mean default: 200
插入片段的平均长度。不过现在Cufflinks能learns插入片段的平均长度,因此不推荐自主
设置此值。

-s | --frag-len-std-dev default: 80
插入片段长度的标准差。不过现在Cufflinks能learns插入片段的平均长度,因此不推荐自
主设置此值。

-N | --upper-quartile-form
使用75%分为数的值来代替总的值(比对到单一位点的fragments的数值),作normal
ize。这样有利于在低丰度基因和转录子中寻找差异基因。

--total-hits-norm default: TRUE
Cufflinks在计算FPKM时,算入所有的fragments和比对上的reads。和下一个参数
对立。默认激活该参数。

--compatible-hits-norm 
Cufflinks在计算FPKM时,只针对和reference transcripts兼容的fragmen
ts以及比对上的reads。该参数默认不激活,只能在有 --GTF 参数下有效,并且作 RABT
或 ab initio 的时候无效。

5. 组装常用参数

-L | --label  default: CUFF
    Cufflink以GTF格式来报告转录子片段(transfrags),该参数是GTF文件的前缀

--min-frags-per-transfrag <int>  default: 10
    组装出的transfrags被支持的RNA-seq的fragments数少于该值则不被报道。

--min-intron-length <int>  default: 50
    最小的intron大小。

--overlap-radius <int>  default: 50
    Transfrags之间的距离少于该值,则将其连到一起。

6. Cufflinks输出结果

1. transcripts.gtf
该文件包含Cufflinks的组装结果isoforms。前7列为标准的GTF格式,最后一列为attributes。其每一列的意义:

列数   列的名称  例子         描述
1     序列名    chrX        染色体或contig名
2     来源      Cufflinks   产生该文件的程序名
3     类型      exon        记录的类型,一般是transcript或exon
4     起始      1           1-base的值
5     结束      1000        结束位置
6     得分      1000        
7     链        +          Cufflinks猜测isoform来自参考序列的那一条链,
一般是'+','-'或'.'
8     frame    .           Cufflinks不去预测起始或终止密码子框的位置
9     attributes  ...      详见下

每一个GTF记录包含如下attributes:

Attribute      例子       描述
gene_id        CUFF.1    Cufflinks的gene id
transcript_id  CUFF.1.1  Cufflinks的转录子 id
FPKM           101.267   isoform水平上的丰度, Fragments Per Kilobase
 of exon model per Million mapped fragments
frac           0.7647    保留着的一项,忽略即可,以后可能会取消这个
conf_lo        0.07      isoform丰度的95%置信区间的下边界,即 下边界值 =
 FPKM * ( 1.0 - conf_lo )
conf_hi        0.1102    isoform丰度的95%置信区间的上边界,即 上边界值 =
 FPKM * ( 1.0 + conf_hi )
cov            100.765   计算整个transcript上read的覆盖度
full_read_support   yes  当使用 RABT assembly 时,该选项报告所有的intr
ons和exons是否完全被reads所覆盖

2. ispforms.fpkm_tracking

isoforms(可以理解为gene的各个外显子)的fpkm计算结果

3. genes.fpkm_tracking

gene的fpkm计算结果

四. Cuffmerge的使用

1. Cuffmerge简介

Cuffmerge将各个Cufflinks生成的transcripts.gtf文件融合称为一个更加全面的transcripts注释结果文件merged.gtf。以利于用Cuffdiff来分析基因差异表达。

2. 使用方法

$ cuffmerge [options]* <assembly_GTF_list.txt>
输入文件为一个文本文件,是包含着GTF文件路径的list。常用例子:
$ cuffmerge -o ./merged_asm -p 8 assembly_list.txt

3. 使用参数

-h | --help
-o <output_dir> default: ./merged_asm
将结果输出至该文件夹。

-g | --ref-gtf
将该reference GTF一起融合到最终结果中。

-p | --num-threads <int> defautl: 1
使用的CPU线程数

-s | --ref-sequence <seq_dir>/<seq_fastq>
该参数指向基因组DNA序列。如果是一个文件夹,则每个contig则是一个fasta文件;如果是
一个fasta文件,则所有的contigs都需要在里面。Cuffmerge将使用该ref-sequence来
帮助对transfrags分类,并排除repeats。比如transcripts包含一些小写碱基的将归类
到repeats.

4. Cuffmerge输出结果

输出的结果文件默认为 <output_dir>/merged.gtf

五. Cuffcompare的使用

1. Cuffcompare简介

Cuffcompare使用Cufflinks的GTF结果,对GTF结果进行比较。和reference gtf比较寻找novel转录子等。

2. Cuffcompare的使用方法

$ cuffcompare [options]* <cuff1.gtf> [cuff2.gtf] ... [cuffN.gtf]

使用例子:
$ cuffcompare -o cuffcmp cuff1.gtf cuff2.gtf

3. 使用参数

-h
-V
-o <outprefix> default: cuffcmp
输出文件的前缀

-r <reference_mrna.gtf>
参考的GFF文件。用来评估输入的gtf文件中gene models的精确性。每一个输入的gtf的is
oforms将和该参考文件进行比较,并被标注为 overlapping, matching 或 novel。

-R
当有了 -r 参数时,指定该参数时,将忽略参考GFF文件中的一些transcripts。这些tran
scripts不和任何输入的GTF文件overlapped。

-s <seq_dir>/<seq_fastq>
该参数指向基因组DNA序列。如果是一个文件夹,则每个contig则是一个fasta文件;如果是
一个fasta文件,则所有的contigs都需要在里面。小写字母的碱基用来将相应的transcri
pts作为repeats处理。

4. 输出结果

在当前目录下输出3个文件:<coutprefix>.stats,<coutprefix>.combined.gtf 和 <coutprefix>.tracking; 在输入的GTF的同目录下输出<cuff_in>.refmap 和 <cuff_in>.tmap 文件。

六. Cuffdiff的使用

1. Cuffdiff简介

用于寻找转录子表达的显著性差异。

2. Cuffdiff使用方法

$ cuffdiff [options]* <transcripts.gtf> <sample1_1.sam[,...,sample1_M.sam]> <sample2_1.sam[,...,sample2_M.sam]>...[sampleN_1.sam[,...,sampleN_M.sam]]
其中transcripts.gtf是由cufflinks,cuffcompare,cuffmerge所生成的文件,或是由其它程序生成的。

一个常用例子:
$ cuffdiff --lables lable1,lable2 -p 8 --time-series --multi-read-correct --library-type fr-unstranded --poisson-dispersion transcripts.gtf sample1.sam sample2.sam

3. 使用参数

-h | --help
-o | --output-dir <sting> default: ./
输出的文件夹目录。
-L | --lables <lable1,lable2,...,lableN>  default: q1,q2,...qN
给每个sample一个样品名

-p | --num-threads <int> default: 1
使用的CPU线程数

-T | --time-series
让Cuffdiff来按样品顺序来比对样品,而不是对所有的samples都进行两两比对。即第二个
SAM和第一个SAM比;第三个SAM和第二个SAM比;第四个SAM和第三个SAM比...

-N | --upper-quartile-form
使用75%分为数的值来代替总的值(比对到单一位点的fragments的数值),作normalize。
这样有利于在低丰度基因和转录子中寻找差异基因。

--total-hits-norm default: TRUE
Cufflinks在计算FPKM时,算入所有的fragments和比对上的reads。和下一个参数对立。
默认激活该参数。

--compatible-hits-norm
Cufflinks在计算FPKM时,只针对和reference transcripts兼容的fragments以及
比对上的reads。该参数默认不激活,只能在有 --GTF 参数下有效,并且作 RABT 或 ab
 initio 的时候无效。

-b | --frag-bias-correct
提供一个fasta文件来指导Cufflinks运行新的bias detection and correction 
algorithm。这样能明显提高转录子丰度计算的精确性。

-u | --multi-read-correct
让Cufflinks来做initial estimation步骤,从而更精确衡量比对到genome多个位点
的reads。

-c | --min-alignment-count <int>  default: 10
如果比对到某一个位点的fragments数目少于该值,则不做该位点的显著性分析。认为该位点
的表达量没有显著性差异。

-M | --mask-file <mask.(gtf/gff)>
提供GFF文件。Cufflinks将忽略比对到该GTF文件的transcripts中的reads。该文件中
常常是rRNA的注释,也可以包含线立体和其它希望忽略的transcripts的注释。将这些不需
要的RNA去除后,对计算mRNA的表达量是有利的。

-FDR <float> default: 0.05
允许的false discovery rate.

--library-type default:fr-unstranded
处理的reads具有链特异性。比对结果中将会有个XS标签。一般Illumina数据的library-
type为 fr-unstranded。

-m | --frag-len-mean default: 200
插入片段的平均长度。不过现在Cufflinks能learns插入片段的平均长度,因此不推荐自主
设置此值。

-s | --frag-len-std-dev default: 80
插入片段长度的标准差。不过现在Cufflinks能learns插入片段的平均长度,因此不推荐自
主设置此值。

--poisson-dispersion
Use the Poisson fragment dispersion model instead of learning one 
in each condition.

4. Cuffdiff输出

1. FPKM tracking files
2. Count tracking files
3. Read group tracking files
4. Differential expression test
5. Differential splicing tests – splicing.diff
6. Differential coding output – cds.diff
7. Differential promoter use – promoters.diff
8. Read group info – read_groups.info
9. Run info – run.info

七. cufflinks使用中遇到的问题

1. 使用cuffdiff时候,在最新版本下,无重复的RNA-seq样作比较,结果中没有差异表达基因?
在v2.0.1及之后的版本中cuffdiff貌似不支持无重复的RNA-seq数据了。使用之前的版本即可。

原文来自:http://www.chenlianfu.com/?p=623

发表评论

匿名网友

拖动滑块以完成验证