私は22000個の遺伝子を含む相関行列を持っており、いくつかの分析を実行するには、行列の各行を新しいファイルに分割する必要があります。これは、22,000個の別々のファイルを生成する必要があることを意味します。
入力ファイルの例に対して(gene_name.txtという名前の出力ファイルをインポートしたいので)、分割コマンドを使用したくありません。
IGHD2-15 IGHD3-22 IGHD3-16 IGHD3-10
IGHD2-15 1 0.696084 0.799736 0.818788
IGHD3-22 0.696084 1 0.691419 0.67505
IGHD3-16 0.799736 0.691419 1 0.810656
IGHD3-10 0.818788 0.67505 0.810656 1
ベストアンサー1
遺伝子名が最初の列にあると仮定すると、必要なものは次のとおりです。
awk '{print >> $1".txt"; close(n".txt")}' matrix.txt
これにより、行の最初のフィールドに拡張子(完全にオプション)が付いたファイルに各行が印刷されます.txt
。ファイルに遺伝子名を含めない場合は、次のようにします。
awk '{n=$1; $1="";print >> n".txt"; close(n".txt")}' matrix.txt
最初の行がヘッダーの場合は、次を使用してください。
awk 'NR>1{print >> $1".txt"; close($1".txt")}' matrix.txt
最後に、最初のフィールドが単純な遺伝子名ではなく、NULLまたは有効なパスを含む可能性があるため、ファイルに行を含めることができるため、入力を削除する必要がある場合は、次のようにします。
awk 'NR > 1 && ($1 ~ /^[A-Z0-9-]+$/) { print >> $1; close($1) }'