2015년 11월 25일 수요일

FASTQ 파일 처리 도구의 단편화?

다양성이라는 것은 생태계에서 보편적으로 관찰되는 현상이고 늘 지켜져야하는 미덕이기도 하다. 표준화 또는 산업화라는 틀에서 보면 평균에서 벗어나는 존재들이 늘 성가실 수도 있다. 요즘 리눅스나 안드로이드의 단편화라는 개념이 종종 보인다. 각자 나름대로의 철학과 하드웨어에 맞춘 최적화(특히 휴대폰의 경우)를 거쳐 리눅스 기반의 OS가 조금씩 변해가는데, 이러한 현실은 개발자에게는 골칫거리인 모양이다.

FASTQ 파일을 다루는 엇비슷한 도구가 너무 많아지는 현실에 대해서 불평을 해야할까? GitHub에는 FASTQ 파일의 처리에 쓰이는 다양한 소프트웨어 프로젝트가 꽤 많이 존재한다. 간단하게는 awk 스크립트 몇 줄로 해결이 되겠지만, 좀 더 수준이 높은 조작을 하려면 이것만으로는 부족하다. 어떤 것은 논문을 통해 발표되기도 하지만, SeqAnswers를 아예 프로그램 소개의 공간으로 사용하는 개발자도 있다.

전에는 FASTQ file 2개로 이루어진 paired end sequencing 결과물을 하나의 interleaved file로 전환하려면 Velvet에 포함된 shuffleSequence_fastq.pl을 사용했었는데, 이제는 다른 프로그램 패키지에 들어있는 스크립트를 쓰는 것이 더 편하다.

내가 즐겨쓰는 도구 위주로 정리를 해 보겠다.

일반적인 QC

  1. FastQC 전체 read 수는 나오지만 bp는 출력되지 않는다. 트림/필터를 거쳐서 길이가 균일하지 않은 파일에 대해서는 좀 불편하다. 
  2. PRINSEQ 평소에 잘 쓰지는 않는다.

Extended QC, trimming, filtering 등

  1. FASTX-Toolkit 꽤 역사가 깊은 소프트웨어.
  2. SolexaQA quality에 의한 트리밍을 거친 뒤 최소 길이 조건을 충족하는 read의 pair를 다시 수립할 때 종종 사용하던 소프트웨어.
  3. Trimmomatic 어댑터 서열 제거 용도로 요즘 즐겨쓴다. 가끔 cutadapt를 쓰기도 했다.

일반적인 조작

  1. seqtk 백문이 불여일견. 웹사이트에 나온 사용례를 참조할 것.

전처리 종합 도구

  1. khmer 요즘 집중적으로탐구하는 중이다. Metagenomic read처럼 coverage가 불균일하고 분량이 많은 일루미나 데이터를 위한 전처리를 목적으로 한다(digital normalization 및 abundance 기반의 필터링). Read statistics 계산, file pair <-> interleaved file이 전환, paired read의 추출 등 일반 용도의 유틸리티가 포함되어있다.
  2. BBMap 설치만 해 두고 아직 쓰지는 않았다.

댓글 없음: