天天看點

Cufllinks的安裝與使用轉自:http://www.chenlianfu.com/?p=623 一. 簡介二. 安裝三. Cufflinks的使用四. Cuffmerge的使用五. Cuffcompare的使用六. Cuffdiff的使用七. cufflinks使用中遇到的問題

轉自:http://www.chenlianfu.com/?p=623

一. 簡介

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資料了。使用之前的版本即可。

繼續閱讀