R パッケージ cummeRbund (Bioconductor から) を使用して RNA-seq データを視覚化しています。「DEG_genes」と呼ばれる cuffGeneSet インスタンスを作成しました。このインスタンスには、男性と女性の間で大幅に異なる発現を示す 662 の遺伝子が含まれています。私の目標は、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)
これは私が望むものをほとんど与えてくれます: ヒートマップは左側に女性、右側に男性を示していますが、アルファベット順に並べられています (女性_0、女性_1、女性_10、女性_11、女性_12...女性_19、女性_2、女性_20、女性_21..、女性_29左と同様に、男性のMale_0、Male_1、Male_10 ...Male_19、Male_2、Male_20 ...など)、特定の順序(clusterReps)にする必要があります。次のように、特定の順序で複製名を使用してテスト ベクトルを作成しました (左側の男性は 0 と 6 が交換され、右側は女性)。
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 であることを知っていたので、過去 2 日間、どこでも解決策を探しましたが、成功しませんでした (stackoverflow の csHeatmap() の代わりに heatmap.2() に非常によく似た問題があるにもかかわらず、複製された 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
申し訳ありませんが、現時点ではこれ以上の情報を提供することはできません。コマンドを実行して出力を報告してほしい場合はお知らせください。