首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用来自不同目录的床上工具将多个bam转换为床

使用来自不同目录的床上工具将多个bam转换为床
EN

Stack Overflow用户
提问于 2016-02-02 19:14:39
回答 1查看 531关注 0票数 0

我在路径cd /home/vdas/ChIP-Seq/output/ Directory listing下有多个目录

代码语言:javascript
复制
drwxrwxrwx 3 vdas   DPT    7 Feb  2 10:41 S_12_O_319_K27ac
drwxrwxrwx 3 vdas   DPT    7 Feb  2 10:41 S_12_O_319_K27me3
drwxrwxrwx 3 vdas   DPT    7 Feb  2 10:41 S_12_O_319_K4me1
drwxrwxrwx 3 vdas   DPT    7 Feb  2 10:41 S_12_O_319_K4me3
drwxrwxrwx 3 vdas   DPT    7 Feb  2 10:41 S_12_O_319_input
drwxrwxrwx 3 vdas   DPT    7 Feb  2 10:41 S_13_O1_122_K27ac
drwxrwxrwx 3 vdas   DPT    7 Feb  2 10:41 S_13_O1_122_K27me3

在每个目录中都有一个*.sorted.bam文件。我想要编写一个bash脚本,该脚本将进入每个sample目录并运行以下命令

代码语言:javascript
复制
bedtools bamToBed -i input .bam > out.bed

我写了一个小的bash脚本,但它不工作。你能告诉我哪里弄错了吗?

代码语言:javascript
复制
#!/bin/sh
#
#$ -N bam2bed
#$ -cwd
#$ -e err_bam2bed.log
#$ -o out_bam2bed.log
#$ -S /bin/sh
#$ -M xyz@gmail.com
#$ -m bea
#$ -l h_vmem=25G

cd /home/vdas/ChIP-Seq/output
for x in `ls S*/*.sorted.bam` ; do
    echo "print current:$x"
    bedtools bamToBed -i "$x" > "${x%.bam}.bed"
done
echo "done"

我哪里搞错了?我不打算编写重复的命令,那么创建for循环的确切方法应该是什么呢?如果我没记错的话,这应该没问题。让我知道。

EN

回答 1

Stack Overflow用户

发布于 2016-02-02 19:24:38

尝尝这个

代码语言:javascript
复制
cd /home/vdas/ChIP-Seq/output
for x in S*/*.sorted.bam ; do
    echo "print current:$x";
    bedtools bamToBed -i "$x" > "${x%.bam}.bed";
done
echo "done"
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35151915

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档