2013-12-14 50 views
0

我使用R軟件包cummeRbund(來自Bioconductor)可視化RNA-seq數據,我創建了一個名爲「DEG_genes」的cuffGeneSet實例,其中包含662個基因,這些基因在雄性和雌性之間顯着差異表達。我的目標是使用csHeatmap()創建一個熱圖,其中男性和女性樣本(複製)是分開的,但是在性別類別內具有特定的用戶定義的順序。 我用:cummeRbund csHeatmap列用戶定義的順序

> DEG<-diffData(genes(cuff)) # take differentially expressed genes 
> DEG_significant<-subset(DEG,significant=='yes') # retain only significant changes 
> DEG_sign_IDs <- DEG_significant$gene_id # retrieve IDs 
> DEG_genes<-getGenes(cuff,DEG_sign_IDs) # get CuffGeneSet instance 
> hmap<-csHeatmap(DEG_genes,clustering='none',labRow=F,replicates=T) 

這給我我想要什麼概:熱圖顯示女性在左側和右側男性,但他們按字母順序排列(Female_0,Female_1,Female_10,Female_11,Female_12 ... Female_19 ,Female_2,Female_20,Female_21 ..,Female_29在左邊,對於男性Male_0,Male_1,Male_10 ... Male_19,Male_2,Male_20 ...等等也在右邊),我希望它們按照特定的順序排列(clusterReps )。我創建了複製名稱的測試向量的特定順序上(男性在左側以0和6 echanged和右側雌性)如下:

clusterReps<-c("Male_6","Male_1","Male_2","Male_3","Male_4","Male_5","Male_0","Male_7","Male_8","Male_9","Male_10","Male_11","Male_12","Male_13","Male_14","Male_15","Male_16","Male_17","Male_18","Male_19","Male_20","Male_21","Male_22","Male_23","Male_24","Male_25","Male_26","Male_27","Male_28","Male_29","Male_30","Male_31","Male_32","Male_33","Female_0","Female_1","Female_2","Female_3","Female_4","Female_5","Female_6","Female_7","Female_8","Female_9","Female_10","Female_11","Female_12","Female_13","Female_14","Female_15","Female_16","Female_17","Female_18","Female_19","Female_20","Female_21","Female_22","Female_23","Female_24","Female_25","Female_26","Female_27","Female_28") 

我想數據是除了完全一樣必須遵循「clusterReps」向量順序的列順序。知道熱圖是一個ggplot,我在過去兩天無處不在找一個解決方案,但沒有成功(儘管在heatover.2()而不是csHeatmap()上堆棧溢出的問題非常嚴重,我試圖獲得一個複製fpkm矩陣並使用heatmap.2,但只能使用heatmap_2,並且某些選項不被接受)。 使用:

> hmap<-hmap+scale_x_discrete(limits=clusterReps) 
Scale for 'x' is already present. Adding another scale for 'x', which will replace the existing scale. 

僅改變x軸標籤但不是實際的數據(熱圖保持相同)。 是否有類似的功能重新排列列而不僅僅是標籤? 在此先感謝您的幫助,我不熟悉處理ggplot對象,特別是cummeRbund的熱圖。

編輯: 這是我能給予進一步的信息:

> DEG_genes 
CuffGeneSet instance for 662 genes 

Slots: 
    annotation 
    fpkm 
    repFpkm 
    diff 
    count 
    isoforms CuffFeatureSet instance of size 930 
    TSS   CuffFeatureSet instance of size 785 
    CDS   CuffFeatureSet instance of size 230 
    promoters  CuffFeatureSet instance of size 662 
    splicing  CuffFeatureSet instance of size 785 
    relCDS  CuffFeatureSet instance of size 662 

> summary(DEG_genes) 
    Length  Class  Mode 
     662 CuffGeneSet   S4 

恐怕我不能提供更多的信息的時刻,請讓我知道如果你要我執行命令並報告輸出是否有幫助。

+0

這可能是一個重複的問題,通過許多回答來解釋如何改變因子水平的圖表順序,不僅僅在ggplot2中,而且在幾乎所有的R繪圖程序中。由於您未能提供DEG_genes數據對象的充分描述,因此無法測試這種強烈的懷疑。 (你也沒有注意到'cummeRbund'是一個BioConductor軟件包。) –

+0

我不確定我們是否更接近,所以會添加一個str(DEG_sign_IDs)的請求,這可能是一個普通的因素,它的級別可能適合修改。你做了很不完善的工作,指出你在哪裏獲得你的繪圖功能。如果這是你使用的代碼,你應該發佈軟件包名稱和lonkers以回答問題。 –

+0

> str(DEG_sign_IDs) chr [1:662]「XLOC_000057」「XLOC_000221」「XLOC_000245」... 我在遵循一個使用cummeRbund的協議,但我沒有足夠的R知識來了解/理解數據按照這個包的方法組織或者如何按照我想要的方式修改它。手冊可從http://compbio.mit.edu/cummeRbund/manual_2_0獲取。html – user3102467

回答

0

我不是很流利的R,但我遇到了同樣的問題。爲了解決這個問題,我製作了一個腳本,將cuffdiff文件夾中所有文件中的所有示例名稱重命名爲按字母順序排序時的正確順序,然後重建數據庫。

+0

要提供有用的答案,請提供一些代碼,僞代碼或一步一步的幫助原始海報解決所述問題。 – crafter