0

ディレクトリ内のすべての .bam ファイルに対してバイオインフォマティクス コマンド ライン ツールを実行しようとしています。これは私が使用しているものです:

#!/bin/sh

reference='/path/Homo_sapiens_assembly19.fasta'

for f in *.bam
do 
    base_name=${f%.bam}
    java -jar /ppath/GenomeAnalysisTK.jar -R $reference \
   -T ASEReadCounter \
   -o $base_name.csv \
   -I $f \
   -sites $base_name.vcf \
   -U ALLOW_N_CIGAR_READS \
   -minDepth 10 \
   --minMappingQuality 10 \
   --minBaseQuality 2
done;

問題は、最初の bam ファイルを反復処理した後にループが停止することです。最終的には、これで 2000 個の .bam ファイルのセットを超えるようになり、それらすべてを手動で入力する必要はありません (30 時間以上かかります)。

4

1 に答える 1

0

次のことを試してください。

#!/bin/bash

reference='/path/Homo_sapiens_assembly19.fasta'

for f in $(ls ./*.bam); do
    base_name=${f%.bam} 
    #base_name=$(basename ${f})  # alternatively you can use this
    java -jar /ppath/GenomeAnalysisTK.jar -R ${reference} \
   -T ASEReadCounter \
   -o ${base_name}.csv \
   -I ${f} \
   -sites ${base_name}.vcf \
   -U ALLOW_N_CIGAR_READS \
   -minDepth 10 \
   --minMappingQuality 10 \
   --minBaseQuality 2
done;

-o $base_name.csvと呼ばれる変数を探していたので、出力ファイルが上書きされ、単一のbamファイルのみが処理されたかのように見えたのではbasename.csvないかと思います。これは、接尾辞で拡張する前にbasenameを使用して bash 変数を呼び出すことで簡単に修正できます。${basename}

于 2016-06-21T06:49:47.380 に答える