2016-12-02 8 views
0

私は多くのallsamples.bamファイルを別々のフォルダに持っており、それらのすべてからマップされていない読み込みを抽出し、対応するフォルダにunmapped.bamとして保存します? allbamfiles.txtには、すべてのbamファイルへのパスが含まれています。出力ファイルを対応するフォルダに保存するには

#!/usr/bin/env bash 
#$ -q cluster 
#$ -cwd 
#$ -N test 
#$ -e /path/to/log 
#$ -o /path/to/log 
#$ -l job_mem=8G 
#$ -pe serial 4 

SAMTOOLS="/path/to/samtools" 

while IFS= read -r file 
    do 
      $SAMTOOLS view -b -f 4 $file > "${file%.bam}_unmapped.bam" 
    done < "/path/to/allbamfiles.txt" 
    wait 

答えて

1

allbamfiles.txt内のすべてのファイルのパスが現在のディレクトリを参照するか、絶対パスであると仮定すると、この解決策が機能するはずです。

dirnameコマンドはファイルのパスを取得し、basenameコマンドはファイル名を取得することに注意してください。

SAMTOOLS="/path/to/samtools" 
while read file; do 
    dir=$(dirname $file) 
    fileName=$(basename $file) 
    $SAMTOOLS view -b -f 4 $file > "${dir}/${fileName%.bam}_unmapped.bam" 
done < "/path/to/allbamfiles.txt" 
+0

スーパー!どうもありがとうございました – user3224522

関連する問題