2016년 1월 27일 수요일

Trimmomatic의 출력 파일명 설정

일루미나 시퀀싱 데이터로부터 어댑터 서열 제거와 quality trimming을 하기 위한 도구로서 현재까지 가장 유용한 도구는 trimmomatic이 아닐까 한다. 특히 멀티쓰레딩 작업이 가능하고 paired file을 매우 유용하게 다루어준다는 것이 장점이다. 출력파일 이름에 .gz 또는 bz2 등의 확장자를 지정하면 알아서 압축도 해 준다.

Trimmomatic V0.32 manual

Single end(SE) mode에서는 출력 파일(단 하나)의 이름을 명령행에서 인수로 지정하면 된다. 그러나 pair end(PE) mode에서는 양상이 조금 복잡하다. 위 링크에 소개된 매뉴얼 파일을 보고 이를 쉽게 정리해 보고자 한다.  우선 기억할 것은 PE mode로 실행하려면 2개의 파일을 반드시 공급해야만 한다. 즉 interleaved file은 안된다는 것이다.

2개의 입력 파일을 명시적으로 지정하는 것 외에 -basein flag을 써도 된다. 그저 -basein FirstFile이라고만 하면 파일명에 공통적으로 존재하는 패턴을 찾아서 두번째 파일을 알아서 결정한다. FirstFile_R1_001.fq.gz, FirstFIle.f.fastq, FirstFile.1.sequence.txt 등 어떤 형태든지 알아서 패턴을 파악하여 해결한다.

출력 파일은 어떠할까? 한 쌍의 입력 파일에 대해서 paired forward, unpaired forward, paired reverse, 그리고 unpaired reverse의 총 4개 출력 파일이 만들어진다. 명령행에서 인수의 형태로 4개의 파일 이름을 명시적으로 지정해도 되고, 입력 파일과 마찬가지로 -baseout flag을 써도 된다. 만약 -baseout mySamplesFiltered.fq.gz라고 했다면 다음의 4개 파일이 만들어진다. 길게 설명을 달지 않아도 각각이 무엇을 의미하는지는 쉽게 파악할 수 있다.

  • mySamplesFiltered_1P.fq.gz
  • mySamplesFiltered_1U.fq.gz
  • mySamplesFiltered_2P.fq.gz
  • mySamplesFiltered_2U.fq.gz
최근 두어달 동안 paired file을 다루는 분석을 워낙 많이 하다보니 이를 interleaved file로 바꾸는 일을 밥먹듯이 하였다. Interleaved file을 만드는 유틸리티는 인터넷에서 조금만 검색하면 쉽게 찾을 수 있다. Velvet 패키지에 포함된 shuffleSequences_fast* 부류의 스크립트를 써도 되고, khmer 패키지의 interleave-reads.py 파이썬 스크립트를 써도 된다. 혹은 sga preprocess --pe-mode=1 (-p 1)을 이용하면 interleaved file을 만드는 동시에 추가적인 트리밍 작업이 가능하다. 
sga preprocess --pe-mode=1 --permute-ambiguous -q 35 -f 25 -m 40 -o preprocessed.fq File_1.fq File_2.fq

댓글 없음: