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
助けてくれて本当にありがとうございます
ケリー