2016-04-08 14 views
1

Als Vorwort, sie ist ganz neu mit R.mehrere Zieldateien für mehrere Eingabedateien einstellen - sortBam

ich mit dem Paket Rsamtools zu tun habe, und ich versuche, bam Dateien zu sortieren. Ich verwende den sortBam() Befehl, der die folgenden Informationen erfordert:

sortBam(file, destination, ...). 

Ich habe ein R-Objekt mit dem 5 bamfiles:

bamfiles <- list.files(fileDir, pattern = "\\.bam", full.names = TRUE) 

wo filedir = Objekt enthält Dateipfad.

Was ich nicht tun kann, ist die Zieldatei festzulegen, so dass jede der 5 nicht sortierten Bam-Dateien ihre eigene Ausgabedatei erhält. Z.B. file1.bam -> Datei1.sorted.bam ... file5.bam -> file5.sorted.bam. Ich habe herumgesucht und die Antwort nicht gefunden (oder gewusst), so dass jede Hilfe geschätzt wird.

Vielen Dank für die Hilfe

Antwort

1

Sie haben unterschiedliche Verzeichnisse in drei 3 bam Dateien Angenommen.

bams <- list.files(".", patter="*.bam", full=T, recur=T) 
bams 
# [1] "./d1/100.bam" "./d2/11.bam" "./d3/28.bam" 

Als sortBam kann nur eine Art bam-Datei für eine Zeit, können Sie for zu Schleife über die drei bam-Dateien verwenden.

Stellen Sie zuerst die richtigen Ziele ein.

des <- gsub("bam", "sorted", bams) 
des 
# [1] "./d1/100.sorted" "./d2/11.sorted" "./d3/28.sorted" 

Die Art Teil:

for (i in 1:length(bams)) { 
    sortBam(bams[i], des[i]) 
} 

Die Ergebnisdateien auf der Festplatte.

ll -htr * 
d1: 
total 72K 
-rw-rw-r-- 1 35K Apr 8 2016 100.bam 
-rw-rw-r-- 1 35K Apr 8 2016 100.sorted.bam 

d2: 
total 64K 
-rw-rw-r-- 1 30K Apr 8 2016 11.bam 
-rw-rw-r-- 1 31K Apr 8 2016 11.sorted.bam 

d3: 
total 80K 
-rw-rw-r-- 1 40K Apr 8 2016 28.bam 
-rw-rw-r-- 1 40K Apr 8 2016 28.sorted.bam 
+0

Vielen Dank! Das hat mein Problem gelöst. Ich war neugierig, ob sortBam für mehrere Dateien gleichzeitig verwendet werden kann, also ist es auch gut, das herauszufinden. – Luddo