Использование цикла for с bcftools
У меня есть папка с 900 файлами с такими названиями:
chr1_643632542_63643636.vcf.gz
chr1_23634521_626356.vcf.gz
chr2_363643262346_234324.vcf.gz
chr2_1345_21346.vcf.gz
....
chr22_134545_3245145.vcf.gz
Я пытался проиндексировать каждый файл с помощью цикла:
for i in {1..22}
do
bcftools index -t -f chr${i}_*_*.vcf.gz
done
Итак, я бы получил следующее:
chr1_643632542_63643636.vcf.gz
chr1_643632542_63643636.vcf.gz.tbi
chr1_23634521_626356.vcf.gz
chr1_23634521_626356.vcf.gz.tbi
chr2_363643262346_234324.vcf.gz
chr2_363643262346_234324.vcf.gz.tbi
chr2_1345_21346.vcf.gz
chr2_1345_21346.vcf.gz.tbi
....
chr22_134545_3245145.vcf.gz
chr22_134545_3245145.vcf.gz.tbi
Однако, когда я запускаю указанный выше цикл, я получаю только индексированный файл для первой записи хромосмы, а оставшаяся часть игнорируется (т.е. индексируется только один файл chr1__.vcf.gz.tbi, а оставшаяся часть игнорируется, а затем первый файл chr2 и первый файл chr3 и так далее).
Помощь будет очень признательна.
Всего наилучшего
1 ответ
Решение
Возможно, перебрать имена файлов напрямую:
for i in chr*.vcf.gz
do
bcftools index -t -f $i
done