1

R初心者です。R を使用して大規模な次世代シーケンシング vcf ファイルを分析していますが、問題が発生しています。非常に大きな vcf ファイルをデータ フレーム (177 変数の 2446824 観測値) としてインポートし、関心のある 3 つのサンプル (29 変数の 2446824 観測値) だけでサブセットを作成しました。

ここで、次元をさらに減らしたいと考えています (行を約 200000 に減らします)。grep を使用しようとしていますが、動作させることができません。私が得るエラーは

Error in "0/1" | "1/0" : 
   operations are possible only for numeric, logical or complex types

これは、私が作業しているファイルの小さな例です。

Chr Start   End Ref Alt Func.refGene    INFO    FORMAT  Run.Sample1 Run.Sample2 Run.Sample3
489 1   909221  909221  T   C   PASS    GT:AD:DP:GQ:PL  0/1:11,0:11:33:0,33,381     ./.     ./.
490 1   909238  909238  G   C   PASS    GT:AD:DP:GQ:PL  0/1:11,6:17:99:171,0,274    0/1:6,5:11:99:159,0,116     1/1:0,15:15:36:441,36,0
491 1   909242  909242  A   G   PASS    GT:AD:DP:GQ:PL  0/1:16,4:13:45:0,45,532     0/0:11,0:11:30:0,30,366     0/0:16,0:17:39:0,39,479
492 1   909309  909309  T   C   PASS    GT:AD:DP:GQ:PL  0/0:23,0:23:54:0,54,700     0/0:15,1:16:36:0,36,463     0/0:19,0:19:48:0,48,598

このデータセットの行を減らす方法は 2 つあります。

コード 1. $Run.Sample1 または $Run.Sample2 または $Run.Sample3 のいずれかに「0/1」または「1/0」または「1/1」が含まれている場合、行全体を保持します。

コード 2. $Run.Sample1 または $Run.Sample2 に「0/1」または「1/0」または「1/1」が含まれ、$Run.Sample3 に「0/0」が含まれる場合、行全体を保持します。

コード 1 から取得したい結果は次のとおりです。

Chr Start   End Ref Alt Func.refGene    INFO    FORMAT  Run.Sample1 Run.Sample2 Run.Sample3
489 1   909221  909221  T   C   PASS    GT:AD:DP:GQ:PL  0/1:11,0:11:33:0,33,381     ./.     ./.
490 1   909238  909238  G   C   PASS    GT:AD:DP:GQ:PL  0/1:11,6:17:99:171,0,274    0/1:6,5:11:99:159,0,116     1/1:0,15:15:36:441,36,0
491 1   909242  909242  A   G   PASS    GT:AD:DP:GQ:PL  0/1:16,4:13:45:0,45,532     0/0:11,0:11:30:0,30,366     0/0:16,0:17:39:0,39,479

コード 2 から取得したい結果は次のとおりです。

Chr Start   End Ref Alt Func.refGene    INFO    FORMAT  Run.Sample1 Run.Sample2 Run.Sample3
489 1   909221  909221  T   C   PASS    GT:AD:DP:GQ:PL  0/1:11,0:11:33:0,33,381     ./.     ./.
491 1   909242  909242  A   G   PASS    GT:AD:DP:GQ:PL  0/1:16,4:13:45:0,45,532     0/0:11,0:11:30:0,30,366     0/0:16,0:17:39:0,39,479

助けてくれて本当にありがとうございます

ケリー

4

1 に答える 1