この特定の方法で、すべてのファイルをゲノムデータと組み合わせる必要があります。つまり、最初に数字順に並べてから、アルファベット順に並べ替える必要があります。ファイル名は次のとおりです。
Homo_sapiens.GRCh38.dna.chromosome.1.fa.gz
Homo_sapiens.GRCh38.dna.chromosome.2.fa.gz
Homo_sapiens.GRCh38.dna.chromosome.3.fa.gz
etc.
Homo_sapiens.GRCh38.dna.chromosome.11.fa.gz
Homo_sapiens.GRCh38.dna.chromosome.13.fa.gz
etc.
Homo_sapiens.GRCh38.dna.chromosome.X.fa.gz
Homo_sapiens.GRCh38.dna.chromosome.Y.fa.gz
bashでできるだけ簡単に行う必要があります。スクリプトなどは必要ありません。他のものも試してみましたが、sort -V
まだ動作しません。どんなアイデアがありますか? 8)
ベストアンサー1
zsh
シェルでは、
print -l Homo_sapiens.GRCh38.dna.chromosome.*.fa.gz(n)
必要な順序でファイルを印刷します。
$ print -l Homo_sapiens.GRCh38.dna.chromosome.*.fa.gz(n)
Homo_sapiens.GRCh38.dna.chromosome.1.fa.gz
Homo_sapiens.GRCh38.dna.chromosome.2.fa.gz
Homo_sapiens.GRCh38.dna.chromosome.3.fa.gz
Homo_sapiens.GRCh38.dna.chromosome.4.fa.gz
Homo_sapiens.GRCh38.dna.chromosome.5.fa.gz
Homo_sapiens.GRCh38.dna.chromosome.6.fa.gz
Homo_sapiens.GRCh38.dna.chromosome.7.fa.gz
Homo_sapiens.GRCh38.dna.chromosome.8.fa.gz
Homo_sapiens.GRCh38.dna.chromosome.9.fa.gz
Homo_sapiens.GRCh38.dna.chromosome.10.fa.gz
Homo_sapiens.GRCh38.dna.chromosome.11.fa.gz
Homo_sapiens.GRCh38.dna.chromosome.12.fa.gz
Homo_sapiens.GRCh38.dna.chromosome.13.fa.gz
Homo_sapiens.GRCh38.dna.chromosome.14.fa.gz
Homo_sapiens.GRCh38.dna.chromosome.15.fa.gz
Homo_sapiens.GRCh38.dna.chromosome.16.fa.gz
Homo_sapiens.GRCh38.dna.chromosome.17.fa.gz
Homo_sapiens.GRCh38.dna.chromosome.18.fa.gz
Homo_sapiens.GRCh38.dna.chromosome.19.fa.gz
Homo_sapiens.GRCh38.dna.chromosome.20.fa.gz
Homo_sapiens.GRCh38.dna.chromosome.21.fa.gz
Homo_sapiens.GRCh38.dna.chromosome.22.fa.gz
Homo_sapiens.GRCh38.dna.chromosome.X.fa.gz
Homo_sapiens.GRCh38.dna.chromosome.Y.fa.gz
最後は、(n)
グローバルマッチで生成された名前を10進整数でソートします。最後はアルファベットX
順に保持されますY
。
1つのファイルに結合するには:
cat Homo_sapiens.GRCh38.dna.chromosome.*.fa.gz(n) >Homo_sapiens.GRCh38.dna.combined.fa.gz
私が選択した名前はパターンと一致せず、フォーマットはgzip
このタイプのリンクを受け入れます(圧縮された結合ファイルを解凍すると、すべての結合ファイルの結合データが提供されます)。圧縮しておいたらbgzip
それから私は考えるあなたは大丈夫でしょう。
M
さらに、染色体(ミトコンドリアおよび配置されていない足場)がある場合、通常、Un
最後に必要に応じてソートが多少混乱する可能性があります。
sort -t. -k5,5 -V
(ドットで区切られた5番目のフィールドで「バージョンソート」を実行)を使用して、このソート順序を取得することもできます。一方sort -V
(ソートフィールドを指定しない)は、染色体番号では38
なく染色体番号に基づいてソートされます。
存在するbash
:
printf '%s\0' Homo_sapiens.GRCh38.dna.chromosome.*.fa.gz |
sort -z -t. -k5,5 -V |
xargs -0 cat >Homo_sapiens.GRCh38.dna.combined.fa.gz
これにより、関連するすべてのファイル名のリストが生成され、sort
コマンドにパイプされます(すでに説明しました)。ソート後、ソートされxargs
た名前を読み取り、呼び出してcat
データを結合します。例に示すように、出力は新しいファイルに書き込まれますzsh
。
パイプライン全体では、ファイル名はnullで終わる文字列として扱われます。