2017년 4월 24일 월요일

맥북 프로를 위한 첫번째 액세서리, Thunderbolt to Gigabit Ethernet Adapter 구입




맥의 정품 액세서리는 왜 이렇게 비싸단 말인가. 출장을 마치고 저녁에 들른 판교 현대백화점에서 정가를 다 주고 구입하였다. 가격은 무려 38,000원! 이러한 물건이 있다는 것을 알기 전까지는 맥북 프로로 유선 인터넷을 전혀 연결하지 못한다고 생각했었다. Wi-Fi와 이더넷이 같이 존재할 때 우선순위를 미리 결정하는 요령은 '맥에서 WI-FI와 이더넷을 똑소리나게 사용하는 방법 두 가지'에 잘 설명되어 있다. 지금은 VirtualBox에서 윈도우 10을 설치하는 중이다. 윈도우 계열을 전혀 설치하지 않을 생각도 해 보았지만 비상시를 미리 대비해 두기로 하였다.  Parallels Desktop은 무료 버전(lite)에서는 리눅스 이외의 것을 설치하지 못한다.

어제는 HDMI 커넥터를 접속하니 삼성 32D350T 모니터가 정상적인 해상도로 나오는 것을 확인하였다.


2017년 4월 22일 토요일

무엇이 우리의 즐거운 컴퓨터 활용을 방해하는가?

우연한 기회에 맥북 프로를 접하게 되면서 어떻게 해야 이를 효율적으로 활용할지 그 방안을 마련하기 위해 인터넷으로 정말 많은 글들을 찾아서 읽었다. 맥을 업무용 주력 기기로 사용하는 동료가 직접 찾아와서 몇 가지의 유용한 기법과 사이트를 알려준 것도 큰 도움이 되었다. Mac이라는 새로운 환경에 접하는 어려움은 다만 사용 기술의 부족 때문만은 아니다. 이를 둘러싼 여러 편견과 불편한 시선이 분명히 존재한다. 나는 평소에 Mac을 쓰는 사람에 대해서 특별한 생각을 갖고 있지 않았다. 

"흠, 멋진 컴퓨터군."

이게 내가 느끼는 감정의 전부였다. 언젠가 이를 꼭 써보리라고 한번도 생각한 적은 없었다. 과거에는 Mac이 디자인, 출판, 음악 등에서 매우 강점을 갖는 기기였고 지금도 해당 분야에서는 꽤 경쟁력을 갖고 있다고 들었다. 하지만 이는 나와는 별로 상관이 없는 분야이다. 적어도 '필요해서 쓴다(써야 한다)'라는 논리는 나와 맞지 않는다. 취향에 따라 선택하여 쓸 수 있는 도구일 뿐이다. 그런데 인터넷을 뒤지다 보니 Mac이 정말 필요한가 아닌가에 대한 논쟁을 꽤 많이 보게 되었다. 뿐만 아니라 카페에서 웹서핑이나 하려고 Mac을 쓰는 것은 허세라는 글까지! 만약 macOS가 익숙하지 않아서 Boot Camp를 통해 설치한 Windows에 전적으로 의지한다면 더욱 진정한 허세라는 것이다. 가격대가 꽤 높고 익숙해지려면 약간의 노력이 필요하다는 점이 Mac을 일종의 자랑거리로 생각하게 만드는 것 같다. 즉, 아무나 쓰는 물건이 아니라는 자긍심 정도?

그런 것은 아무래도 좋다. Windows와 너무나 다른 사용법은 처음에는 어렵지만 계속 쓰다 보면 언젠가는 익숙해지기 마련이다. 더욱 근본적인 문제는 일반인이 다양한 종류의 컴퓨터(OS, 소프트웨어 포함)를  쓰는데 어려움을 겪는 우리의 환경에 있다고 본다. Windows가 따로 설치되지 않은 Mac은 거의 없을 것이라는 의견에 나도 동의한다. 혹은 별도 작업을 위한 Windows 컴퓨터가 하나쯤은 여분으로 있을 것이다. 바로 공공기관/금융기관 등의 웹사이트 때문이다. 점차 나아지고는 있으나 과도한 ActiveX로 범벅이 된 각종 웹사이트, 그리고 공인인증서라는 해괴한 인증 방식이 Windows 이외의 플랫폼을 쓰고 싶어하는 소수(!) 사용자에게 어려움을 안겨준다. 그나마 다행인 것은 금융쪽 사이트는 휴대폰을 이용하여 대부분 해결이 된다는 것.

그런데 여기서 역설적인 현실이 하나 드러난다. 우리는 개방화라는 것이 궁극적으로 추구해야 하는 절대 선으로 생각하고 있다. 그러나 아이폰-아이패드-맥으로 연결되는 애플의 제품 및 서비스가 어딘가 모르게 멋져 보이고 안정적으로 구동되는 것 같고 해킹이나 바이러스에 취약하지 않은 이유가 어쩌면 애플의 폐쇄적인 생태계에 기인하는 것일 수도 있다. Windows가 돌아가는 하드웨어는 얼마나 많은가? 그에 비하면 macOS는 오로지 애플의 제품에서만 돌아간다. 그러니 당연히 시스템 최적화가 상대적으로 용이하고 오류 발생이나 바이러스가 적을 수밖에 없을 것이다. 이러한 폐쇄적 환경에서 기인한 장점과 애플 제품에 대한 고객의 충성도와 만족감이 오묘하게 결합하여 하나의 사회적 현상이 되고 있다. 정말 흥미로운 일이 아닐 수 없다.

익숙해짐으로 인하여 해결되지 않는 두번째의 문제를 이야기해 보자. 바로 생활 밀착형 소프트웨어인 문서작성과 그 주변부의 것들에 관한 것이다. 대한민국 정부는 아직도 모든 공문서를 HWP 형식으로 제공한다. 각종 신청서(특히 연구개발에 관한 것) 역시 HWP가 기본이다. 과거 국산 소프트웨어 개발사를 지원하기 위한 나름대로의 철학에서 이러한 정책이 비롯되었겠지만, 다양한 문서작성기가 존재하고 공개형 다큐멘트 포맷도 존재하는 마당에 아직도 HWP를 고집하는 것은 바람직하지 못하다.

특정 소프트웨어를 쓰게 강제하는 것도 문제지만, '갑'이 요구하는 획일화된 문서 스타일이 더욱 큰 문제라고 생각한다. 단적인 예로서 과도한 의 사용을 지적하고 싶다. 표라는 것은 간결함에 그 생명이 있다. 그러나 표 작성에는 많은 노력이 들기에 꼭 필요한 곳에만 작성해야 한다고 생각한다. 쪽 전체가 표라면? 심지어 여러 쪽에 걸친 문서 전체가 표라면 그건 분명히 잘못된 것이다. 하지만 정부 기관에서 제공하거나 혹은 제출해야 하는 문서의 양식을 보라. 전부가 표 일색이다. 지금 통용되는 국가연구개발사업의 신청서 및 계획서는 표지를 비롯하여 예산안 등이 전부 표로 되어있으며, 심지어 모든 절의 내용을 각각 한 cell짜리 표에 집어넣는 일도 부지기수이다. 연차실적계획서는 더하다, 문서 전체가 표라고 해도 과언이 아니다. 심지어 표를 쓸 일이 전혀 없는 스타일의 문서임에도 불구하고 각각의 쪽 전체를 하나의 네모로 둘러쳐서 글자들을 가두어 놓는다. 혹자는 이것을 가리켜서 '높은 분들이 보기 편하게' 만들기 위함이라고 하였다. 설상가상으로 아무리 긴 문서라 해도 한두쪽의 요약서로 축약할 수 있다는 파워포인트적 사고방식이 우리의 글 쓰는 방식을 형식이라는 틀에 가두고 말았다. 보고서란 윗분들에게 '올리'는 것이니 내용보다 외양을 더 중요시하는 것이 아니겠는가?

표 형식이 가장 필요한 문서는 무엇일까? 손글씨로 빈 칸을 채워야 하는 - 이미 종이에 인쇄된 - 빈 양식의 문서 아닐까? 

정리를 하자면 우리의 즐거운 컴퓨터 생활을 방해하는 요소는 지식과 기술의 발전으로 전부 해결 가능한 것이 아니다. 의식과 문화가 바뀌지 않으면 궁극적인 해결이 될 수 없다, 이것은 컴퓨터 생활뿐만 아니라 우리의 모든 생활에 걸쳐있는 것이다. 우리의 의식 밑바닥으로부터 정부 조직 끝까지 새로운 디자인이 필요한 시점이다.

2017년 4월 21일 금요일

맥북 프로 초기화 및 macOS Sierra 설치

애플 제품은 Apple ID라는 것을 통하여 관리가 이루어진다. 따라서 중고품 거래를 할 때에는 이를 깨끗이 정리하고 OS를 재설치하는 것이 필수이다. 어찌어찌하여 이전 사용자의 계정으로 macOS 새 버전인 Sierra를 다운받아 재설치를 하였는데 앱스토어를 연결하면 계속 이전 사용자의 Apple ID가 나온다. 아하, HDD를 싹 밀고 설치를 했어야 하는데 그러지를 않았다. 다시 처음부터 시작하였다.

배터리 완충 상태에서 이렇게 두 번의 OS 설치 작업을 하였다. 마침 충전기가 곁에 없어서 전원이 부족하여 중간에 꺼질까봐 걱정을 많이 하였다. HDD의 포맷을 제외하면 두번째의 OS 설치 작업은 더 빨리 끝났다. 초기 세팅 작업을 하면서 나의 Apple ID를 입력할 수 있었다. 또 어쩌다보니 예전 아이패드를 쓰면서 만들었던 것과는 다른 새로운 ID를 만들고 말았지만.

초기화 직후에는 한/영 전환키가 너무나 생소한 키 조합이라서 원래 많이들 쓰는  control+space 로 바꾸었다. 또 트랙패드에서 클릭 동작을 하려면 '꾹' 소리가 나도록 세게 눌러야만 한다. 에전처럼 톡 쳐서 클릭 동작이 되게 하려면 또 설정을 바꾸어야 한다. 기본 설정 방법을 인터넷으로 찾는 과정에서 트랙패드의 상세한 사용법을 익히게 되었다. 마치 스마트폰 액정 화면을 다루듯, 몇 개의 손가락으로 스크롤이나 화면 전환 등을 할 수 있다는 것이 매우 독특하였다. 매우 직관적인 작동법이라고 생각한다. 마우스에도 휠이 없어서 스크롤을 어떻게 해야 하는지 고개를 갸우뚱거리고 있었는데 겉으로 드러나는 것 없이도 손가락 동작으로 다 해결이 되는 것이었다.

아직 가야 할 길이 많다. 이 글을 작성하는 오늘 아침 기준으로 말하자면 나는 "맥북 프로 사용한지 삼일째 되는 사람"이다. 컴퓨터 교실에 막 다니기 시작한 어르신과 같은 들뜬 기분이랄까? 오늘은 맥을 익숙하게 쓰는 동료가 잠시 와서 몇가지를 가르쳐 준다고 하였다.

모바일 기기와 컴퓨터를 이용하여 일정 관리를 하고 연락처/스케쥴 동기화를 열심히 하던 것이 아마 2012-2014년 무렵이었던 것으로 기억한다. 당시 아이패를 쓰게 되면서 가능했던 일이다. 꽤 비싼 돈을 주고 아이패드 커버를 겸하는 블루투스 키보드도 구입하였고, 여러 기기 간의 동기화를 이루는 방법을 알아내느라 애를 많이 썼었다. 호기심으로 구입한 옴니아 팝(윈도우 모바일)도 이런 공부를 위한 좋은 대상이었다.

그런데 이러한 노력은 그렇게 오래 가질 못했다. 가장 큰 원인은 공공기관에 해당하는 직장에서 외부 클라우드 서비스의 접속을 하지 못하도록 정책이 바뀐 것에 있다. 이에 따라서 드롭박스/에버노트/구글 드라이브를 쓰지 못하게 되었고, 다이어리에 직접 손으로 기록을 남기는 것에 익숙해지고 말았다.

모바일 환경의 주소록을 업무용 환경과 더 이상 동기화하지 않게 된 것을 다소 엉뚱한 곳에서 핑계를 찾아면 바로 카카오톡때문이다. 주소록에 있다는 이유만으로 친구로 추천되어 뜨는 것이 싫어서 휴대폰에 새로운 연락처를 받아서 저장할 때에는 이름 앞에 '#'를 삽입하였는데, 이것이 업무용 주소록에 동기화되면서 이메일의 받는 사람 이름 앞에도 '#'이 들어가는 것이 아닌가. 그래서 결국은 모바일 기기와 업무용 메일 프로그램의 주소록을 더 이상 동기화하지 않게 된 것이다.

컴퓨터를 바꾼다는 것은 업무와 생활에 매우 긍정적인 자극을 주는 사건이다. 2017년 4월, 사무실 책상앞 환경이 정말 혁신적으로 바뀌었다. (초)대형 모니터(삼성 S32D850)와 SSD를 장착한 고성능 데스크탑이 주업무용으로 자리를 차지하고, 지난 5년 동안 사용했던 Xeon E5520 + SuperMicro X8SAX 메인보드 조합의 업무용 컴퓨터는 우분투 데스크탑을 설치하여 프로그램 테스트용으로 2선으로 물러났으며, 맥북 프로 2013년 버전과 A1407 썬더볼트 모니터가 생겼다. 업무의 능률 향상과 개인적 즐거움의 충족이라는 두 마리 토끼를 다 잡을 수 있을 것으로 기대한다.

2017년 4월 19일 수요일

맥북 프로에 한 걸음 더 다가가기

이 글은 맥북 프로에서 작성하는 중이다.  [윈도우즈]와 리눅스(CentOS)밖에 모르던 내가 제3의 운영체제를 맛보려 한다. 어제는 업무용 데스크탑을 새로 장만하면서 지난 5년간 쓰던 [윈도우즈] 컴퓨터를 싹 정리하고 Ubuntu Desktop을 설치하였다. 가끔 Ubuntu 환경이 필요할 때 가상머신으로 모든 것을 해결하기에는 부족하기 때문이다.

Windows의 공식적인 한글 표기는 [윈도]라고는 하나, 이렇게 쓰는 것은 나에겐 매우 어색하다. 차라리 Windows라고 원어료 표기하자.

맥/맥북 계열에서는  + Space key를 누르는 것으로 한/영 전환이 이루어진다. 그나마 이것이라도 알게 된 것은, 몇 년 동안 아이패드를 쓰면서 블루투스 키보드(로지텍 제품)를 조작한 경험이 있기 때문이다.

맥/맥북은 나에게 너무나 새로운 세계이다. 다음과 같은 무수한 질문에 답을 해 나가야 한다. 기울임체로 작성한 답은 이 블로그를 쓴 뒤 나중에 추가한 것이다. 

  1. 키보드와 트랙패드, 그리고 블루투스 키보드와 마우스의 동작은 다른 OS와 어떻게 다른가? - 달라도 아주 많이 다르다. 특히 트랙패드의 사용법은 꽤 복잡하지만 다양한 일을 할 수 있으므로 따로 공부를 할 필요가 있다. 여기를 참조하라.
  2. 이 맥북 프로에 설치된 OS의 버전은 무엇인가? - 화면 왼쪽 위의 ->About This Mac을 클릭한다.
  3. 화면캡쳐 및 편집, 텍스트 편집 등 매우 기본적인 유틸리티의 이름과 아이콘은 무엇인가? - 차차 알아 나가도록 하자
  4. 아이패드 시절 사용하던 Apple ID를 어떻게 되살릴 것인가? 이 ID는 왜 필요한가? - 앱스토어를 쓰려면 Apple ID가 있어야 한다. 
  5. 사용자 계정의 홈 디렉토리 이름을 바꾸려면? - 불가능한 것은 아니지만 웬만하면 하지 않는 것이 좋다. 차라리 원하는 계정을 새로 만들어서 파일을 이동하는 것이 나을 것이다.
  6. 맥/맥북의 OS는 사실상 리눅스의 한 종류라고 하였다. 그러면 gcc등의 개발 환경을 갖추고 터미널 창에서 작업을 할 수 있다는 뜻인가? - 그렇다. 그러나 앱스토에서 Xcode를 설치해야 한다.
  7. 리눅스 서버에 접속하려면 어떻게 해야 하는가?  - ssh를 실행하면 된다. 단, X application을 실행하려면 Xquartz를 설치하라.
  8. 우분투를 설치하여 사용할 경우 썬더볼트 모니터가 작동할 것인가? - 아직 확인은 해 보지 않았지만 안될 것으로 보인다.
  9. 맥북 안에서 다른 OS를 구동하는 Parallel Desktop은 도대체 어떻게 쓰는 것인가? - 맥에서 기본으로 제공하는 Boot Camp는 듀얼 부팅을 위한 도구이다. Parallel Desktop은 VMware나 VirtualBox처럼 호스트 OS가 돌아가는 상태에서 다른 OS를 구동하는 가상머신 앱이다. 안타깝게도 Parallel Desktop 무료판은 리눅스 계열만을 설치할 수 있고, Windows를 돌리려면 일년에 육십 몇 달러를 내야 한다.
맥북 프로와 관련한 글을 두번째 쓰는 것을 기념하기 위해 위 질문에서 하나만 답을 해 보자. 이 맥북 프로에 설치된 OS는? 화면 왼쪽 위 사과-> About This Mac을 클릭하면 시스템 정보가 뜬다. 이 화면을 캡쳐하여 이 블로그에 올리고 싶은데 캡쳐 방법을 모른다. 구글을 검색하여 겨우 방법을 알아냈다. 도움이 된 사이트를 여기에 소개하기 위해  URL을 복사하려고 했더니 무슨 키를 써야 하는지도 모르겠고 싸파리에 현재 보여지는 웹사이트의 주소가 어디에 나타나는지를 모르겠다. 일단 캡쳐한 이미지부터 올려보자.


SSD 정보는 System Report... 버튼을 눌러야 나온다. 바로 곁의 Software Update...를 클릭하니 몇 개 앱의 업데이트 정보와 더불어 macOS Sierra 정보가 나타났다. 오늘은 업데이트를 처음 시도하는 것으로 맥북 나들이를 이만 마치고자 한다. 

PacBio control sequence를 genome assembly로 NCBI에 등록한 사람은 전부 한국인?

조금 전에 PacBio의 internal control complex sequence를 de novo assembly에 남겨두는 실수라는 글을 포스팅하였다. 우연의 일치로 control sequence가 생명체의 유전체 서열에 고유하게 존재하는 염기서열과 비슷할 가능성도 있다. 그런데 1 kb 이상의 영역이 99~100%의 identity로 매치한다면, 그리고 이들 생물종 사이에 아무런 상관관계가 없다면, 시퀀싱 반응 점검용으로 투입한 인공 서열을 최종 단계에서 제거하지 못한 것으로 보는 것이 더 타당할 것이다.

BLAST 검색에서 다음의 3개는 거의 확실한 매치를 보인다.

  • Weissella cibaria strain CMU plasmid unnamed2, complete sequence CP013938.1
  • Acinetobacter baumannii strain JBA13 plasmid pJBA13_2, complete sequence CP020583.1
  • Raoultella ornithinolytica strain MG, complete genome CP017802.1
앞의 두 개는 plasmid sequence라고 보고한 것이다. 아마도 짧은 contig가 남으니 이를 plasmid라고 여긴 모양이다. 세번째 것은 complete genome sequence로 보고한 것의 내부에서 약 940 bp 단위로 여러 차례 존재하는 것으로 되어있다.


안타까운 것은 이들 서열의 등록자가 전부 한국인 연구자라는 것이다. 일루미나 시퀀싱용 콘트롤 DNA인 PhiX174의 서열이 그대로 GenBank에 등록되는 문제에 대해서는 이미 잘 알려져 있다. Genome sequence에 이것이 그대로 남아있는 것을 몇 가지 기생충 유전체 서열에서 찾은 일이 있는데... 이것 역시 제출자는 한국인이었던 것으로 기억한다.

이러한 나의 해석이 과도한 것일 수도 있다. 정말 그랬으면 좋겠다. 한국인 연구자가 깨끗하고 정확한 유전체 정보를 제공하는데 더 많이 기여했으면 한다. 

PacBio의 internal control complex sequence를 de novo assembly에 남겨두는 실수

PacBio의 DNA internal control complex (P6) insert라는 것은 2 kb 길이의 template를 DNA polymerase P6에 붙인 것으로, spike-in control로서 시퀀싱 반응에 첨가하는 용도로 쓰인다. P6-C4 chemistry로 읽은 PacBio long read sequencing 결과를 SMRT analysis에서 검토하다가, 문득 이 control의 서열은 어떻게 되는지, 그리고 그 서열이 raw data에는 어떻게 존재하며 최종 assembly에는 확실히 제거가 되는지 궁금해졌다.

[SEQanswere] DNA Internal Control Complex (P6)

SEQanswers에 의하면, control sequence는 raw read에는 당연히 존재하고 HGAP assembly에서도 제거되지는 않지만(왜냐하면 조립 시 콘트롤로서 쓰일 수 있으므로), resequencing 및 filtering 단계에서 없어진다고 한다. 서열 정보는 /common/userdata/references/*control*에 존재하지만 FASTA 파일을 열어보면 총 길이가 52,442 bp나 된다. 2 kb 라이브러리라면서 왜 이렇게 긴가? 그것은 SMRTbell library로부터 만들어진 polymerase read이기 때문이다. 즉 Fwd_tc6 adaptor - forward 2 kb - Rev_tc6_adaptor - reverse 2 kb read...가 반복된 상태의 서열이 수록된 것이다.

2kb_control_adaptor.gff를 참조하여 control DNA sequcence 26개를 잘라낸 뒤 phrap으로 조립을 하였다. 1966 bp의 contig가 만들어졌다. 이 control sequence는 실제로 생명체에 존재하는 DNA를 기반으로 만들어진 것인지, 혹은 완전히 "설계"된 인공적인 서열일까? UniProt에서 blastx를 해 보았지만 최소한 알려진 단백질 서열에 대해서 의미있는 매치는 보이지 않는다.

만약 SMRT analysis(HGAP)을 사용하여 조립하지 않은 genome sequence라면 control에서 유래한 서열을 제거하지 않은 상태로 NCBI에 그대로 제출하는 사람도 있을 것이다. phrap으로 얻은 1966 bp sequence를 가지고 NCBI에서 blastn을 해 보았다(nucleotide collection 대상). 역시! 어디에나 부주의한 submitter는 존재한다. Weissella cibaria unnamed plasmid의 complete sequence(3467 bp)라고?



다음으로는 처리가 되지 않은 서열, 즉 긴 polymerase read의 일부를 가지고서 검색을 해 보았다. 앞부분 10 kb를 끊어서 같은 방법으로 검색을 해 보았다. 결과는 거의 같다. 그나마 다행인 것은 이렇게 control sequence를 제거하지 않은 submission이 그렇게 많지는 않다는 것이다.


P4-C2 케미스트리를 썼던 과거 데이터에는 internal control을 사용한 흔적이 없다. P5-C3 케미스트리는 한번도 접해보질 않아서 당시에는 어떠했었는지를 알 수 없다. HGAP이 아닌 다른 assembler를 쓰는 경우에는 최종 서열에 2 kb짜리 엉뚱한 contig가 여전히 남아있는지를 유의하여 살펴보도록 하자.

2017년 4월 18일 화요일

새로운 개념의 hybrid genome assembly: DBG2OCL

PacBio long read sequencing이 단순한 변이 검출(resequencing & variant calling)이 아니라 본격적인 de novo assembly에 쓰이게 된 것은 일루미나 read를 활용한 hybrid approach에 힘입은 바 크다. 짧지만 상대적으로 오류가 적은 일루미나 read를 long read에 정렬하여 오류를 교정한 뒤, 일반적인 overlap-layout-consensus(OLC) assembly 방법에 의해 유전체를 재구성한다는 전략이다.  그러다가 2013년에 long read만을 이용하여 스스로 오류를 교정하여 조립에 이르는 nonhybrid method가 나오면서 3세대 유전체 염기서열 해독법에 의한 유전체 해독이 더욱 대중화되었다.

"SMRT cell 하나만 시퀀싱을 맡기면 박테리아 유전체 해독은 끝난다네."

그렇게 틀린 말은 아닌다. 그러나 세부적으로 들여다보면 아무리 자체 교정을 해도 남아있는 오류가 꽤 있고, 심지어는 유전체에 따라서 조립 오류도 종종 관찰이 되고는 하다. 그리고 유전체가 크면 맘놓고 100x씩 Pacbio sequencing을 돌리기에 부담이 되는 것도 사실이다. 그래서 일정 분량의 short read를 만들어서 절충을 하는 전략이 아직은 완전히 버려지지는 않았다.

작년 6월 25일 Nucleic Acids Research에 Contiguous and accurate de novo assembly of metazoan genomes with modest long read coverage라는 제목의 논문이 실렸다. 연구비 규모가 넉넉한 부자 연구소가 아니라면 유전체는 큰데 막대한 물량 투입이 곤란한 상황을 직면하는 것이 일반적일 것이다. 이러한 상황에서는 어떻게 하는 것이 최선일까? 저자들은 완벽한 reference genome이 준비된 초파리를 대상으로 하여 long read 용 라이브러리 제작을 위한 효과적인 고품질 DNA 추출법을 검토함과 동시에, 보통 수준(~25x)의 PacBio sequencing 결과물을 가지고서 최적의 genome assembly를 만들어내는 방법을 제시하였다. 저자들은 wgs package를 이용한 PacBio only assembly 및 DBG2OLC(뒤에서 기술하겠다) 을 이용한 hybrid assembly를 먼저 실시한 다음 자체적으로 개발한 quickmerger 프로그램으로 병합하였으며, downsampling에 따르는 효과도 알아보았다. 다음 그림은 논문의 그림 4에서 설명한 quickmerge의 개요도이다. 여기서 말하는 downsampling이란 PacBio read를 긴 것부터 50% 또는 75%를 취하는 것을 말한다(아마 염기 수가 아니라 리드 수의 퍼센트일 것이다).


본 연구에서 내린 결론은 67.4x의 일루미나 리드(100 bp PE)와 10-30x의 PacBio long read가 같이 쓰인 assembly가 자체 교정을 통한 50x PacBio assembly보다 낫다는 것이다. 그런데 흥미로운 것은 hybrid assembly와 self-corrected assembly가 상호 보완적으로 작용한다는 것이다.

그러면 이 논문에서 사용한 hybrid asembler인 DBG2OLC(de Bruijn graph to overlap-layout-consensus)는 무엇인가? 이에 대한 논문은 같은 해 9월 30일 Scientific Reports에 실렸다("DBG2OCL: Efficient assembly of large genomes using long erroneous reads of the third generation sequencing technologies"). 이 논문의 제1저자인 Chengxi Ye는 sparse graph concept를 이용한 어셈블러인 SparseAssembler의 개발자이기도 하다. DBG2OCL은 long read를 염기 단위로 교정하는 - 꽤 시간이 많이 걸린다 - 일반적인 hybrid assembler와는 매우 다르다. 여기에서는 short read를 사용한 조립을 먼저 하여 DBG contig를 만든 다음, 이를 long read에 정렬함으로써 long read를 서열이 아니라 contig identifier의 목록이라는 구조로 간결하게 만든다. 논문에서는 이를 'compressed long read'라고 부른다. 이렇게 하여 long read 간의 비교 및 structural error를 최소화한다는 것이 큰 특징이다. 따라서 중간 결과물로서 chimeric long read 정보가 제공된다. Compressed long read에서 최적의 overlap graph가 얻어지면, 이들의 연결 구조로부터 consensus algorithm인 Sparc을 적용하여 DNA 서열이 산출된다.

약 2-3주 전까지는 Falcon을 설치하고 활용하는 것에 재미를 들여가고 있었는데, 어딘가 모르게 closing이 잘 되지 않는 박테리아 샘플(PacBio와 일루미나 read가 공존)에 DBG2OLC를 적용해보고 싶다는 생각이 들었다. Supplementary material이 내 기준으로는 약간 부실하여 순식간에 진도를 나가지는 못하였으나 어쨌든 결과는 얻었다. 하지만 박테리아 샘플에서는 그다지 큰 재미를 보지 못하였다. 그렇지만 서열 다운샘플링과 contig 수치의 계산을 위한 AssemblyUtility를 알게 된 것도 소소한 즐거움이 아니겠는가? 또 Falcon tutorial에서는 countFasta.pl라는 스크립트를 알게 되지 않았는가?

한 종류의 데이터를 가지고 이런저런 프로그램을 돌려서 갖가지 결과를 볼 수 있으니 이 어찌 不亦樂乎아! Long read 자체에 워낙 오류가 많으니 fastq든 fasta든 별 상관이 없다는 것도 또 재미있지 않은가?