182 GBの圧縮ファイル(圧縮されていないファイル)をダウンロードする必要があります。シリコンを通して)。ただし、ファイルの最初の5列(約1 GB)のみが必要です。
ファイルのサブセットをダウンロードするために使用できる素晴らしいシェル魔法はありますか?
コンテンツの99%を削除するためにファイル全体をダウンロードすると、サーバーのストレージ容量が実際に消費されます。
ダウンロード中のアイテム: gnomad.genomes.v3.1.2.sites.chr1.vcf.bgz~からgnomad.broadinstitute.org。
代替ソリューションを歓迎します。圧縮されていないファイルにも機能するソリューションに興味があります。
要点は、ファイルのサブセットのみが必要なときに大容量ファイルをダウンロードしたくない場合はどうすればよいですか?
ベストアンサー1
ファイルをダウンロードし、フィルタリングし、結果をローカルディスクに書き込むことができます。
curl https://storage.googleapis.com/gcp-public-data--gnomad/release/3.1.2/vcf/genomes/gnomad.genomes.v3.1.2.sites.chr1.vcf.bgz |
bgzip -d |
cut -f1-5
ファイル全体をダウンロードする必要がありますが、フィルタ処理されたファイルのみがディスクに書き込まれます。
Debian では、このbgzip
コマンドはパッケージによって提供されますtabix
。ただし、インストールされていない場合は(gzip
)を使用して圧縮ファイルをzcat
読み取ることもできます。bgzip
curl … | zcat | cut -f1-5
このパイプラインに必要なデータ記憶容量についていくつかの質問があります。これは実際の実行です。このシステムでは、圧縮しても、利用可能な合計ストレージ容量はわずか2GBで、ファイルをダウンロードして保存するのに必要な182GBとは離れています。
# How much disk space available in my current directory?
df -h .
Filesystem Size Used Avail Use% Mounted on
/dev/root 7.9G 5.6G 2.0G 75% /
# Download and filter the file, saving only the result
curl https://storage.googleapis.com/gcp-public-data--gnomad/release/3.1.2/vcf/genomes/gnomad.genomes.v3.1.2.sites.chr1.vcf.bgz |
bgzip -d |
cut -f1-5 > bigfile
# What did we get, and how much disk space remains?
ls -lh bigfile
-rw-r--r-- 1 roaima roaima 1.7G Feb 7 05:09 bigfile
df -h .
Filesystem Size Used Avail Use% Mounted on
/dev/root 7.9G 7.2G 347M 96% /
興味深いことに、ファイルは次のように見えました。厳しくないTSV(タブ区切り値)形式。 59,160,934行のうち942行にはタブ区切りデータは含まれていません。
file bigfile
bigfile: Variant Call Format (VCF) version 4.2, ASCII text, with very long lines