現在、次のデータセットがあります。
入力する
Hybridization REF TCGA-FA-8693-01A-11D-2399-05 TCGA-FA-8693-01A-11D-2399-05 TCGA-FA-8693-01A-11D-2399-05 TCGA-FA-8693-01A-11D-2399-05 TCGA-FA-A4BB-01A-11D-A31Y-05 TCGA-FA-A4BB-01A-11D-A31Y-05 TCGA-FA-A4BB-01A-11D-A31Y-05 TCGA-FA-A4BB-01A-11D-A31Y-05
Composite Element REF Beta_value Gene_Symbol Chromosome Genomic_Coordinate Beta_value Gene_Symbol Chromosome Genomic_Coordinate
cg00000029 0.856505141 RBL2 16 53468112 0.334665026 RBL2 16 53468112
cg00000108 NA C3orf35 3 37459206 NA C3orf35 3 37459206
cg00000109 NA FNDC3B 3 171916037 NA FNDC3B 3 171916037
データセットのサイズは10 GBに近く、はるかに大きいです。たとえば、Rで実行するには大きすぎます。
しかし、実際には重複する熱がたくさんあります。たとえば、タイトルが(2行目)とである各列のうちの1つだけを保持しますGene_Symbol
。個々の列はサンプルごとに異なるため、保存する必要があります。サンプルIDは最初の行にあります。したがって、上記の例では、望ましい出力は次のようになります。Chromosome
Genomic_Coordinate
Beta_value
希望の出力
Hybridization REF Gene_Symbol Chromosome Genomic_Coordinate TCGA-FA-8693-01A-11D-2399-05 TCGA-FA-A4BB-01A-11D-A31Y-05
cg00000029 RBL2 16 53468112 0.856505141 0.334665026
cg00000108 C3orf35 3 37459206 NA NA
cg00000109 FNDC3B 3 171916037 NA NA
重複した情報を削除するために、最初の行の列ヘッダーを混在させました。
Bashを使用する最も効率的な方法は何ですか?
ベストアンサー1
ヘッダがファイルの上部の2行であると仮定すると、手動で修正します。 (簡単な方法:tail -n +3
パイプを介して最初の2行をスキップして、必要なヘッダーを含むファイルに関連付けます。)
その後、デフォルトでは[TAB]文字に分割されているを使用して残りの操作を実行できます。cut
これはすでに持っている文字なので非常に便利です。ただパイプで
cut -f1,3,6
または他のもの(この例では列1、3、6を選択します)。