相对的unix新手。我有许多目录 ( Sample*/
),我想在其中使用 samtools 合并所有 raw.sort.bam 文件。我在每个目录中都有工作代码来执行此操作,但我想通过从父目录运行代码来一次处理所有目录。我的问题是我被迫使用完整路径调用 samtools,并且我无法弄清楚该路径将如何在 unix 循环中工作。
首先,这是我在每个目录中合并和转换的工作代码:
/home/user/pathtosamtools/sam merge -o all.sort.bam *raw.sort.bam
现在,我的非工作代码在从父目录运行时尝试对所有目录执行此操作:
for f in `ls Sample*/`; do /home/user/pathtosamtools/sam merge -o $f all.sort.bam Sample*/*raw.sort.bam; done
错误:
[bam_merge_core_ext] fail to open file all.sort.bam
[bam_header_read] bgzf_check_EOF: Invalid argument
[bam_header_read] invalid BAM binary header (this is not a BAM file).
Segmentation fault
提前致谢。