下記を参照 Rを使用して、(遺伝子発現データの)マトリックスをフィルタリングし、高い値を有する行(遺伝子/プローブ)のみを保持したい分散。たとえば、値の下限と上限パーセンタイル(たとえば、20%未満と80%未満)の行のみを保持したいとします。私は下流の分析のために高分散の遺伝子だけに研究を限定したいと思っています。 Rでの遺伝子フィルタリングの一般的な方法はありますか?R、分散カットオフに基づくフィルタマトリックス
私のマトリックスはlog2変換され正規化された値を持つ18個のサンプル(列)と47000個のプローブ(行)を持っています。私はquantile()
関数が各サンプル列内の20%と80%のカットオフを識別できることを知っています。私は、行列全体に対してこれらの値を見つける方法を理解することができず、元の行列を部分集合化して、すべての「変化しない」行を削除します。
例彼らは、20%と80%のカットオフ値の間の値が含まれているため、このようにして最後の3行が削除されるべきである5.97の平均と行列、:
> m
sample1 sample2 sample3 sample4 sample5 sample6
ILMN_1762337 7.86 5.05 4.89 5.74 6.78 6.41
ILMN_2055271 5.72 4.29 4.64 5.00 6.30 8.02
ILMN_1736007 3.82 6.48 6.06 7.13 8.20 4.06
ILMN_2383229 6.34 4.34 6.12 6.83 4.82 5.57
ILMN_1806310 6.15 6.37 5.54 5.22 4.59 6.28
ILMN_1653355 7.01 4.73 6.62 6.27 4.77 6.12
ILMN_1705025 6.09 6.68 6.80 6.85 8.35 4.15
ILMN_1814316 5.77 5.17 5.94 6.51 7.12 7.20
ILMN_1814317 5.97 5.97 5.97 5.97 5.97 5.97
ILMN_1814318 5.97 5.97 5.97 5.97 5.97 5.97
ILMN_1814319 5.97 5.97 5.97 5.97 5.97 5.97
Iは、任意の提案を感謝し、又は機能します私は調べなければならない。 ありがとう!
EDIT
申し訳ありませんが、私はOPで非常に明確ではありませんでした。 (1)個々のサンプルだけでなく、マトリックス全体の20%と80%のカットオフ値を知りたい。 (2)次に、行に上限または下限パーセンタイルの値が含まれている場合、Rはこれらの行を保持します。行に平均値に近い値(すべてのサンプル)が含まれている場合、これらの行はスローされます。
おかげ分位行方向の変動のいくつかの尺度
var.func
及び(単一)のために、何よりも厄介であることを示していません。私はあなたが達成することを望んでいたことを反映するために私の答えを更新しました。クイック質問 - 行列またはデータフレームを持っていますか(つまり、ID列は行列の名前またはデータフレームの最初の列ですか)。クラスを確認する簡単な方法は 'class(m)'です。 –これは行列(表現データのみ)であり、ID列は私の行列のrownamesです(私の例では "ID"という名前を残しておくべきです)。 – Todd
よかった!それが私の例で考えたことです。 –