此 bash 脚本旨在成为处理压缩 .vcf 文件的管道的一部分,该文件包含来自多个患者的基因组(这意味着即使压缩文件也很大,例如 3-5GB)。
我的问题是我在运行这个脚本时总是内存不足。它在 GCP 高内存 VM 中运行。
我希望有一种方法可以优化内存使用,这样就不会失败。我调查了一下,但什么也没找到。
#!/bin/bash
for filename in ./*.vcf.gz; do
[ -e "$filename" ] || continue
name=${filename##*/}
base=${name%.vcf.gz}
bcftools query -l "$filename" >> ${base}_list.txt
for line in `cat ${base}_list.txt`; do
bcftools view -s "$line" "$filename" -o ${line}.vcf.gz
gzip ${line}.vcf
done
done