gpt4 book ai didi

python - linux合并picard中的多个文件

转载 作者:太空宇宙 更新时间:2023-11-04 09:15:50 24 4
gpt4 key购买 nike

我有十个目录,每个目录大约有 10-12 个 bam 文件。我需要使用 picard 包将它们合并在一起,我想找到一种更好的方法。

basic command:
java -jar picard.jar MergeSamFiles \
I=input_1.bam \
I=input_2.bam \
O=merged_files.bam

directory 1:
java -jar picard.jar MergeSamFiles \
I=input_16.bam \
I=input_28.bam \
I=input_81.bam \
I=input_34.bam \
... \
... \
I=input_10.bam \
O=merged_files.bam

directory 2:
java -jar picard.jar MergeSamFiles \
I=input_44.bam \
I=input_65.bam \
I=input_181.bam \
I=input_384.bam \
... \
... \
I=input_150.bam \
O=merged_files.bam

如果它们不是连续的,我如何通过使用变量添加输入,我想对这十个目录执行 for 循环,但它们包含不同数量的 bam 文件。

我应该使用 python 或 R 来完成还是继续使用 shell 脚本?请指教。

最佳答案

为什么不使用 samtools?

for folder in my_bam_folders/*; do
samtools merge $folder.bam $folder/*.bam
done

一般来说,samtools merge 可以像这样合并给定目录中的所有 bam 文件:

samtools merge merged.bam *.bam

编辑:如果 samtools 不是一个选项并且您必须使用 Picard,那么像这样的东西怎么样?

for folder in my_bam_folders/*; do
bamlist=$(for f in $folder/*.bam; do echo -n "I=$f " ; done)
java -jar picard.jar MergeSamFiles $bamlist O=$folder.bam
done

关于python - linux合并picard中的多个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47935375/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com