2016-09-25 2 views
1

PCAプロットを作成しました。ここでは、さまざまな遺伝子の発現に基づいていくつかの細胞をプロットしています。このプロットでは、いくつかの点を別の色で色付けしたいと思います。私は "グループ"を創造して、これを達成しようとしました。そこでは、彼らの表現や "遺伝子1"の発現の欠如に基づいて細胞を分類します。R:オートプロット使用時のグループに基づくPCAのカラーポイント

library(ggplot2) 
library(ggfortify) 

# Group cells based on expression of a certain gene (to use for color labels in the next step) 
groups <- factor(ifelse(df$gene1 > 0, "Positive", "Others")) 

#Calculate PCs and plot PCA 
autoplot(prcomp(log(df[]+1)), colour="Positive") 
:ここ
  gene1  gene2  gene3  gene4  gene5 
cell_1 0.0000 0.279204 25.995400 46.171700 94.234100 
cell_2 0.0000 23.456000 77.339800 194.241000 301.234000 
cell_3 2.0000 13.100000 45.309200 0.776565 0.000000 
cell_4 0.0000 10.500000 107.508000 3.032500 0.000000 
cell_5 3.0000 0.000000 0.266139 0.762981 123.371000 

が、私はこれを達成しようとするために使用するコードです:

は、ここに私のデータフレームルックス(gene1、gene2とcell_1、cell_2などがCOLNAMESとrownamesある)ものです

このコードを実行すると、次のエラーが表示されます。

Error in grDevices::col2rgb(colour, TRUE) : invalid color name 'Positive' 
+0

あなたは、変数グループからグループ変数ではなく、特定のラベルを使用する必要があります。 – Pieter

+0

@Pieterありがとうございます。私は言及すべきだった - 私は同じエラーでも "グループ"と "その他"で試した。 (grDevices :: col2rgbのエラー(色、TRUE):無効な色の名前 'グループ') – Galaffer

答えて

0

どうやってですか?

df$groups <- factor(ifelse(df$gene1 > 0, "Positive", "Others")) 

head(df) 
     gene1  gene2 gene3  gene4  gene5 groups 
1 0.5638534 8.968558 94.40170 62.93106 290.442698 Positive 
2 0.0000000 15.248374 45.87507 204.21703 291.501669 Others 
3 1.9059518 19.488162 75.89302 97.69643 177.833347 Positive 
4 1.9449987 6.358773 54.97159 41.54307 164.835188 Positive 
5 0.0000000 16.568077 31.62370 23.72278 31.774541 Others 
6 1.7199368 3.788276 80.51450 102.82221 6.259461 Positive 

autoplot(prcomp(log(df[1:5]+1)), data=df, colour='groups') 

enter image description here

+0

ありがとう! '$ < - 。data.frame'のエラー(' * tmp * '、" group "、value = integer(0)): 置き換えは0行、データは253です > autoplot df [1:5]のエラー: 'closure'タイプのオブジェクトはサブセット化可能ではありません しかし、あなたの解決策私は正確なプロットを生成するだけでなく、混乱の警告を生成するこれを思いついた: autoplot(prcomp(log(df [] + 1))、color = ifelse(df $ gene1> 0、 "red"、 "black" )) 警告メッセージ: if(value%in%カラム){: 条件の長さが1より大きく、最初の要素のみが使用されます – Galaffer

+0

str(df)は何を提供しますか?ランダムに生成されたdfを使用してポストを更新しました.dfが同じ構造を持っていれば、エラーなく動作するはずです。私にとってdfはdata.frameであり、全ての遺伝子列のクラスは数値であり、groups列はクラス因子である。 –

関連する問題