2017-12-22 4 views
0

저는 10 개의 디렉토리가 있으며 각 디렉토리에는 약 10-12 개의 bam 파일이 있습니다. 나는 그들을 함께 병합하기 위해 picard 패키지를 사용해야하며 더 잘 할 수있는 방법을 찾고 싶습니다. 그들은 순차적에없는 경우linux는 picard에 여러 파일을 병합합니다.

basic command: 
java -jar picard.jar MergeSamFiles \ 
    I=input_1.bam \ 
    I=input_2.bam \ 
    O=merged_files.bam 

directory 1: 
java -jar picard.jar MergeSamFiles \ 
    I=input_16.bam \ 
    I=input_28.bam \ 
    I=input_81.bam \ 
    I=input_34.bam \ 
    ... \ 
    ... \ 
    I=input_10.bam \ 
    O=merged_files.bam 

directory 2: 
java -jar picard.jar MergeSamFiles \ 
    I=input_44.bam \ 
    I=input_65.bam \ 
    I=input_181.bam \ 
    I=input_384.bam \ 
    ... \ 
    ... \ 
    I=input_150.bam \ 
    O=merged_files.bam 

어떻게 변수를 사용하여 입력을 추가 할 수 있으며 나는 그 열 디렉토리 for 루프를 할 싶습니다하지만 그들은 빵 파일의 다른 번호가 포함되어 있습니다.

파이썬이나 R을 사용하여 쉘 스크립트를 사용해야합니까? 상담하십시오.

답변

1

samtools를 사용하지 않는 이유는 무엇입니까?

samtools merge merged.bam *.bam 

편집 : 일반적으로

for folder in my_bam_folders/*; do 
    samtools merge $folder.bam $folder/*.bam 
done 

, samtools merge는 다음과 같이 주어진 디렉토리의 모든 bam 파일을 병합 할 수 있습니다 samtools이 옵션을 선택하지 않으면 당신은 피카을 사용할 필요가 무엇인가에 대한 것 이거?

for folder in my_bam_folders/*; do 
    bamlist=$(for f in $folder/*.bam; do echo -n "I=$f " ; done) 
    java -jar picard.jar MergeSamFiles $bamlist O=$folder.bam 
done 
+0

난에 대해 뭔가가 병합 samtools에 오류가있어이 오류 –

+0

이없는 내가 만드는 자동화해야하는 옵션을 추가처럼 ReadGroup 및 피카르 보인다 추가 I = 당신을 위해 목록'수'그 그게 효과가 있는지 알 겠어? –

+0

감사합니다, –

관련 문제