R パッケージ NMFを使用して、マイクロアレイ発現データに対して非負行列因数分解を実行しています。手順はうまくいきましたnmf
が、基底行列から遺伝子名 (特徴) を抽出したいと考えています。基底行列はnmf
、行に遺伝子名、列にメタ遺伝子番号 (因子分解ランク) が続く結果の行列の 1 つです。
パッケージには、これを行うための関数がありextractFeatures()
、マトリックスをスコアリングし、スコアリング基準に適合する機能 (遺伝子名) を返します。NMF (と呼ばれる最終的な NMF オブジェクトx
) を実行した後、基底行列に 4 つのメタ遺伝子列 (ランク = 4) があったとします。実行するs <- extractFeatures(x)
と、整数を含む 4 つのベクトルを含む R の「リスト」が得られます。
> class(s)
[1] "list"
> str(s)
List of 4
$ : int [1:575] 569 4857 4 51 91 9627 6359 2522 118 163 ...
$ : int [1:243] 3 1 11834 106 2 52 3855 1103 6 1510 ...
$ : int [1:37] 11922 11890 11521 11888 11648 11388 9340 11520 9854 11670 ...
$ : int [1:808] 6123 9125 11918 10432 9674 2109 11802 8372 11746 6996 ...
- attr(*, "method")= chr "kim"
(以下のコードでは、簡潔にするために結果の一部が削除されています)
> s
[[1]]
[1] 569 4857 4 51
[[2]]
[1] 3 1 11834 106 2 52 3855 1103 6 1510 14 49
[[3]]
[1] 11922 11890 11521
[[4]]
[1] 6123 9125 11918 10432 9674 2109
質問 1: これらの整数は何ですか? それらは、私のマトリックスからの「機能」(つまり、遺伝子名)であるはずです。なぜ遺伝子名ではなく整数なのですか? それらの整数は何らかの形で私の遺伝子名に対応していますか?
質問 2: 個々のベクターから遺伝子名を分離する方法 (リスト内s
)。たとえば、最初のメタ遺伝子 (575 の機能) の遺伝子名のみを取得し、次に 2 番目のメタ遺伝子 (243 の機能) の遺伝子名のみを取得したいなどです。
どんなアイデアでも大歓迎です。ありがとう!