1

タイトルはナンセンスかもしれませんが、説明させてください。txt ファイルをフィルタリングする必要があります。私が行うべき操作は、私が言ったように非常に基本的なものです。私が話しているファイルはこれです: http://gdac.broadinstitute.org/runs/analyses__2014_10_17/reports/cancer/BRCA-TP/Mutation_Assessor/BRCA-TP.maf.annotated

最初に、私はこのタスクに焦点を当てました: データ ファイルで Tumor_Sample_Barcode 列を見つけてください。ご覧のとおり、その列に対応するすべての行は次のような形式になっています: TCGA-02-0001-01C-01D-0182-01

ここでは「C」の前の 2 文字が重要です。例の形式では、これらの文字は「01」です。そこに「01」を含むこれらの行を探しています。つまり、他の文字カップルが存在する行は削除する必要があります。

ファイルのサイズが 56.2 MB でなければ、MATLAB で簡単に処理できます。しかし、次の行で MATLAB でファイルの列を分割しようとすると、エラーが発生しました。

[numData,textData,rawData] = xlsread('BRCA-TP.maf.annotated.csv');

MATLAB の Java ヒープ メモリを最大化しましたが、エディタでこのタスクを実現するのに十分なメモリがないというエラーが表示されます。

別の方法を探しました。JMP が役立つかもしれませんが、私はそのソフトウェアの経験がありません。上記のような基本的な操作でさえ、私にとっては苦痛かもしれません。

上記で説明した操作を MATLAB で実現する方法はありますか? そうでない場合は、JMP でスクリプトを作成する方法を教えてください。

4

2 に答える 2

1

これは、単純な「awk」コマンドで実行できます。

awk '$16 ~ /....-..-....-01C-...-....-../' BRCA-TP.maf.annotated > BRCA-TP.maf.annotated.filtered

16 は 16 列目を参照することを意味し、// 内の用語は正規表現です (ドットは任意の文字を表します)。

「awk」は、Mac OS X や Ubuntu などの UNIX ライクなオペレーティング システムで使用できますが、Windows を実行している場合は、Cygwin などのユーティリティをダウンロードしてインストールする必要があります。

于 2015-03-11T18:34:25.047 に答える