一. 简介
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