2016-02-02 19 views
0

我有下一個路徑CD /家庭/ VDAS /芯片起/輸出/ 目錄的多個目錄列出轉換多個咣的牀使用bedtools從不同的目錄

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腳本,將裏面去每個樣品目錄並運行以下命令

bedtools bamToBed -i input .bam > out.bed 

我寫了一個小bash腳本,但它無法正常工作。你能告訴我哪裏出錯了嗎

#!/bin/sh 
# 
#$ -N bam2bed 
#$ -cwd 
#$ -e err_bam2bed.log 
#$ -o out_bam2bed.log 
#$ -S /bin/sh 
#$ -M [email protected] 
#$ -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循環的確切方法是什麼?如果沒有錯,這應該沒問題。讓我知道。

回答

1

試一下這個

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" 
+0

我想通了這個問題,bamToBed被安裝在根,所以我只是改爲'bamToBed -i 「$ X」> 「$ {X%.bam} .bed」 '。它似乎工作。 –

相關問題