Question

J'ai cette ligne

samtools view -h file | awk '$3=="chr$a" || /^@/' | samtools view -S - -b -o output

Le tableau de bord entre le THE et le-B est censé indiquer au programme de STDIN.Je peux l'exécuter à partir d'un script Perl sur la ligne de commande, mais dès que j'essaie de le déplacer dans un script shell, il crée simplement le fichier sans émettre de données.Toute idée serait grandement appréciée.

Était-ce utile?

La solution

In a shell script the $a inside single quotes will not be expanded:

for a in {1..22} do 
  samtools view -h AD3.sorted.bam | awk '$3=="chr$a" || /^@/' | samtools view -S - -b -o chr$a.bam 
done 

Autres conseils

If you haven't already, have a look at the samtools FAQ. This has examples for doing similar things to what you want to do with your pipeline.

Its been a while since I used samtools, but I would've written your command like this:

samtools view -h file | awk '$3=="chr$a" || /^@/' | samtools view -S -b - > output.bam

Also you mentioned you had moved the command to a shell script. Is the shell script doing anything else? If it still doesn't work, I would post that for us to look at.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top