Question: Loop to change a @RG in a BAM file
0
gravatar for mwerseb1
12 months ago by
mwerseb10
mwerseb10 wrote:

Hello,

I am trying to change the @RG from "ID:i" to "ID:MyFileName" in a number of files using a while read loop. My syntax is as follows:

ls *.sorted.bam|awk -F "." '{print $1}'| while read name; do
samtools view -H $name.sorted.bam| sed 's/ID:i/ID:$name/'|samtools reheader - $name.sorted.bam > $name.sorted_rh.bam;
done

Everything works perfectly except in the reheadered bam file the "ID:i" is replaced with "ID:$name" not the file name. Any ideas about how to fix this? When not in a loop the sed command changes the strings correctly.

Thanks

bash samtools bam loop • 355 views
ADD COMMENTlink modified 12 months ago by Pierre Lindenbaum131k • written 12 months ago by mwerseb10
1

This should work as well:

samtools addreplacerg -r "ID:$name" -o $name.sorted_rh.bam $name.sorted.bam
ADD REPLYlink written 12 months ago by finswimmer13k
2
gravatar for Pierre Lindenbaum
12 months ago by
France/Nantes/Institut du Thorax - INSERM UMR1087
Pierre Lindenbaum131k wrote:

use double quote instead of single quote

sed "s/ID:i/ID:$name/"

see https://stackoverflow.com/questions/6697753/difference-between-single-and-double-quotes-in-bash

ADD COMMENTlink written 12 months ago by Pierre Lindenbaum131k

That seems to have worked! Thanks!

ADD REPLYlink written 12 months ago by mwerseb10
Please log in to add an answer.

Help
Access

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.
Powered by Biostar version 2.3.0
Traffic: 1966 users visited in the last hour