2016-04-08 66 views
1

作爲前言,我很新的使用R.設置多個輸入文件的多個目標文件 - sortBam

我處理的包Rsamtools,我試圖咣文件進行排序。我使用的sortBam()命令,該命令需要以下信息:

sortBam(file, destination, ...). 

我有含有5個bamfiles一個R-對象:

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

其中包含文件路徑FILEDIR =對象。

我不知道該怎麼做是設置目標文件,以便5個未排序的bam文件中的每一個都有自己的輸出文件。例如。 file1.bam - > file1.sorted.bam ... file5.bam - > file5.sorted.bam。我一直在四處搜尋,並沒有發現(或意識到)答案,所以任何幫助,將不勝感激。

謝謝你的幫助

回答

1

假設你在三個不同的目錄中有3個bam文件。

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

由於sortBam只能那種一對一的時候咣的文件,你可以使用for遍歷三個咣文件。

首先,設置適當的目的地。

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

的分類部分:

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

在磁盤上的結果文件。

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

非常感謝! 這已經整理出我的問題。我很好奇sortBam是否可以在多個文件中同時使用,所以這也很好找到。 – Luddo