Thank you, Pierre! I tried running:
INPUT_DIR=path
REF_DIR=path
INPUT=$(ls -1 all/*.sorted.bam | sed -n ${RUN}p)
SAMPLE=$(basename "${INPUT}/" .sorted.bam)
OUT_DIR=path
ls -1 all/*.sorted.bam | while read BAM
do
java -jar picard.jar ValidateSamFile \
I=${INPUT_DIR}/${SAMPLE}.sorted.bam \
MODE=SUMMARY
java -jar picard.jar AddOrReplaceReadGroups \
I=${INPUT_DIR}/${SAMPLE}.sorted.bam \
O=${OUT_DIR}/${SAMPLE}.gatk.bam \
RGID=1 \
RGLB=lib1 \
RGPL=illumina \
RGPU=unit1 \
RGSM=20
java -jar picard.jar ValidateSamFile \
I=${OUT_DIR}/${SAMPLE}.gatk.bam \
MODE=SUMMARY
samtools index ${OUT_DIR}/${SAMPLE}.gatk.bam
echo " ${OUT_DIR}/${SAMPLE}.gatk.bam" >> all_bams.list
done
But instead of reading all samples, it just reads the last sample in the directory.