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).

Rosegarden에서 녹음한 미디 파일(FluidSynth)

iCON 키보드로 실시간 입력을 하여 녹음을 한 뒤 인터넷에 공개할 수준은 아직 전혀 되지 못한다. 오늘의 목표는 리눅스 환경의 Rosegarden에서 미디 파일을 재생하면서 오디오 트랙으로 녹음을 하고, 이를 mp3로 전환하는 것이었다. 펌웨어를 V1.06으로 업그레이드한 iCON 5Nano는 Rosegarden에서 FluidSynth를 잘 울려 주었다. 별도의 USB audio interface는 쓰지 않고 컴퓨터의 내장 사운드 카드를 그대로 이용하였다.

QJackCtl에서 입출력 연결을 제대로 해야 오디오 트랙에 제대로 녹음이 된다. 아래는 기본 상태로서 이대로 녹음을 하면 노트북 컴퓨터의 내장 마이크로 들어오는 신호가 녹음이 되어 버린다. 드뷔시의 피아노 곡 미디 파일을 오픈하여 사용하고 있다.


아래 스크린샷에서 보인 것처럼 fluidsynth의 출력을 rosegarden의 녹음 입력으로 보내야 한다.


오디오 녹음을 위한 트랙을 새로 만들고 arming을 한뒤 'T'를 입력하여 Transpose 창을 열고 빨간 버튼을 눌러 녹음을 개시한다. 메트로놈 사운드는 꺼 버렸다. 녹음 시 모니터 출력으로는 메트로놈이 들리지만 녹음용 트랙으로는 들어가지 않게 하는 방법이 당연히 있을 것이다. 아래 이미지는 녹음 중의 모습이다.


녹음이 정상적으로 끝나면 오디오 트랙에 파형이 보인다.


녹음 결과물은 .wav로 기록된다. 이를 audacity에서 mp3로 전환하였다. 그 결과물을 아래에 링크하였다.



Audacity에서 아무런 수정을 하지 않고 그대로 전환을 한 것이라서 듣기에 어떠한지는 나도 잘 모르겠다.

리눅스에서 Rosegarden을 쓰는 방법은 Demonic Sweaters(Justin Wierbonski LinkedIn)의 유튜브 동영상을 많이 참조하였다. 아직까지 매우 기본적인 기능만을 쓰는 중이다. 아래에 소개한 동영상 중에서 마지막 세 개는 리눅스 컴퓨터에서 음악 작업을 하는데 매우 중요한 개념을 잘 설명하고 있다. 노트북 컴퓨터의 내장 스피커로 모니터링을 하다가 헤드폰을 연결하면 소리가 즉시 헤드폰으로 전환되어 나오지 않는 사소한 문제는 아직 해결하지 못했다.






다음 목표는 USB audio interface를 Rosegarden에서 쓰는 것이다. 노트북 컴퓨터의 USB 포트가 두 개뿐이라서 키보드(타자를 위한 키보드가 아니라 MIDI keyboard controller)와 마우스까지 연결하려면 아마도 USB 허브를 써야 될 것이다. 유전원 USB 허브가 필요할까? 아직 잘 모르겠다. USB audio interface는 Behringer UCA200일 수도 있고, 사운드캔버스 SC-D70이 될 수도 있다. NanoPiano의 소리를 녹음하려면 오디오 인터페이스를 반드시 써야만 한다.

장난감의 범위가 점점 넓어진다!

2020년 7월 5일 일요일

iCON iKEYBOARD 5NANO를 구입하다


낙원상가 3층에 자리잡은 (주)엠앤에스. 306이라는 호실 표시가 선명하다. 
우연히 구하게 된 사운드캔버스 SC-D70와 나노피아노의 화려한 부활을 위해 마스터 키보드를 구입하게 되었다. 요즘은 마스터 키보드에서 5핀 DIN 커넥터가 점점 사라지고 USB로 컴퓨터에 연결하여 DAW 소프트웨어를 구동하게 만드는 추세라서 구식 사운드 모듈에 MIDI 케이블을 연결하여 쓸 키보드를 낮은 가격대에서는 구하기가 쉽지는 않다.

토요일 오후, 낙원악기상가 3층 306호에 위치한 (주)엠앤에스를 찾아서 Korg의 microKEY와 iCON의 iKEYBOARD 5NANO를 놓고 휴대성과 편의성 사이에서 고민하다가 결국 iCON의 것을 골랐다. USB 연결만 지원되는 키보드는 아이패드와 유전원 USB 허브, 그리고 USB MIDI 케이블을 이용하면 어떻게 해서든 구식 사운드 모듈을 연결할 수 있을 것 같았으나 아무래도 사용이 번거로울 것 같았다. iCON 5NANO는 디자인도 깔끔하고 생각보다 그렇게 무겁지 않았다(3.87 kg). 크기는 806 x 189 x 72 mm이다. 파견 근무지 숙소의 작은 책상 위에 가까스로 올라간다. 키 터치 느낌은 그런대로 합격점이다. 

출처: ICON Pro Audio. 현재 iCON 제품의 공식 수입처는 HDC영창이다. 

MIDI 케이블로 외장 모듈을 연결하면 아주 잘 작동한다. 그러나 컴퓨터에 연결하여 쓰는 것은 아직 익숙하지가 않다. 상자에는 BITWIG 8 track 제품이 번들되었다는 스티커가 붙어 있는데, 동봉된 CD-ROM과 인쇄물을 아무리 뒤져봐도 시리얼 번호를 찾을 수가 없어서 설치를 제대로 할 수 없었다. 이게 아니더라도 무료로 풀린 Cakewalk이 있으니 별 문제는 없을 것이다. 설정 변경 프로그램인 iMap을 버전 1.17로 바꾸고 펌웨어도 1.06베타로 업그레이드를 하였다. iMap을 업그레이드하니 펌웨어를 미리 다운로드하지 않아도 되는 것 같다. 펌웨어 업그레이드와 관련하여 자잘한 일들이 있었지만 일일이 블로그에 기록할 수준의 것은 아니다.


ASIO4ALL을 설치하고 일단 Cakewalk에서 이 키보드를 건드려서 Cakewalk TTS-1의 소리가 잘 나는 것을 확인하였다. 리눅스에서는 펌웨어 버전에 따라서 동작 상황이 조금 다른 것 같다. 리눅스에서 Rosegarden을 이용하여 녹음 작업이 되게 만드는 것이 당장의 목표이다.

대충 마련한 방구석 스튜디오.


2020년 7월 1일 수요일

Long read용 de novo assembler는 왜 이렇게 많은지...

일루미나 데이터의 조립에는 전적으로 CLC Genomics Workbench에 의존하면서 가끔 SPAdes를 사용하는데 반하여 long read sequencing data의 조립용 도구는 종류가 더 많아서 선택이 어렵다. 현재까지는 Canu 2.0을 신뢰하는 편이고 UniCycler도 비슷한 정도로 사용한다. UniCycler는 hybrid assembler이지만, long read만 제공하여 조립을 할 수도 있다. 내부적으로 돌아가는 것은 miniasm/racon이다. UniCycler를 miniasm/racon용 wrapper로 사용하려는 생각을 며칠 전부터 하고 있다.

F1000Research에 UniCycler의 개발자인 Ryan R. Wick이 여러 long read assembler를 prokaryote genome 조립용으로 벤치마킹한 논문을 실었다. 여기에서는 무려 일곱 가지의 de novo assembler -  Canu, Flye, Miniasm/Minipolish, NECAT, Raven, Redbean and Shasta - 를 비교하였다.

Benchmarking of long-read assemblers for prokaryote whole genome sequencing [version 2; peer review: 4 approved]

F1000Research는 일종의 개방형 저널로서 투고와 리뷰 과정이 전부 공개되는 것으로 알고 있다. 이러한 저널에 IF를 붙이는 것이 옳은지는 모르겠으나 2019년도 IF는 2.64이다. 연구뿐만이 아니라 의견이나 네거티브 데이터에 관한 논문도 받는다니 여러모로 혁신적인 학술지라 할 수 있겠다.

Ryan R. Wick의 이번 논문에 의하면, Flye와 Miniasm/Minipolish에 가장 높은 점수를 주었다고 한다. 하지만 조립과 관련된 모든 수치를 만족시키는 최고의 assembler는 없었다고 한다. 상황이 이러하니 canu만 편식할 것이 아니라 flye에도 관심을 갖지 아니할 수가 없다. Flye라는 assembler가 나왔다는 것을 작년쯤 알게 되었을 때에는 '무슨 이름이 이렇지?'하고 그냥 지나갔는데, 논문은 무려 Nature Biotechnology(2019)에 실렸다! 사람이란 참 간사해서 논문 정보에 눈히 확 뜨이면서 비로소 관심을 더 갖게 되었다... 논문의 저자 Mikhail Kolmogorov, Jeffrey Yuan, Yu Lin & Pavel A. Pevzner 중 교신저자는 바로 그 유명한 Pevzner였다. 위키피디아를 찾아보니 Pevzner의 지도교수는 Michael Waterman이었다. 유명한 사람은 다 나오는구나...

Assembly of long, error-prone reads using repeat graphs (Flye 논문)

Conda 환경에 설치를 해 놓은 뒤 테스트할 궁리를 하는 중이다. 옵션 중에서 특히 흥미를 끄는 것은 --plasmids와 --asm-coverage-option이다. 거대 유전체를 조립할 때에는 메모리 사용량을 줄이기 위하여 longest read의 subset을 선택하여 사용하는 것이 좋은데, 이때 쓰이는 것이 --asm-coverage-option이라 한다. 30x면 good initial contig를 만들 수 있고, 보통 40x 정도면 'good disjointig(unitig와 비슷한 용어인가?)'를 만드는데 충분하다고 한다. 하지만 최종 단계에서는 모든 read가 전부 다 쓰인다고 한다. 대단히 현명하다.

어떤 결과가 나올지 당장 테스트를 해 보고 싶은데 지금은 6개 샘플의 UniCycler(long reads only) 조립 중이라서 몇 시간은 더 기다려야 한다.