2020년 7월 6일 월요일

Circlator fixstart 작업의 실수 - 모든 contig를 대상으로 fixstart를 해서는 안된다!

Circlator all 명령으로 circlator의 모든 과정을 일괄적으로 실시하는 것이 아니라 개별 task를 실행할 때가 있다. 특히 fixstart를 할 일이 많다. 요즘 nanopore에서 시퀀싱한 long read와 같은 샘플에서 유래한 일루미나 read를 같이 다루면서 circlator를 다시금 열심히 사용하고 있는데, contig가 여러 개인 경우 circlator fixstart를 함부로 하면 안된다는 평범한 사실을 이제 깨달았다.

생각해 보라. 원형 구조임이 확인되지 않은 contig에 대한 fixstart란 무슨 소용이 있단 말인가? 이를 대비하여 fixstart를 건너뛸 contig의 목록을 미리 만들어 둔 다음, cicrlator fixstart --ignore FILENMAE으로 처리해야 하는 것이었다.

너무나 당연한 것을 이제 깨달았다. 혹시 그동안 NCBI에 이미 등록하여 공개한 세균 유전체 서열 중에서 이런 실수를 한 것이 있지 않았을까?

Flye assembler가 만들어 내는 assembly_info.txt 파일을 열어보면 circular 구조 여부가 이미 포함되어 있다. Canu assembler는 circular 구조임을 제안했다 하여도 circularization까지는 해 놓지 않는다. 그러나 flye는 circularization을 해 놓은 상태이다. 따라서 circ. = N으로 표시된 contig를 circlator fixstart를 할 때 제외하도록 만들면 된다. 제외한 contig의 목록 파일은 awk 명령어를 쓰면 assembly_info.txt에서 간단히 만들 수 있다.

다음은 flye의 GitHub 웹사이트에서 인용한 것이다(Question about circular sequence output).
The sequence should be circularized already. Some people reported that Flye might delete a few (~10) bases at the contig's breakpoint. We are planning to fix this in the future. See the Ryan Wick's evaluation for the details (https://github.com/rrwick/Long-read-assembler-comparison).

댓글 없음: