This is a test version of Biostars. For the public version, visit https://www.biostars.org.
Help with adding read groups in BWA bash loop script

Hi all, I'm relatively new to bash scripting and working on one to map samples with BWA bash-loop.

My loop is the following:

for i in $(ls *.fastq.gz | rev | cut -c 10- | rev | uniq)
do

 ./bwa mem -t 60 -c 1 -R '@RG\tID:${i}\tSM:${i}\tPL:illumina\tPU:Lane1\tLB:exome' MyReference.fq ${i}.fastq.gz ${i}.fastq.gz > ${i}.sam
 done

The '-R' flag will add the read group info into the sam file. I am having trouble with having the actual sample name being added, rather than it just printed with a '${i}'. I've spending lot's of time googling, and trying to figure this out, but haven't been able to yet. Any advice would be appreciated.

bwa next-gen bash-loop
@RG\tID:${1}\tSM:${1}\tPL:illumina\tPU:Lane1\tLB:exome

Are you using 1 instead of i there?

Sorry meant i instead of 1.

Typo on my part - edited the original post

Troubleshooting hint

What is the output of this?

for i in $(ls *.fastq.gz | rev | cut -c 10- | rev | uniq)
do
echo '@RG\tID:${i}\tSM:${i}\tPL:illumina\tPU:Lane1\tLB:exome'
done

If this does not expands the variable $i, then your code is not going to work. Try the suggestion from WouterDeCoster

1 answer

Try " instead of ' for quoting. Variable expansion needs double quotes.

Log in to answer this question.