Exécuter un script bash à partir d'un script R

J'ai donc ce programme samtools que je veux utiliser de ligne de cmd, la conversion d'un fichier à l'autre. Il fonctionne comme ceci:

bash-4.2$ samtools view filename.bam | awk '{OFS="\t"; print ">"$1"\n"$10}' - > filename.fasta

Que je veux automatiser cela, je voudrais automatiser à l'aide d'un script R. Je sais que vous pouvez utiliser system() pour exécuter une commande de systèmes d'exploitation, mais je ne peux pas le faire fonctionner en essayant

system(samtools view filename.bam | awk '{OFS="\t"; print ">"$1"\n"$10}' - > filename.fasta)

Est-ce juste une question de regexes pour se débarrasser des espaces et des trucs si la virgule nd argument(système de commande) est-il lisible? Comment dois-je faire?

EDIT:

système("samtools afficher le nom de fichier.bam | awk '{OFS="\t"; print ">"$1"\n"$10}' - > first_batch_1.fasta")
Erreur inattendue d'entrée dans "system("samtools afficher le nom de fichier.bam | awk '{OFS="\"

EDIT2:

système("samtools afficher le nom de fichier.bam | awk '{OFS=\"\t\"; print \">\"$1\"\n\"$10}' - > nom de fichier.fasta")

awk: cmd. line:1: {OFS="    "; print ">"$1"
awk: cmd. line:1:                         ^ unterminated string
awk: cmd. line:1: {OFS="    "; print ">"$1"
awk: cmd. line:1:                         ^ syntax error
> 

EDIT3:
Et le gagnant est:

system("samtools view filename.bam | awk '{OFS=\"\\t\"; print \">\"$1\"\\n\"$10}' -> filename.fasta")
system() prend une chaîne de caractères comme argument, si vous avez besoin d'envelopper vos arguments entre guillemets.
Je l'avais essayé déjà. Montré que modifier ci-dessus.
essayez système("samtools afficher le nom de fichier.bam | awk '{OFS=\"\t\"; print \">\"$1\"\n\"$10}' - > nom de fichier.fasta") Vous avez besoin d'échapper les guillemets doubles, afin de R pour lire l'intégralité de la commande, au lieu de seulement la partie de commande entre les deux premiers guillemets doubles
EDIT2: indique que votre suggestion ne fonctionne pas. Échapper à toutes les citations à l'intérieur de la awk regex fait de ne pas fonctionner correctement.
Souldn pas vous aussi à s'échapper de l'barres obliques inverses? system("samtools view filename.bam | awk '{OFS=\"\\t\"; print \">\"$1\"\\n\"$10}' -> filename.fasta")

OriginalL'auteur cianius | 2012-07-09