2019년 11월 8일 금요일

Canu 버전에 따라서 PacBio 조립 결과물에 꽤 큰 차이가 난다

Long read용 de novo assembler인 canu의 공식 문서 사이트에서는 샘플로 사용할 대장균 25x PacBio fastq 데이터의 링크를 제공한다.

[Canu Quick Start]
http://gembox.cbcb.umd.edu/mhap/raw/ecoli_p6_25x.filtered.fastq (233 MB)

이것을 가지고서 canu로 조립을 하면 하나의 contig가 나온다. 사용한 canu의 버전(canu --version)은 Canu snapshot v1.8 +484 changes이다.

>tig00000001 len=4639164 reads=9483 covStat=4029.14 gappedBases=no class=contig suggestRepeat=no suggestCircular=no

아쉽지만 circular 구조가 아닌 것으로 조립을 마무리하였다. 서열을 자체적으로 검색해 보아도 시작과 끝 부분에 overlap이 생기지 않는다.

그런데 어제 canu를 업데이트(git pull)하여 'Canu snapshot v1.8 +591 changes'로 만든 다음 똑같은 명령어를 실행해 보았다. 그랬더니 콘티그가 두 개가 생겼고, 그중 하나는 circular 형태임을 제시하였다. 길이도 이전 것보다 26 kb가 더 길다.

>tig00000001 len=4665388 reads=10601 class=contig suggestRepeat=no suggestCircular=yes
>tig00000002 len=18453 reads=13 class=contig suggestRepeat=no suggestCircular=no

오늘 다른 서버에서 canu를 업데이트한 뒤 전체 과정을 재현해 보았다. 결과는 같았다. 입력물은 동일한데 canu의 사소한 버전 차이로 인하여 contig를 circularize하느냐 아니면 못하느냐의 운명이 갈리는 것이다. 18 kb의 짧은 contig는 circlator를 통하여 염색체 속으로 병합되었다.

BLAST나 cross_match를 해 보면 두번째 canu에서 만들어진 contig의 앞과 뒤에서 20 kb가 넘는 overlap이 검출된다. 물론 두 영역이 염기서열 수준에서 100% 동일하지는 않다. 서열 검색 프로그램으로 명백한 overlap이 있지만 circlator는 이를 원형으로 만들어주지는 못해서 아쉬움이 남는다.

"악마는 디테일에 있다(The devil is in the detail)." Canu의 사소한 버전 차이가 이런 큰 차이를 만들어 내다니 정말 의외의 발견이었다.

2019년 11월 22일 업데이트

Canu의 신버전이 명백하게 24 kb가 넘는 겹침 영역을 contig 앞과 뒤에 만들었음에도 불구하고 circlator가 제대로 circularise를 하지 못한 이유는 무엇이었을까? 처음에는 데이터 분량이 충분치 않거나(25x), 겹치는 영역의 identity가 충분치 않아서 그런 것이 아닐까 하고 생각했었다. 그러나 blastn으로 계산한 percent identity는 무려 99.893%였다. Circlator의 실행 단계에서 match의 기준은 nucmer 기준으로 95%라서 identity가 충분치 않다는 것은 말이 되지 않는다. 왜 그렇지? Self correction을 더 해야 하나? pbalign과 quiver(arrow까지)를 이용한 교정을 실시했지만 여전히 circularize가 이루어지지 않았다.

왜 그럴까? Circlator 논문과 매뉴얼을 다시 읽기 시작하였다.


Corrected read를 쓰라고 떡하니 나와있지 않은가! 난 그동안 계속 원본 read를 쓰고 있었다. 난 바본가 보다. canu에서 교정한 데이터를 사용했더니 25x sample read로도 circularize가 정상적으로 이루어졌다. 150x sample data도 같은 결과를 얻었다.

Raw read를 추가하지 않는 상태에서 circlator minimus2로 circularization만 실시하는 시도에서는 여전히 실패다. 이것은 수수께끼로 남았다.

 

2019년 11월 7일 목요일

'선택지'라는 말이 요즘 무척 많이 쓰인다

선택지(選擇肢)라는 낱말이 요즘 무척 많이 쓰인다. 뉴스 기사나 인터넷에서도 아주 흔하게 볼 수 있는 말이 되었다. 다음은 오늘 구글 검색창에 '선택지'를 넣어서 찾은 주요 뉴스 결과이다.


다음 사전에 의하면, 선택지란 '미리 제시된 여러개의 답 중에서 물음이나 지시에 따라 알맞은 답을 고르도록 하는 설문이나 시험의 형식'이라고 한다. 여기에서 쓰인 지(肢)의 뜻은 팔다리를 의미한다. '사지(四肢)가 뻐근하다'는 것은 네 팔다리가 전부 뻐근하다는 뜻이다.

그러면 학창시절에 숱하게 접했던 사지선다형 시험에서 '지'와 선택지의 '지'는 같은 한자인가? 아니다! 四枝選多型이다. 여기서의 枝는 가지(나뭇가지)를 의미한다.

분명히 선택지라는 낱말은 우리 국어 환경에서는 최근 들어서야 널리 쓰이게 된 것 같다. 나무위키(링크)에 의하면 본래 어원은 일본어이고, 슬램덩크 이전의 한국어에서는 찾아볼 수 없다는 설명이 나온다. 일본에서 유래한 한자어를 수용하는 것에 대해 저항감을 느끼는 것은 한국인으로서는 대단히 자연스러운 것이 현실이다. 그러나 반대로 영단어를 우리말에 그대로 섞어 쓰는 것은 과연 세련되고 고급스러우며 옳은 일인가?

국립국어원의 상담 사례에 의하면 '선택지'는 교육 전문어로서 다음 사전의 정의와 마찬가지로 시험의 형식을 뜻한다. 다음 사전에서 정의한 바와 같다.

[국립국어원 상담 사례 모음] '보기'와 '선택지'의 구분

요즘 '선택지'는 시험의 형식이라는 본래의 뜻보다는 '고를 수 있는 여러 대상'의 뜻으로 더 널리 쓰이게 되는 것 같다. 영단어로 치면 option과 거의 흡사한 의미라고나 할까? 왜냐하면 '여러 선택지들 가운데 고른다'는 표현히 점점 많이 눈에 뜨이기 때문이다.

선택지의 원래 의미에서 지(肢)의 의미를 잘 알기가 어렵다. 이 낱말을 적극적으로 쓰는 것이 우리말의 말글살이를 더욱 풍부하게 하는지는 잘 모르겠다.

원래 단복수의 개념이 명확하지 않았던 우리말에서 어느새부터인가 '~들'이라는 표현이 많이 쓰이고 있다. 그리고 붙여서 써야 하는 조사를 지나치게 띄어서 쓰는 것도 많이 보인다. 예를 들어 오늘 글의 제목을 다음과 같이 쓰는 것 말이다.

선택지 라는 말이 요즘 무척 많이 쓰인다.

심지어 '~입니다'와 한 단어로 굳어진 '~하다'조차도 앞의 말과 띄어쓰는 경우를 많이 보게 된다. 이것은 보기에 심히 불편하다. 바로잡아야 한다고 생각한다.

2019년 11월 3일 일요일

2019년 11월 첫 일요일의 네이버 그린팩토리

지난주에는 날씨가 제법 쌀쌀하여 오래 네이버 그린팩토리에 오래 앉아있지를 못했었다. 그날은 잡지를 읽는 대신 재레드 다이아몬드의 책 <어제까지의 세계>를 가져와서 읽느라 시간을 보냈었다. 오늘은 날씨도 제법 포근하여 편안한 마음으로 서가에서 몇 권의 잡지를 꺼내와서 읽기 시작하였다. 다음은 내가 좋아하는 잡지들이다.

책('Chaeg'), 채널예스. 그리고 르몽드 디플로마티크.
'책' 10월호에서는 에서는 이란에서 활동하는 멀티미디어 작가 마리얌 피루지(Maryam Firuzi. 웹사이트)의 작품을 소개하였다. 테헤란 거리에서 그녀는 책을 꺼내들고 스스로의 사진을 찍는다. 연극적으로 만들어진 작품이지만 이야기가 가득하다. 신디 셔먼을 연상하게 하는 작업이지만 몇 편의 작품에서 풍기는 이미지는 따뜻한 느낌을 풍긴다.




'책'의 <방 안의 코끼리> 코너에서는 요즘 정치·사회 부문 베스트셀러에 오른 김지혜 교수의 <선량한 차별주의자>를 다루었다. 이 책은 최근 경향신문 기사에서 접하면서 알게 되었다. 아직 이 책을 읽어보지는 않았지만, 좀 과하다는 생각이 들기는 했었다. 그러면 나도 차별주의자인가? 2007년 차별금지법이 국회에서 발의되었지만 2013년에 철회가 되었다는 것은 문제이지만.

[커버스토리] "결정장애" 입에 달고 사는 당신도 차별주의자입니다.

외모나 출신, 말투 등으로 차별을 해서는 안된다는 것은 당연하다. 그러나 나의 영화적 상상력을 동원한다면 모든 사람들이 부르카 비슷한 것을 입고 목소리도 자동적으로 기계음으로 변조해 주는 장치를 달고 다니도록 제도적으로 강제하는 사회가 오지 말라는 법도 없지 않은가? 이렇게만 하면 키가 차이나는 것이 그대로 보이니 신발 굽 높이를 달리 하여 전부 비슷한 키가 되게 만들어야 할지도 모르겠다. 마치 스타워즈에 나오는 클론 군단처럼... 누구나 개성이 있고 취향이 있지만 이것이 차별인 행동으로 표출되지 않게 하려는 노력은 분명히 필요하다. 그러나 '이렇게 말하는 것도 차별인지 모른다'며 스스로를 지나치게 검열하는 것은 오히려 일종의 억압이 될지도 모르는 일이다.

월간 '책'에서 <선량한 차별주의자>에 대하여 이야기한 네 명의 에디터들도 이 책의 긍정적인 효과에도 불구하고 불편함을 토로하고 있었다.
나를 정말 안절부절못하게 만드는 일은, 속마음으로는 그렇게 생각하지 않는 것을 뻔히 느낄 수 있는데 예쁘게 포장된 단어로 차별하지 않는 척 우물쭈물하는 모습이었다. 미국 흑인에게 흑인이란 말 대신 아프리카 계 미국인이라고 말하는 것도 마음에 안 든다. 얼굴이 검은 것이 치욕스럽다는 전제를 이미 두고 말하는 것이기 때문이다. 백인, 황인, 흑인이라고 말하지, 그럼 뭐라고 말할까? 그 차이를 말하는게 왜 문제가 될까? - 에디터 지은경 
<포춘코리아> 10월호에서는 미국 비즈니스 라운드테이블(BRT)에서 지난 8월 19일 새롭게 발표한 (미국)기업의 새로운 소명에 대한 기사를 실었다(기업의 새로운 소명 A New Purpose for the Corporation, 원문 기사 링크; 포준코리아 웹사이트에서는 국문 기사의 링크를 찾을 수 없었음). 1970년 밀턴 프리드먼은 '기업의 유일한 사회적 책임이 있다면 그건 이윤을 늘릴 수 있는 활동에 참여하는 것이다'라 하였고, 이는 곧 주주들을 위해 돈을 버는 것이 가장 중요한 목표임을 의미했다. 이 '주주 우선주의(shareholder primacy)'는 기업 활동을 위한 당연한 신조처럼 여겨져 왔으나 이제 시대가 변하였다. 기업의 사회적 책임을 더욱 중요시하는 시대가 되었음을 의미한다. 기존 자본주의는 그 앞을 수식하는 무언가가 필요하다는 것이다.

2019년 8월 19일, 비즈니스 라운드테이블이 발표한 기업 목표에 대한 성명문.
기사를 참조하자면 (주주가 아닌) 고객을 위한 가치 창출, 직원에 대한 투자, 다양성과 포용성 증진, 공급업체들을 공정하고 윤리적으로 대우하기, 소속 지역사회에 대한 지원 및 환경 보호를 강조하게 된 것이다. 자유경제원(현 자유기업원) 사람들이 들으면 무슨 사회주의 시대로 역행하느냐고 할지 모르겠지만 말이다. 우리는 아직 더 배가 고파야 하고, 더 경쟁해야 하며, 잘할 수 있는 사람에게 더 많은 보상을 해서 나머지 인류가 먹고 살도록 해야 한다는 논리는 우리나라에서는 아직도 유효한 것 같다. 어제도 광화문 광장에서 태극기를 휘둘렀을 많은 사람들이 이런 목소리를 내고 있었을 것이다.

그러나 이어지는 아난드 기리다라다스(Anand Giridharadas)의 인터뷰 기사는 이에 대한 경계의 목소리를 던지고 있다(포춘코리아 기사 링크). 사회적으로 큰 영향력을 미치는 기업의 CEO들이 저마다 '착한 자본주의'를 내세우기 시작했으나, 선행을 하는 데만 집중할 뿐 해로운 활동을 줄이는 데에는 관심이 적다고 지적한다. 기리다라다스의 화제작 <엘리트 독식 사회>를 읽어 볼 필요가 있겠다.
그(아난드 기리다라다스)는 언론이 페이스북의 데이터 보안 문제를 금방 파악하지 못하면서, 마크 저커버그의 자선 활동에는 관심을 쏟는 모습을 예로 들었다.
좋은 가을이다. 딸아이의 수능 시험이라는 큰 일을 앞에 두었음에도 불구하고 새로 읽고 싶은 책의 목록은 자꾸 길어진다.

다른 고민거리

누구나 늙는다. 그러나 대다수의 사람들은 젊음을 선호한다. 중년 이후에 나이를 말하는 것은 자신의 불리함을 나타내는 것이기에, 나이를 묻는 것을 실례로 여기며, 나이에 비해 젊은 건강과 외모는 권력이 된다. 분위기가 칙칙해진다면서 노인들이 모이는 것을 싫어한다. 수도권 지하철을 무료로 이용할 수 있는 복지 혜택에 대해서는 말이 참 많다. 노인은 과거에 집착하며, 시끄럽고, 냄새나며, 질서를 지키지 않고, 공연히 참견을 하는 성가신 사람들로 여겨진다. 심지어 No senior zone 요식업소가 등장하는 수준까지 이르렀다.

그러나 나도 곧 노인이 될 것이다. 건강 상태가 점점 좋아지니 법에서 정의하는 노인의 나이는 현재보다는 조금 더 늦추어질지도 모른다. 우리나라의 노년 인구 비율 증가 속도는 아마 세계 최고일 것이다. 인구 구성 면에서 한번도 경험해 보지 못한 사회에 우리는 이미 접어들었다. 그리고 노인은 과거 어느때보다 더 많은 경제력을 소유한 세대가 되었다. 요즘의 중년은 아직 막강한 경제력을 보유한 부모 세대의 영향력 아래에 있으면서 '어른 노릇'을 하지 못하고 있다. 찰스 황태자가 언제 왕위에 오르겠는가? 왕위에 오른다 해도 최고의 능력을 발휘할 수 있는 나이는 이미 벗어난 때가 아닐까? 바로 다음 세대로 교체가 일어나는 것이 아니라 한 다리를 건너뛰는 시대가 될지도 모르겠다.

아직 나는 신체적으로나 정신적으로 멀쩡한 것 같은데, 곧 이것이 무너지는 시기가 올 것이다. 그 순간이 되면 이를 한사코 인정하지 않으려 할 것이다. 아직 생존해있는 우리의 부모들도 마찬가지이다. 정말 풀기 어려운 숙제가 아닐 수 없다. 돋보기 안경을 쓰기 시작한지 여러해가 지났음에도 불구하고 안경을 휴대하는 것을 깜빡 잊고 외출했을 때 아직도 짜증이 난다. 준비성이 없는 나를 탓해야지 짜증을 낼 이유가 없다.

갑자기 내가 이 세상 사람이 아닌 상태가 되었다고 하자. 내 블로그와 도메인은 어떻게 할 것인가? 많은 인터넷 서비스가 실명으로 운영되는 것은 아니니, 사망신고와 같은 것을 할 방법이 없다. 그런 상황이 도래했을 때, 내 블로그는 즉시 폐쇄하는 것이 옳은가, 혹은 일정 기간 동안 이를 알리고 닫을 것인가? 혹은 충분한 재원이 남아있다면 계속 남겨 놓을 것인가? 인터넷 상에 남긴 자료에 대한 상속 또는 정리 문제를 이제는 생각할 때가 되었다.

앞으로 이에 대한 고민과 내 나름대로의 생각은 내 블로그의 꾸준한 글감이 될 것이다.


독서 기록 - 재레드 다이아몬드 [어제까지의 세계]

『총, 균, 쇠』로 잘 알려진 재레드 다이아몬드가 최근작 『대변동: 위기, 선택, 변화』의 출간에 맞추어 한국을 찾았다고 한다. 어제(11월 2일)는 교보문고 광화문점에서 사인회가 있었고, 그저께에는 네이버 V LIVE에서 라이브 방송(링크 - 현재 다시보기 준비 중)도 있었다.

지난주 토요일이었던 10월 26일 작은아버지의 팔순 모임에 참석했다가 행사를 마친 후 근처의 교보문고 광화문점에 들러서 그의 책을 한 권 구입하였다. 신간 제목을 정확히 모르는 상태에서 휴대폰으로 검색된 책은 국내에 2013년 소개된 『어제까지의 세계(The World until Yesterday)』였다. 이번 7월에 17쇄를 찍었으니 꽤나 널리 읽혔던 것 같다. 『총, 균, 쇠』 『문명의 붕괴』 『어제까지의 세계』는 다이아몬드의 문명 3부작으로 흔히 일컬어진다. 『총, 균, 쇠』는 이미 오래 전에 재미있게 읽었다.


서론에서 밝혔듯이 인간 심리에 대해 우리가 알고 있는 것은 WEIRD(western, educated, industrialized, rich, and democratic)한 사회에 속한 피험자를 대상으로 한 연구에 불과하다. 전통사회를 왜 연구해야 하는가? 여기에서 말하는 (소규모) 전통사회란, 역사 속으로 사라진 사회나 국가를 의미하는 것이 아니다. 20세기에 들어서 비로소 문명 사회를 접하게 되면서 사회과학적 조사 연구(자연과학이 아니니 실험 연구는 곤란할 것이다)를 할 수 있게 된 씨족 혹은 부족 사회를 뜻한다. 아무리 전통이 오래 되었어도 국가라는 정치 체제를 도입한 사회는 일단 제외이다. 저자는 원래 새를 연구하던 생물학자로서 뉴기니에서 오랜 기간 체류하면서 겪고 탐구한 인간과 사회, 문명과 역사에 관한 경험과 통찰력을 다듬어서 베스트셀러를 만들어 낸 것이다. 부분적으로는 전통 사회에 대한 호기심을 충족하기 위해 연구를 하지만, 현대 사회가 현실적인 문제를 해결하기 위해 고안해 낸 방법에 더욱 다채로움을 더해주고 참고할 것이 많기에 전통사회를 연구하는 것이다. 그렇다고 하여 과거를 현재보다 낭만적으로 생각하고 돌아가자고 주장하는 것은 아니다.

이 책에서는 우리가 전통 사회에서 배울 수 있는 교훈을 크게 다섯 가지로 나누어 서술한다. 이는 옮긴이(강주헌)가 정리한 것으로서 책의 목차에서 다루어진 것을 전부 포함하지는 않는다. 예를 들어 부족 사이에서 벌어지는 전쟁은 제2장과 3장에서 자세히 다루어지지만 여기에서는 전통사회에서 빈발하는 전쟁의 원인과 방법 등을 서술한 것이지 이로부터 어떤 교훈을 도출하자는 것은 아니기 때문이다.
  1. 양육법
  2. 노인의 대우
  3. 분쟁 해결 방법
  4. 위험 관리
  5. 다중 언어 사용
  6. 건강한 생활 방식
  7. 종교에 대한 인식
특히 나에게 가장 흥미로웠던 것은 제9장 <전기뱀장어는 종교의 진화에 대해 우리에게 무엇을 말해주는가?>였다. 483쪽에 소개된 종교의 속성은 1) 초자연적인 존재에 대한 믿음, 2) 사회운동이라 생각하며 그 운동에 동참하는 회원들, 3) 비용이 많이 드는 구체적인 증거를 보여줘야 하는 헌신, 4) 행동을 실질적으로 규제하는 법칙들, 5) 초자연적인 존재와 힘을 현실의 삶에 개입하도록 유도할 수 있다는 믿음(즉 기도)이다. 

신앙을 가진 사람이라면 매우 불손하게 생각하겠지만, 종교는 왜 생겨났고 개인과 사회에게 어떤 기능을 하며 앞으로 종교는 어떻게 될 것인가라는 질문을 나는 늘 갖고 있다. 진화심리학에서 비교적 최근에 시작된 접근법에 의하면 종교는 어떤 문제를 해결하기 위해 진화된 것도 아니고 의식적으로 만들어진 것도 아니다. 
종교는 우리 조상이었고, 그 위로 동물 조상이었던 어떤 생명체들이 지녔던 어떤 능력들의 부산물로 생겨났을 가능성이 크다. 그 능력들이 발전하는 과정에서 뜻밖의 영향을 미치며 점진적으로 새로운 기능을 획득했다는 것이 진화심리학에서 파생된 접근법의 결론이다(490쪽).
어쩌다보니 생긴 종교가 발전을 거듭하면서 사회에서 뜻밖에 큰 영향력을 미치게 되었다는 것이 명쾌한 결론이다.  지난 토요일 팔순을 맞으셨던 작은아버지께서는 성직자셨기에 나는 보실 때마다 더 늦기 전에 다시 신앙의 길을 찾으라고 권하시지만, 생명과학자로서 나의 신념이 그와는 다르기에 그 권면을 받아들이지 못함을 늘 죄송스럽게 생각하고 있다.

제6장 <노인의 대우>도 매우 중요한 의미를 담고 있다. 요즘 우리나라는 온갖 정지척·경제적 갈등이 최고조에 달해 있는데, 특히 노인들에 대한 편견과 혐오가 점점 심해지고 있다. 물론 어른 노릇을 하지 못하는 사람이 많다는 문제가 없지는 않겠으나, 기록문화와 인터넷의 보급에 의해 지식의 전달자로서 전통 사회에서 노인이 누렷던 중요한 위치가 점차 무너면서 세대 갈등도 점점 심해지고 있다. 심지어 <노 시니어 존>을 표방한 영업장이 생겨나고 있으니 말이다(기사 링크). 이에 대해서는 별도의 글로 정리해 보련다.

유발 하라리의 [사피엔스], [호모 데우스], 그리고 [21세기를 위한 21가지 제언]을 읽으면 인류의 미래가 다소 우울하게 느껴지는 면이 없지 않다. 그러나 재레드 다이아몬드의 책은 그렇지 않다. 『총, 균, 쇠』는 흔히 환경결정론이라 하여 비판을 받기도 하지만, 『어제까지의 세계』에서는 위트와 희망이 느껴지기도 한다면 과장일까? 그의 나머지 저서도 곧 읽어 보아야 되겠다.

2019년 10월 29일 화요일

Minimus2 circlator 실행을 위한 편법

Long read assembly에서 유래한 contig를 정리하여 염색체 형태로 완성된 염기서열을 얻는데 circlator만큼 편한 것은 없다. Circlator가 하는 일은 의외로 복잡하다. 원형의 replicon을 다 커버하고 끝부분에서 남는 서열(즉 앞부분에 해당하는 염기서열이 뒤에서 다시 나타나는)을 제거한 뒤 dnaA 유전자가 첫번째 ORF가 되도록 방향을 바꾸는 것만이 전부가 아니다. 만약 약간의 gap이 남아있다면 long read로부터 조립을 하여 이어주고, major contig 내부에 포함될만한 짧은 contig가 있다면 이를 병합하는 등의 일도 수행한다. 그렇게 때문에 circlator를 실행할 때에는 assembly와 더불어 long read(raw data)가 항상 필요한 것이다.

만약 말단에 겹칩이 확인되어 circularization이 확실시되는 contig가 있다고 하자. 양 끝에서 발견되는 말단을 제거하는 일만을 하고 싶지만 raw read에 해당하는 것이 없는 상황을 생각해 볼 수 있다. 그러면 minimus2 circularization pipeline을 따르면 된다고 하는데, 이때 필요한 amos가 골칫거리이다.

Bioconda의 circlator 패키지 레시피를 보면 amos 3.1.0 상이 필요하며, 파이썬은 3 이상이 필요하다. 하지만 실제 conda install circlator를 하면 amos는 저절로 깔리지 않는다. Amos는 고약하게도 파이썬 2.7까지만 작동한다.

AMOS는 whole genome assembly software의 모음이다. bank라는 독특한 데이터 체계를 사용하고 있으며, 나도 이를 이용하여 유전체를 조립한 뒤 hawkeye로 조립물의 시각화를 해 본 경험이 있다. 워낙 오래 전에 만들어진 프로그램이라서 파이썬 3 환경에서 작동하도록 개선이 되리라는 기대를 하기 어렵다.

그러면 어떻게 하면 될까? circlator의 minimus2 파이프라인에서 필요로하는 것은 toAmos와 minimus2 두 가지가 전부이다. 일단 amos를 파이썬 2.7 기반의 환경에 설치한 다음, 이 두 가지 스크립트를 실행 경로가 있는 곳에 추가하고, 파이썬 3 기반의 환경에서 circlator minimus2를 실행하면 될 것 같았다.

양 끝에 겹침을 인위적으로 도입한 대장균 K-12 MG1655의 유전체 서열을 만들어서 테스트를 해 보았다. 이어지지를 않는다. 왜 그럴까? 메시지를 찾아보니 show-coords가 제대로 작동하지를 않은 것이었다. toAmos와 minumus2 중 show-coords와 delta-filter를 내부적으로 부르는 것은 minimus2이다. minimus2를 열어보니 이 두 가지 실행파일의 경로가 /usr/local/bin/로 설정된 것이었다. 이를 제대로 고쳐주니 minimus2 파이프라인이 제대로 돌아가기 시작했다.

bioconda를 통해 배포되는 생명정보 분석용 프로그램이 이제는 족히 수천 가지는 될 것이다. 이들 사이에 의존성이 항상 완벽하게 맞아 떨어지는 것은 아니니 개별적인 사안에 대해서는 적절한 꼼수를 찾이 않을 수가 없다.




2019년 10월 23일 수요일

두 개의 계통수를 비교하는 tanglegram 그리기

같은 자료를 각각 다른 방법으로 처리하여 만들어낸 두 개의 계통수를 비교하기 위하여 같은 tip을 서로 연결한 그림을 tanglegram이라고 한다. 우리말로 옮기면 '엉킴그림' 또는 '엉킨그림' 정도가 될 것이다. R에서 dendextend 패키지의 tanglegram() 함수를 사용하면 원하는 그림을 그릴 수 있을 것 같은데, R을 쓰려면 이런 형태의 자료를 다루는 방법을 근본에서부터 공부해야 하니 당장 활용하기에는 매우 번거롭다. 스크립트를 별도로 만들지 않고 tanglegram을 그릴 방법이 없을까?

구글에게 물어보았다. Dendroscope라는 프로그램을 쓰면 된다고 한다. 나는 그동안 FigTreeiTOL server를 주로 사용해 왔는데, 계통수를 다루는 프로그램 목록에 하나를 더 추가하게 되었다.

https://www.ncbi.nlm.nih.gov/pubmed/22780991
 2012 Dec 1;61(6):1061-7. doi: 10.1093/sysbio/sys062. Epub 2012 Jul 10.

Dendroscope 3: an interactive tool for rooted phylogenetic trees and networks.

Author information

1
Department of Computer Science, Center for Bioinformatics (ZBIT), University of Tübingen, 72076 Tübingen, Germany. daniel.huson@uni-tuebingen.de

튀빙엔 대학교(Eberhard Karls Universität in Tübingen) 소속의 연구자가 개발한 툴이다. 튀빙엔(튀빙겐?) 대학은 초창기 메타게놈 분석 도구로 잘 알려진 MEGAN(MEtaGenome Analyzer, version 6 link)가 만들어진 곳이고, Dendrogram과 개발자가 같다(Huson DH). 튀빙엔 대학교는 1477년에 세워진 오래되고 유명한 학교로서 프리드리히 미셔가 19세기에 DNA를 처음 발견한 것도 이곳에서였다.

튀빙엔 대학교가 위치한 소도시 튀빙엔에 대한 여행 정보는 쉽게 검색이 가능하다.

튀빙겐, 독일에서 공부한다면 바로 이런 도시에서...

멋진 곳에서 멋진 연구 성과가 나오는 것이 맞을까? 매우 궁금하다.

Dendrscope를 이용하여 tanglegram을 그리는 방법은 다음의 링크에 상세히 설명되어 있다.

How to do a Dendroscope tanglegram

대장균의 유전체를 이용하여 roary에서 만든 core gene alignment 기반 트리(fasttree)와 accessory gene 기반 바이너리 트리를 비교하는 tanglegram을 그려 보았다. 이만하면 훌륭하다! Publication quality까지 이르도록 매만지려면 조금 더 기능을 알아보아야 되겠지만.


2019년 10월 22일 화요일

우분투 가상머신에 아나콘다 최신판을 설치하기가 왜 이렇게 힘이 들까?

11월에 한국바이오협회에서 주관하는 유전체분야 맞춤의료 기술인력 양성 교육에 강사로 참여하게 되었다. 지난 2016년에 KOBIC 주관 교육에서 강의를 한지 꼭 3년만의 일이다. 마이크로바이옴 시대가 활짝 열리면서 단일 미생물 유전체의 해독과 분석 교육에 대한 수요는 많이 줄어든 느낌이다. 왜냐하면 요즘은 시퀀싱 업체에 미생물 유전체 시퀀싱을 맡기면 genome assembly와 annotation까지를 다 해 주기 때문이다. 물론 약간의 추가 서비스 요금은 받게 될 것이다.

'맡기면 누군가 해 주는 것'의 시대가 되니 기본 원리를 이해하려고 애쓸 필요가 별로 없어진 것이 현실이다. 그래도 기본 개념과 역사에 대해서 어느 정도는 알아야 한다는 것이 나의 철학이다. 시퀀싱 서비스 업체에 전화를 걸어서 소비자로서 원하는 것을 얻고 궁금증을 해소하기 위해 다그치는 것에만 익숙해졌을 뿐이다. 비유하자면 최소한 파워포인트의 '슬라이드'라는 말이 어디에서 기원했는지는 알아야 할 것 아니겠는가? 슬라이드 환등기나 오버헤드 프로젝터, 타자기를 실제로 본 적이 없는 사람이 점점 많아지듯 말이다.

실습을 위한 서버의 테스트 및 사전 설정은 다음주부터 진행하기로 하였으므로, 당장은 노트북에 VirtualBox로 CentOS 7.6을 가상머신으로 설치하여 원하는 환경이 잘 만들어지는지 점검하기로 하였다. 설치 후 yum update를 하니 release 7.7이 되었다. 이제 남은 작업을 해 볼까? 이렇게 고생이 시작되었다...

VirtualBox guest additions의 설치가 안된다

Kernel module build 과정에서 자꾸 에러가 난다. 모든 패키지를 업데이트하고 커널 빌드에 필요한 것도 다 갖추어진 상태인지 거듭 확인을 해 보아도 소용이 없었다. VirtualBox의 버전을 6.x로 올려서 겨우 해결이 되었다. CentOS 7에서는 기본적으로 네트워크 인터페이스가 부팅 시 꺼진 상태이기 때문에 설정을 다시 찾아서 연결하는 번거로움이 있다. 게스트 OS에 잡힌 마우스 포인터를 해제하는 키는 뭐로 설정을 해야 되는가? 노트북 컴퓨터용 키보드는 101/104 키와 관계가 있던가?

최신 anaconda 배포본(anaconda3 2019.10)이 설치되지 않는다

설치용 파일(.sh)을 다운로드하여 bash로 실행하면 파일 압축 해제를 시작하는가 싶더니 전혀 진행이 되지 않았다. 무엇이 문제일까? Anaconda installer archive에서 작년 12월 버전부터 하나씩 배포판을 받아서 설치를 해 보았다. 2019.07까지는 문제가 없는데 유독 2019.10만 설치가 되지를 않았다. 이것을 확인하는데 꽤 많은 시간이 걸렸다. 정말 황당무계한 것은 이 문제는 윈도우 10 호스트에 VirtualBox로 설치한 CentOS 7에서만 벌어진다는 것이다. 온전히 CentOS가 설치된 서버에서는 어떤 배포판 버전을 쓰든 잘 설치가 된다.

리눅스 생활이 벌써 몇십년째인데 설치는 여전히 어렵다! 과거의 경험(겨우 두어달 전에 진행했던 일이라 해도)이 현재의 문제를 해결하는데 큰 도움이 되지 않는 일이 종종 발생한다.

이러한 어려움 속에서도 bioconda가 나를 살렸다는 결론에는 변함이 없다. 관리자 권한을 얻을 필요 없이 필요한 환경을 전부 구축할 수 있다는 것이 놀랍기만 하다.