2018년 7월 19일 목요일

AliExpress에서 주문한 물건의 뒤늦은 배송

이 부품의 이름은 직경 6 mm의 축을 끼울 수 있는 Rigid Flange Coupling이다. 발음은 '커플링'이지만 커플이 나누어 끼는 반지를 뜻하는 것은 물론 아니다. 두 축을 연결하여 회전 동력을 전달하는 용도의 기계 요소이다. 원래는 출력 트랜스 권선기를 만들기 위해 주문한 것인데 너무 오랫동안 오질 않아서 다른 방법으로 회전판을 고정하고 말았다. 5월 23일에 주문을 한 것이 7월 19일에 왔으니 거의 두 달이 걸렸다. 총 17 차례의 AliExpress 구매 이력(최초는 2014년) 중에서 가장 늦은 배송이다. 그래도 다행인 것은 단 한 번도 물품이 오지 않은 적은 없었다. 전부 DIY를 위한 전자 혹은 기계쪽 부품이었다.


역시 AliExpress에서 지난 3월 무작정 진공관 앰프 보드를 구입하면서 즐겁고도 고단한 자작의 길을 지금까지 걸어왔다. 공구에 손을 다치거나 고압에 감전이 되는 일도 다반사였다. R-코어를 사용하여 출력트랜스(싱글)를 직접 감았다는 것도 처음에는 기대하지 않았던 수확이었다. 이렇게 완성한 앰프는 실제 음악감상을 하기에 충분한 수준의 음질을 제공하지만 문제는 컴퓨터 케이스를 개조하여 만든 섀시가 너무 허름하고 지나치게 크다는 것이다.

R-코어를 고정하는 방법을 고안하고 아울러서 좀 더 아름다운 섀시를 가공하여 재조립을 하는 것을 올 하반기의 목표로 잡았다. 강기동 박사님의 웹사이트(My Audio Lab)에서 본 사진이 힌트를 제공할 것으로 기대한다. 배관용 새들과 긴 볼트를 이용하면 갭을 사이에 둔 코어 반쪽씩을 고정하는 것이 가능하다. 이렇게 조립한 트랜스를 섀시에 움직이지 않고 고정하는 방법은 그 다음 숙제이다. 가능하다면 신호 발생기와 오실로스코프를 이용하여 주파수 특성과 출력을 측정하는 방법까지 익히고 싶다.

출처 http://www.my-audiolab.com/KDK_Column/63164




2018년 7월 18일 수요일

[하루에 한 R] 텍스트에 색깔 입히기

R에서 colors() 함수를 실행시키면 총 657 개의 색깔 단어가 나타난다. "black", "yellowgreen"과 같이 영단어로 표현 가능한 색상이 657 가지라는 뜻이다. RGB 또는 hex code를 사용하면 더 많은 종류의 색깔을 표현할 수 있다. 다음 PDF 파일을 컬러프린터로 인쇄하여 책상 옆에 붙여두면 쓸모가 많을 것이다. 우리식 콩글리시 표현으로는 '컨닝페이퍼'에 해당한다.

R colors cheatsheet (PDF 파일)
R Colors by Name (PDF 파일)
R Color Tables 색상표를 만드는 R 코드 소개(일단 실행해 보는 것을 추천!)
[참고용] 256 Colors - Cheat sheet

수만 가지의 색을 모니터 혹은 이미지 파일로 표현할 수는 있지만 텍스트에 입힐 수 있는 색은 한정적이다. 다음의 예를 보자.

노랑 글씨  노랑 바탕 위의 검정 글씨

왼쪽은 글자 자체를 노란색으로 쓴 것이다. 뭐가 있다는 것은 알겠는데 마우스로 긁어서 반전을 시키지 전에는 무슨 정보를 담고 있는지 알 수가 없다. 그러므로 실제 텍스트에 색을 입혀서 미리 확인을 해 보는 것이 좋을 것이다. 이를 위해서 사용할 수 있는 매우 적당한 함수가 있으니 그것이 바로 textplot()이다.

R colors 자료에서 스무 개 정도의 색상 단어를 뽑은 뒤 다음의 코드를 실행하여 실제로 표현해 보았다. 실제로 바꿀 것은 cols 벡터와 ncol 파라미터뿐이다.

cols = c("red","aquamarine3","blue","brown","cadetblue",
         "chartreuse","chocolate","darkgoldenrod","darkmagenta","darkgreen",
"khaki4","grey","black","cyan","purple",
"yellowgreen","firebrick","hotpink4","limegreen","salmon3")
mat = cbind(name=cols, t(col2rgb(cols)), hex=col2hex(cols))
textplot(mat,col.data=matrix(cols, nrow=length(cols), byrow=FALSE, ncol=5))

결과를 보자.

왠지 탁하고 칙칙한 느낌이 들지 않는가? 나의 색상 선택 센스가 영 꽝이라는 것을 알겠다. 미적 감각이라는 것은 타고 나야 하는 것이라서 훈련으로 나아지는 데에는 한계가 있다.

My analog life - 기계식 손목시계, 만년필, 진공관 앰프

오늘 아침에 찍은 사무실 책상위의 모습이다.


필름을 사용하는 카메라까지 곁들이면 더욱 완벽한 조합일 것이다. 장식장 안에 몇 대의 카메라와 교환용 렌즈가 있지만 마지막으로 필름을 넣어본 것이 언제인지 모르겠다. 사진과 관련한 생태계가 너무나 크게 변해서 이제는 필름을 구하기도, 현상하기도 어려워졌다. 반면 진공관은 아직도 NOS(new old stock) 상태의 것을 구할 수 있고 심지어 인기있는 관은 아직도 만들어지고 있다.

아이패드를 처음 갖게 되던 시절, 이를 늘 들고다니면서 업무 및 일상에 관련한 기록을 할 수 있게 되리라 생각했었다. 에버노트와 드롭박스를 깔아서 사무실에서 아주 쉽게 파일을 공유하여 어디를 가든 쉽게 열어보고 작업을 할 수 있던 시절이 잠깐 있었다. 그러나 보안 이슈가 불거지면서 공공기관에서는 클라우드 서비스를 쓰는 것이 막히고 말았다. 그러나 더욱 중요한 이유는 이러한 기기를 일상적으로 쓰는 생활이 몸에 잘 배지 않는다는 것이다. 이메일 확인이나 잠깐씩 필요한 검색은 스마트폰으로 충분하고, 출장을 갈 때에는 아예 노트북 컴퓨터를 들고 가게 되니 말이다. 아이패드는 집에서 유튜브를 들을 때에만 가끔 사용하며, 평소에는 다이어리에 손으로 쓰는 글씨를 더 선호한다. 그래서 아직도 만년필을 쓰고 있다.

지금 쓰는 파커 벡터 스탠다드는 서랍에 남은 잉크 카트리지를 다 소모할 때까지만 쓰려고 생각 중인데 하루에 글씨를 쓰는 양이 그다지 많지 않아서 그 날이 언제 올지는 도저히 모르겠다. 내 손에는 참 맞지 앉는 만년필임에도 불구하고 워낙 오래 쓰다보니 이젠 그런대로 익숙해졌다.

작년 11월에 구입한 파커 IM 프리미엄 배큐매틱 핑크(블로그 링크)는 너무나 쉽게 잉크가 말라서 며칠간 쓰다가 포기하고 세척하여 책상 서랍 속에 잘 넣어두었다. 서울 을지로에 있다는 만년필 연구소에 한번 보내볼까?

요즘 관심을 갖는 만년필은 모나미의 153 네오 만년필이다. 소비자가격은 25,000원 정도? 화사하고 가벼운 본체의 색깔과 잉크 카트리지의 다양함이 큰 무기인 것으로 보인다. 모나미의 베스트셀러 필기구인 153 볼펜의 정신을 계승했다고나 할까. 입문용 만년필의 최강자인 라미 사파리와 경쟁해서 이겼으면 하는 것이 개인적인 바람이다. 가격과 품질면에서 3천원 정도에 팔리는 '프레피'와 경쟁할 위치는 절대로 아니다. 프레피와 경쟁해야 할 제품은 '올리카'. 실제 구입하여 사용한 경험으로는 닙이 약간 거칠다.

모나미 153 네오 만년필

오늘 언급한 아날로그 라이프용 아이템 중에서 가장 사치를 부릴 수 있는 것은 기계식 손목시계(주로 오토매틱 와인딩)이다. 가격의 상한선은 상상을 초월하지만, 의외로 싼 오토매틱 시계도 많다. 스마트폰 때문에 시계를 한번도 찬 적이 없는 사람을 간혹 보게 된다. 이와 반대로 최첨단 전자기기인 스마트 워치를 착용하는 사람도 주변에 적지 않다. 이삼일 차지 않으면 시간을 다시 맞추어야 하고 시각을 알려주는 것 이외에는 아무런 기능이 없는 '불편한 물건'임에도 불구하고 국내의 고급 시계 시장은 해마다 성장하기만 한다. 내가 즐겨서 차는 기계식(오토매틱 와인딩) 시계는 일제 오리엔트의 저가 라인인 three star(혹은 tristar, 삼성이네...)의 모델이다. 순전히 인체의 움직임을 동력으로 하여 태엽이 저절로 감긴다는 것이 묘한 일체감을 준다. 손목을 흔들 때 로터가 가볍게 돌아가는 느낌이 좋다. 남자라면 당연히 강렬한 인상의 다이버 시계에 끌리지만 손목이 굵지 않아서 요즘 추세의 큰 시계를 어울리게 차는 것은 어렵다.

진공관 앰프에 입문한 것은 2014년 설 무렵이었다. 올해 봄부터 약 반년이 지난 지금까지는 남이 만든 것이 아니라 내가 직접 만드는 진공관 앰프에 푹 빠져있었다. 그 덕분에 집과 사무실 모두 몇 개의 앰프를 놓고서 골라서 들을 수 있는 환경을 갖추게 되었다.

모든 것을 자동화된 장치(혹은 서비스)에 맡기지 않고 내가 직접 할 수 있는 여지가 있다는 것, 그것이 아날로그의 진면목이 아니겠는가?

2018년 7월 16일 월요일

독서 기록 - <너는 검정> 외 다섯 권


주말에 바쁜 일이 있어서 독후감도 제대로 쓰지 못하고 연체까지 되고 말았다. 제목과 저자만 간단하게 기록한다.


  • 너는 검정: 김성희 만화. 탄광촌을 배경으로 한 실화에 가까운 만화.
  • 우리가 몰랐던 노동 이야기(부제: 하종강의 노동 인권 교과서): 하종강 지음.
  • 어쨌든 미술은 재밌다(부제: 그림을 어렵게 느끼는 입문자를 위한 5분 교양 미술): 박혜성 지음.
  • 거짓말 상회(부제: 거짓말 파는 한국사회를 읽어드립니다): 인문학협동조합 기획, 김미선 김현호 고영 공저. 자기계발, 사진, 그리고 음식의 거짓말 3부로 이루어진 책이다.
  • 공유경제: 마화텅, 장샤오롱, 쑨이, 차이슝산 공저, 양성희 옮김. 우리나라의 공유경제 현황은 다른 나라에 비하면 매우 빈약한 수준이다. 인터넷을 통한 중고 거래를 공유 경제의 하나로 소개하였는데, 네이버 <중고나라>에서 벌어지는 일들을 생각하면 과연 바람직한 사례인지 모르겠다.
  • 징기스 콘의 춤: 로맹 가리 지음, 김병욱 옮김. 우리나라에서는 올해 처음 번역된 소설이다. 나치 에 의해 이미 사살된 유태인 희극배우 콘은 자기를 죽인 SS 대원 샤츠 주변을 맴도는 유령이 된다. 충격적이고 난해한 소설. 

2018년 7월 12일 목요일

A newly coined word, vesiculomics

세포막이 어떠한 이유로 소포 형태로 떨어져 나와서 돌아다니는 것을 extracellular vesicle(EV)이라 한다. 요즘 진단 마커로 관심을 끌고 있는 exosome도 EV의 한 형태이다. EV에는 RNA와 단백질 등 다양한 물질이 들어 있으며, 이를 다른 세포에 보내어 신호를 전달하는 용도로 사용한다고 여겨진다.

그람음성 세균 역시 outer membrane으로부터 vesicle을 만들어 낸다. 이를 OMV(outer membrane vesicle)이라 한다. 세균은 여기의 자기 단백질을 아무렇게나 넣는 것이 아니라 어떤 목적을 위해 선별된 단백질을 넣는다고 한다. 즉 virulence 혹은 immunomodulatory role을 할 수 있도록 OMV를 잘 설계하여 만든다는 뜻이 되겠다. 감염성 세균은 virulence factor를 여기에 넣어서 host cell로 전달하기도 한다.

Extracellular vesicle에 포함된 단백질 혹은 핵산 전체, 즉 기존의 omics 분석법으로 다룰 수 있는 물질 전체를 vesiculome이라 한다면, 이를 연구하는 기법은 vesiculomics라고 하면 되지 않을까? Exosomics라는 용어도 있지만 여기에서의 '-ome'은 흔히 이야기하는 genome, transcriptome, proteome의 ome과는 다르다. 물론 어원적으로는 같지만 말이다.

그러나 vesiculomics의 '-omic'는 여타 오믹스란 용어에서 사용하는 것과 같은 수준의 말이다. 오늘 구글을 검색해 보니 vesiculomics라는 용어는 전혀 검색되지 않는다.


Vesiculome이라는 용어가 들어간 학술자료는 간혹 보이지만 정작 vesiculomics는 보이지 않는다는 뜻이다. 그러면 이 용어는 내가 세계 최초로 쓴 것이 된다. vesicuome, 즉 vesicle에 들어있는 모든 정보물질의 총합을 연구하는 것이 vesiculomics다. 새로운 '-ome'이 정의되었다면 그에 따르는 '-omics'도 당연히 정의되는 것 아니냐고 주장할 사람도 있을 것이다. 하지만 genome과 genomics는 엄연히 수십 년의 시간 차를 두고 만들어지지 않았는가?

Vesiculomics는 내가 2018년 7월 12일 세계 최초로 만든 신조어임을 선포한다!

2018년 7월 11일 수요일

쇼스타코비치의 교향곡 10번 2악장





어제(2018년 7월 10일) 대전시립교향악단의 <마스터즈 시리즈 7>에서 쇼스타코비치의 교향곡 10번을 감상하였다. 단역 백미는 2악장. 겨우 4분 정도에 지나지 않는 짧은 악장임에도 불구하고 그 임팩트는 대단하였다. 유튜브에서 이 곡을 찾아서 소개한다. 가장 최근에 달린 댓글(3년 전)에는 악장이 헤비 메탈의 기원이라는 내용도 있었다.

According to my music theory text books this movement was the origination of heavy metal. [Madison Sawyer]
당시의 억압적이고 암울하던 소련의 사회 분위기를 그대로 전하고 있는 듯한 무겁고도 빠른 곡이었다. 듣는 내내 악당이 등장하는 영화의 한 대목을 연상케 하였다. 다스 베이더나 타노스에게 어울리는 주제라고나 할까? 이 곡은 스탈린의 초상화라는 말도 있다.



격정적으로 오케스트라를 이끌던 객원지휘자인 로베르토 밍크주크는 악장 사이마다 손수건을 꺼내어 땀을 닦았다. 연주가 끝나고 거듭되는 박수 속에 지휘지는 입을 열었다. '쇼스타코비치의 교향곡을 연주하고 나서 앵콜에 응하는 것은 어렵지만... 2악장을 한번 더 연주하겠습니다.'



1부에서는 17세 소년 피아니스트 네이슨 리가 차이콥스키의 피아노 협주곡 1번을 연주하였다.



공연 관람을 마치고 주차장을 나서는 길은 말 그대로 조용한 '대혼란'이었다. 둔산대공원 주차장이 6월부터 유료화가 되면서 주차난이 해소되었다고는 하지만, 공연이 끝나고 수백명의 차량이 한꺼번에 나가면서 주차비를 내기 위해 장시간 줄을 서야 하는 문제는 미리 대비를 했어야 한다. 주차장을 빠져나가는데 무려 한 시간이나 걸렸기 때문이다. 주말의 에버렌드나 롯데월드도 아니고 평일 밤 9시 반이 넘은 시각의 대전에서 이런 일이 벌어진다는 것을 상상할 수나 있을까? 이럴거면 차라리 주차장을 운영하지 말고 대중교통으로 공연을 보러 오라고 홍보하는 것이 낫다.



시에서 만든 공공 시설을 이용하면서 사용료를 내는 것에 대해 누가 뭐라 하겠는가. 다만 공연이 있는 날의 특수 상황을 반영하여 출차 시 오래 시간이 걸리는 것에 대한 대책 마련이 필요하다고 본다.



2018년 7월 10일 화요일

6N1 + 6P1 싱글 앰프의 자작 마무리

손바닥만한 class D 앰프와 SMPS만 있으면 좌우 채널에서 각각 50 와트가 넘는 출력을 뽑아낼 수 있는 오디오 앰프가 즐비함에도 불구하고 진공관 앰프를 만드는 이유는 무엇일까? 부품도 비싸고, 생산 중단된 구관은 점점 구하기가 어려워지며, 고전압을 다루어야 하기에 감전 사고도 잦다. 섀시 가공도 해야 하고, 전력 소모와 발열도 심하다.

그럼에도 불구하고 사서 고생을 하는 이유는 내 손으로 직접 만드는 즐거움과 보람이 있기 때문이다. 진공관은 임피던스 매칭을 위해 출력 트랜스를 필요로 한다. 이는 섀시를 제외하면 부품값에서 가장 많은 비용을 차지한다. 그런데 흥미롭게도 '직접 만드는 것이 가능한 유일한 부품'이기도 하다. 따라서 출력 트랜스를 만드는 것을 진공관 앰프 제작 전 과정 중 백미로 꼽는 사람도 적지 않다.

3월말에 착수하여 알리익스프레스에서 앰프 보드와 진공관으로 구성된 키트를 구입하고, 전원트랜스는 주문제작하되 출력트랜스는 기성품 전원트랜스를 개조하는 것으로 일단 앰프 제작을 시작하였다. 못쓰는 컴퓨터 케이스를 가공하여 섀시를 삼았다. 트랜스 개조를 하면서 손에 상처가 나기도 하고, 220 V를 잘못 다루어서 PCB의 동박을 날려버리기도 하면서 결국은 소리를 내는데 성공한 것이 5월 중순. 그 다음 도전은 R-코어에 직접 에나멜선을 감아서 출력트랜스를 만드는 일이었다. 이를 위해서는 권선기를 먼저 만들어야 했다. 다음의 사진은 권선기의 최종 버전으로서 1차 코일을 감을 때 쓰던 것과는 구조가 조금 다르다.




지난 주말, 낑낑대면서 출력트랜스를 완성하였다. 임피던스비는 5 kOhm : 8 Ohm이다. 리드선을 처리하는 좀 더 합리적인 방법과 코어를 맞물리는 법, 그리고 다 만들어진 트랜스를 섀시에 고정하는 방법을 좀 더 고민해야 한다.


이를 드디어 사무실에서 사용하던 앰프에 장착하기에 이르렀다. 전원선을 뽑아두었지만 평활용 캐패시터에 충전된 전기로 인하여 감전이 되는 바람이 충격이 컸다.




전원트랜스의 코어를 개조하여 출력트랜스로 사용하던 것과 비교하면 분명히 넓은 대역을 편안하게 재생하는 것으로 느껴진다. 측정기를 사용하면 객관적으로 어떤 점이 개선되었는지를 확실히 할 수 있을 것이다. 그러나 아무려면 어떠랴? 나의 손으로 직접 앰프를 조립했다는 보람은 음질의 개선으로 얻는 이익을 훨씬 상회하기 때문이다. 특이 전체 과정 중에서 출력트랜스를 만드는 일이 가장 재미있었다. 이 일이 가능하도록 많은 정보와 도움을 주고 R-코어를 제공한 곳은 제이앨범이다. 그곳에는 제작 진행 과정에 따른 기록을 상세하게 남겨 두었다.

진공관 앰프를 만들고자 인터넷의 여러 카페를 기웃거리는 사람에게 용기를 주는 사람이 있는가 하면 그런 일 하지 말라고 권하는 사람도 있다. 제이앨범은 철저히 전자에 해당하는 곳이다. 이론과 실제를 미처 몰라도 좋으니 일단 부딛혀 보라는 제안을 하는 곳이다. 진공관 앰프 자작을 권하지 않는 사람의 심정은 무엇일까? 너무 고생스러우니까? 아니면 기득권을 지키기 위해? 나도 모른다.

어느덧 보유한 진공관 앰프는 총 4 대가 되었다(하나는 헤드폰 앰프). 이제 이론을 소홀히 할 수는 없는 시기가 되었으니 DHT 사운드의 기술포럼 - 자작교실의 글들을 꼼꼼하게 읽어봐야 되겠다.

만약 앞으로 새로운 시도를 해 보고자 한다면? SMPS를 이용하여 B+ 전압을 만드는 것에 관심이 있다.

Anvi'o의 사소한 문제점 개선하기

지난주부터 Anvi'o(Advanced analysis and visualization platform for 'omics data)에 관심을 갖고서 설치 및 테스트를 진행하고 있다. 설치와 사용이 쉽고 project page에서 풍부한 문서를 제공하고 있어서 초심자도 무난하게 사용할 수 있다. 오늘은 실제 부딛혔던 사소한 문제와 그 해결책에 대한 경험을 정리하고자 한다. 돌이켜보니 그렇게 큰 좌절은 아니었었다.

설치 방법

Homebrew, conda, 직접 설치, 혹은 docker 등 몇 가지 방법 중에서 원하는 것을 택하면 된다. 나는 처음에 conda를 이용하여 아주 쉽게 설치를 했으나 프로젝트 페이지에서 설명한 몇 가지 스크립트가 아예 깔리지 않은 것을 발견하였다. 왜 이런 일이 발생했는가? 그 이유는 다음과 같다.

  • Anvi'o의 실행에는 python 3이 필요하다. 이것을 미처 모르고 python 2.7 기반의 conda environment에 Anvi'o를 설치했던 것이다.
  • 프로젝트 페이지에 설명된 기능은 최신판인 v5.1을 기준으로 한 것이다. 예를 들어 function enrichment analysis와 ANI 분석 같은 것은 예전 버전에는 구현되지 않았다. 아쉽게도 Anvi'o의 bioconda 패키지는 v4.0이다.
다른 workflow가 잘 도는 것을 확인했음에도 불구하고 ANI 계산용 스크립트인 anvi-compute-ani가 아예 존재하지 않았다. 왜 그런지 탐구해 보니 위에서 나열한 두 번째 이유에 의한 것이었다. 그래서 docker image를 사용한다면 번거로운 설치 과정을 거치지 않고도 anvi'o의 모든 기능을 사용할 수 있을 것으로 생각했었다. 그러나...

Anvi'o docker image의 사소한 문제

Docker의 정의를 내린다면 "an open platform for distributed applications for developers and sysadmins"라 할 수 있다. Docker가 어떻게 돌아가는지를 깊게 이해하지 못해도 개발자가 배포한 이미지를 가져와서("docker pull <이미지 이름>") 컨테이너를 생성하는 것("docker run <이미지 이름>")으로 실행한다는 것 정도만 기억하면 족하다. 도커 컨테이너는 이미지가 실행된 상태를 뜻한다. 사실은 문제 해결을 위해서는 이보다 조금은 더 깊은 지식이 필요하다.

$ docker run --rm -p 8080:8080 -v /home/merenbey/my_data:/my_data -it meren/anvio:latest
:: anvi`o ::  / >>>

위와 같이 실행하여 anvi'o의 최신판 v5.1의 이미지를 실행하였다. 기본적인 pangenome 분석은 해 놓았고, 이어서 anvi-compute-ani을 실행하여 ANI 분석을 시도하였는데 다음과 같은 에러가 발생하는 것이었다.
Config Error: PyANI returned with non-zero exit code, there may be some errors. please check the log file for details.
 실제 ANI의 계산은 PyANI(average_nucleotide_identity.py)에 의해 이루어진다. 왜 이런 에러가 발생하는 것일까? PyANI의 로그 파일을 열어보았다. vim 등의 기본 에디터가 없어서 좀 불편한다.


pandas가 없다고? pip를 이용하여 설치된 python library를 확인하려는데 pip도 없다. 이걸 어떻게 해야 하나? 컨테이너 안에서 apt-get, pip... 이런 것을 깔아야 되나? 컨테이너에서 빠져나오면 이런 설정 사항은 다 없어지는데? 약간의 삽질을 하다가 이런 문제가 생긴 원인을 발견하였다. Anvi'o에 딸린 모든 python 스크립트는  python 3을 기반으로 한다. 따라서 pip3는 존재한다. /usr/local/bin/anvi-compute-ani를 열어보면 첫 줄(흔히 shebang line이라 부름)에는 다음과 같이 씌여있다.
#!/usr/bin/python3
그러나 Anvi'o 컨테이너의 default python interpreter는? 커맨드라인에서 python -V을 치면 Python 2.7.12가 출력된다. 그렇다면 /usr/local/bin/average_nucleotide_identity.py의 shebang line은?
#!/usr/bin/env python
그렇다. PyANI 스크립트는 시스템 기본 버전인 python 2.7의 위치에서 pandas를 찾으려고 애를 쓰는 것이다!  pip3 freeze를 해 보면 python 3.x의 pandas가 잘 존재함을 확인할 수 있다. PyANI가 python3을 사용해서 돌게만 만들면 모든 문제가 해결될 것으로 생각하여 average_nucleotide_identity.py 스크립트를 편집하려 했는데, 문제는 docker container에는 편집기로 쓸만한 것이 없다는 것이다. vim을 설치하려니 apt-get update부터 시작해야 한다. 만약 호스트 터미널로 되돌아가면 컨테이너 내에 설치했던 프로그램은 전부 사라질 것이다. 이를 유지하는 방법은 나중에 생각해 보기로 하자.

다소 번거롭지만 vim을 설치하여 /usr/local/bin/average_nucleotide_identity.py의 첫 줄을 #!/usr/bin/env python로 수정한 다음 anvi-compute-ani를 실행해 보았다. 이번에는 아무런 에러가 없이 잘 진행이 되었고 ani-display-pan으로 그 결과를 확인하였다. 웹브라우저를 연 뒤 Layer 탭으로 가서 ANI 관련 사항을 체크한 뒤 그림을 다시 그려야 ANI heatmap이 보인다. Layer는 anvi'o의 시각화에서 매우 중요한 개념이므로 관련 문서를 찾아서 철저히 읽어봐야 되겠다. 데이터 파일이 있는 디렉토리에 shebang line을 수정한 average_nucleotide_identity.py 스크립트를 준비해 둔 다음 컨테이너 내에서 이를 /usr/local/bin/ 위치에 복사하는 것도 일종의 꼼수가 되겠다.

average_nucleotide_identity.py을 고치기가 귀찮다면 /usr/bin/python3를 /usr/bin/python이란 이름으로 바꾸어도 된다. 어차피 python 2.7은 필요가 없고, 컨테이너를 나가면 아무런 흔적을 남기지 않기 때문이다.

Docker 내부에 프로그램 설치하고 재활용하기

다음 웹페이지에서 힌트를 얻었다. 두번째의 PDF 파일은 무작정 따라하면서 기본 개념을 익히는데 도움이 될 것으로 생각한다. 그런데 여기에서 지시한대로 따라하면 docker import가 잘 되지 않는다. 세번째 자료도 매우 잘 작성되어서 도움이 많이 될 것이다.

[pyrasis.com] Docker 기본 사용법 추천!

docker run으로 Anvi'o 컨테이너를 생성하여라. 그 안에서 apt-get update, apt-get install vim을 하여 필요한 프로그램을 설치하고 /usr/local/bin/average_nucleotide_identity.py도 편집을 하여라. 그 다음 별도의 터미널 창에서 docker ps를 하여 현재 돌고 있는 Anvi'o 컨테이너의 ID를 확인한다. 이제 docker commit 명령을 실행할 단계이다.
# docker commit e47956140b67 my_docker_image
Image의 이름으로 쓸 수 있는 문자에는 한계가 있다. 오직 [a-z0-9-_.]만 허용이 된다. 이렇게 하여 나만의 docker image를 만든 것이다. 이를 실행하려면 docker run [options] my_docker_image를 하면 된다. 그 안에서는 vim도 실행이 되고, average_nucleotide_identity.py도 변경된 shebang line을 유지하고 있다.

아직도 docker run --rm의 의미를 이해하지 못하고 있다!

--rm 옵션은 컨테이너가 종료되었을 때 이를 자동으로 제거한다. 이 옵션이 없으면 현재 실행 중이 컨테이너의 변경 상태(패키지 설치, 파일 생성 및 변경 등)가 다음번에 docker run을 실행할 때에도 유지될 것 같은데 실제로는 그렇지 않다. 내가 아직도 docker에 대한 기본 이해가 부족한 것이다.

2018년 7월 6일 금요일

물레야 물레야

이두용 감독의 1984년도 영화 <여인 잔혹사 물레야 물레야>를 말하는 것이 아니다.


바로 어제, 직접 만든 수동 권선기를 가지고 손잡이를 돌려가면서 진공관 앰프용 출력 트랜스에 들어갈 코일을 직접 감았던 것이다. 돌린 횟수는 총 4200 회! 보빈 4 개에 각각 1050 회씩 에나멜선을 감은 것이다. 아직 완성은 하지 못했고 진공관에 연결되는 1차측 코일을 감고 테이프로 가장 바깥쪽에만 마감을 한 상태이다. 원래 제대로 감으려면 한 층을 감고, 절연테이프를 두른 뒤 다시 두번째 층을 감는 식으로 해 나가야 한다. 더욱 고급스런 트랜스를 만들려면 1차와 2차를 번갈아 겹겹이 감기도 한다. 이를 샌드위치 권선이라고들 한다. 생전 처음 트랜스를 감는 나는 그렇게까지 정성을 들일 수는 없었다. 1차를 한번에 다 감고, 그 위에 절연테이프를 두른 다음 2차를 감는 것으로 끝내려고 한다.


처음에는 위의 사진처럼 가지런하게 정렬 권선으로 시작을 하였다. 그러나... 두 층을 넘어가면서 모양새는 점차 흐트러지더니...



결국은 이렇게 '막감기'로 끝나고 말았다. 가장 첫번째로 감았던 것은 보빈 옆을 구성하는 도너츠 모양 마개가 벌어지면서 김밥 옆구리가 터지듯 에나멜선이 이탈하기 시작였다. 그래서 이를 재활용하기 위해 다시 보빈으로부터 천천히 풀고자 하였으나, 중간에 뒤엉키고 말았다. 아! 눈물을 머금고 보빈 하나를 다 감았던 에나멜선을 중간에서 끊어야 했다. 화가 나서 뭉쳐놓은 구리선 덩어리에 내 감정이 담겨있다. 아까운 구리!


R-코어에 가조립을 하여 보았다. 이 위에 2차 권선은 두 배 정도 두꺼운 에나멜선으로 각각 50 회씩을 감으면 된다. 1차용 전선 직경은 0.35 mm, 2차용은 0.7 mm이다.


R-코어 역시 도너츠 모양이지만 보빈이 끼워진 곳에서 내부적으로 잘린 형태이다. 싱글 엔디드 앰프용 출력 트랜스라서 코어가 서로 접촉하지 않게 절연체를 사이에 넣어 갭을 만든 뒤 코어를 서로 고정해야 한다. 그리고 다 만들어진 트랜스를 앰프에도 고정해야 한다. R-코어를 이용한 트랜스는 감기는 쉬운데 고정을 하는 방법을 잘 고안해야 한다. 임피던스 비율은 5 kΩ:8 Ω 되겠다.

오디오용 트랜스는 진공관 앰프를 제외하면 요즘 잘 쓰이지 않는데다가 그 이론이나 제작 기법이 널리 공유되고 있지 못하다. 나 역시 동호회에서 배운 정보와 실험 정신만으로 그냥 시행착오를 겪는 중이다. 트랜스와 관련된 이론 중에서 가장 중요한 것은, 전압비는 권선비에 비례하고, 임피던스 비는 권선비의 제곱에 비례한다는 것이다. 

앗, 잘못 감았다! 1050:50은 5 kΩ:8 Ω이 아니라 3.5 kΩ:8 Ω용 권선 스펙이었다! 1250번:50번을 했어야 하는데... 2차를 조금 줄여서 감야야 되겠다. 5 kΩ:8 Ω = 625:1이다. 여기에 제곱근을 취하면 권선비가 된다. 625의 제곱근은 25이다. 25:1 = 1050:42이니 42회 감으면 되겠다..

오늘 글을 쓰면서 각 보빈에서 나오는 에나멜선을 어떻게 연결하는지에 대해서도 적고 싶었으나 그림을 그리지 않고서는 말로 하기가 너무 어려워서 다음 기회로 넘기기로 한다.

Anvi'o 배워나가기

Anvi'o: an advanced analysis and visualization platform for 'omics data. PeerJ 2015 (PubMed)

Anvi'o는 각종 오믹스 정보를 분석하고 시각화하는 도구이다. 주로 다음과 같은 스타일로 분석 자료를 표현한다. 한 입을 베어먹은 도너츠와 같은 형태로 각종 데이터를 시각화한다.


2 년쯤 전에 메타게놈 분석 도구인 metAMOS에 강렬한 인상을 받고 이를 활용해 보고자 노력한 일이 있었다. 그러나 python 및 부수적으로 필요한 프로그램의 설치가 너무나 까다로와서 불완전한 상태로 설치를 마무리한 뒤 몇 번의 테스트를 하는 것으로 만족하고 말았다. 특히 shotgun assembly 기반의 metagenome data가 없으면 이를 활용하기도 어려웠다. 개발자 사이트를 가끔 가 보아도 별다른 업데이트에 대한 소식도 보이지 않았다.

그러던 중에 Anvi'o라는 독특한 프로그램을 발견하게 되었다. 이것도 기본적으로는 shotgun sequencing 기반의 metagenomics에 어울리는 도구이다. 단, co-assembly와 mapping은 사용자가 알아서 해야 된다. 그러나 pan-genome 분석과 phylogenomic 분석을 이 환경 안에서 할 수 있을뿐만 아니라 분석 결과를 웹브라우저에서 interactive하게 볼 수 있다.

Anvi'o의 metagenomic overflow. 빨강색 데이터는 유저가 준비해야 한다. Contig와 read mapping 파일이 이에 해당한다. 출처: PeerJ

Anvi'o을 이제 실제로 다루어 봐야 되겠다고 다짐을 한 것은 오늘 아침이다. Bioconda를 이용하여 설치를 끝내고, 테스트 스크립트를 몇 개 돌려서 이상이 없음을 확인한 다음 최근에 논문으로 투고했던 Lactobacillus rhamnosus 111종 유전체 서열의 pangenomics analysis를 시작하였다. 꼭 필요한 과정은 아니지만 지금은 Anvi'o 환경 내에서 COG annotation을 실행하고 있다.

설치가 아주 쉽게 일사천리로 진행된 것은 아니다. cherrypy 실행과 관련한 에러, 그리고 CentOS 6.9에 크롬 대신 크로미움을 설치해야 하는 문제가 있었지만 metAMOS와 비교하면 아주 사소한 것들이었다. 무엇보다 고마운 것은 Anvi'o project page에 풍성하게 준비된 튜토리얼 자료들이었다. 몇 가지 핵심적인 기본 개념만 머리에 '탑재'하면 어렵지 않게 원하는 목적의 분석을 할 수 있는 것이다. 이에 대해서는 내 위키 페이지에 별도의 정보를 정리해 나가는 중이다.

Anvi'o 설치 후 테스트 스크립트 실행 화면.

Phylogenomics 튜토리얼을 읽다가 내가 그동안 모르던 phylogenomic market set을 발견하였다. 이는 Campbell 등이 출간한 2011년 PNAS 논문 "Activity of abundant and rare bacteria in a coastal ocean(링크)"에서 소개한 것이다. 그동안 phylosift marker만 편식하던 나에게 매우 유용한 자양분이 될 것이다.

2018년 7월 6일에 추가한 글

어제의 테스트에서 anvi'o의 동작이 약간 이상하다고 생각했는데 그 원인은 python 2.7을 기반으로 anvi'o를 설치한 때문이었다. 이러한 중요한 정보는 설치 설명서 맨 위에 있었어야 하는 것 아닌가? Homebrew와 conda 등을 이용한 설치 설명에 이어서 '힘들게 설치하는 방법 - Installation (with varying levels of pain)' 파트에 있었던 다음의 경고문을 뒤늦게 발견했다. 그만큼 python 환경도 이제 3.x 버전이 대세임을 알아야 되겠다.


이미 설치가 되어있었던 python 3.5 기반 environment에 다시 설치를 하고 HMMER version을 3.1b2로 맞추니 모든 것이 정상적으로 돌아가기 시작하였다.

2018년 7월 5일 목요일

ISMapper (2015)

국문에서는 괄호와 그 앞에 오는 낱말을 붙여쓰는 것이 관례이다. 그러나 영문에서는 철저히 공백을 두어야 한다. 이 글의 제목을 적으면서도 'ISMapper (2015)'와 'ISMapper(2015)' 중 어느 것으로 할지 고민을 하다가 영문만으로 작성된 것이라서 공백을 넣는 쪽으로 하였다.

유전체 내에는 다양한 반복 서열이 존재한다. 많은 경우 이들은 유전체 내의 다른 위치로 자기의 복제본을 삽입할 수 있는 transposable element이기도 하다. Transposition이라 하면 쉽게 말하여 자리를 바꾸는 것이다. 극장이나 공연장을 찾아서 자리에 앉았는데 빈 좌석이 많은 상태로 공연이 시작되면 앞자리로 옮기는 경우가 종종 있다(나중에 그 자리의 원 주인이 나타나면 낭패!). 이것이 바로 transposition에 해당하는 현상이다. 실제로 염색체 내에서 일어나는 transposition은 원래 위치를 고수하면서 다른 자리에 자기의 분신을 끼워넣는 일이 더 많이 벌어진다. 그렇게 되어야 그 copy number가 많아지면서 반복 서열이라 불리지 않겠는가?

유전체 진화에서 반복 서열이 갖는 의미에 대해서는 별도의 주제로 다루어도 될만큼 간단하게 기술하기는 어렵다. 간혹 생명공학적 접근을 위해 IS(insertion sequence - 박테리아에서 발견되는 가장 보편적인 transposable element로서 transpoase 유전자 말고는 다른 기능이 없는 것)를 철저하게 제거하는 것을 목표로 삼는 연구 프로젝트도 있었다. IS는 유전체의 안정성을 해치는 가장 직접적인 요인이 되기 때문이다. 

내가 이 생각을 완전히 바꾸게 된 것은 대장균의 K-12 MG1655와 B strain의 유전체를 비교하는 일을 하면서부터였다. 대장균 B 스트레인의 생물공학적 유용성을 이야기할 때 빠지지 않는 것은 OmpT 및 lon protease가 없어서 재조합 단백질을 온전한 형태 그대로 생산하는데 매우 유리하다는 것이었다. 하지만 이들 단백질 분해 효소가 그 기능을 발휘하지 못하는 것은 IS와 관련된 현상으로 확인되었다. 있으면 안될 것만 같은 IS가, 오히려 특정 유전자를 망가뜨림으로서 결론적으로는 인류가 이를 이용하는데 유익한 특성을 제공하고 만 것이다!

만약 우리가 배양 조건을 영원히 고정할 수만 있다면, 박테리아의 유전체는 엔지니어링을 했던 그대로 유지되는 것(즉 높은 안정성)이 유리할 것은 자명하다. 그러나 자연적인 환경 조건은 늘 변하는 것이라서 박테리아는 이에 대처하여 '자기 혁신'을 이루어야 한다. IS가 이러한 혁신(돌연변이)의 원동력으로서 크게 기여한다는 것이 나의 철학이다. 마치 요즘 나오는 수퍼히어로 영화에서처럼 선과 악의 구별이 명확하지 않은 것과 비슷한 상황이다.

서론이 쓸데없이 길어졌다. 오늘의 글감으로 삼은 것은 NGS 유래 short read sequencing data를 이용하여 IS의 삽입 위치를 찾아내는 소프트웨어인 ISMapper이다.
ISMapper: identifying transposase insertion sites in bacterial genomes from short read sequence data. BMC Genomics 2015 (PubMed GitHub)
삽입된 IS의 위치는 프로그램 실행 시 제공하는 reference genome 상의 포지션을 기준으로 나타내어 준다. Simulated read와 real data를 사용하였을 때 각각 97%와 98%의 비율로 IS의 삽입 위치를 찾아내는 성적이라면 나쁘지 않다. 단, 이 소프트웨어는 IS를 스스로 찾아주는 것은 아니다. 찾아내고 싶은 IS의 서열을 query로서 제공해 주어야 한다. 주어진 염기서열에서 IS를 찾는 것은 ISfinder를 활용해야 한다. ISMapper의 작동 방법은 다음의 그림에서 설명하고 있다. IS가 삽입된 경계 부위에서 발생한 sequence read는 IS query와 삽입 위치 전부에 매핑이 될 것이니 이를 찾아내는 것이 핵심이 될 것이고, 가능하다면 IS의 삽입 표적에서 duplication되는 서열도 확인하려고 노력한다.

출처: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4558774/figure/Fig1/
결과는 reference genome을 기준으로 IS 삽입 위치를 제공하는 것이므로 reference와 동일한 위치에 삽입되었거나 혹은 novel 위치에 삽입되었음을 구별해 준다. 그리고 여러 샘플을 시퀀싱한 경우 이를 종합한 표를 만드는 유틸리티도 제공한다.

결과의 시각화 방법에 대해서는 아직 고민을 하는 중이다. 원형? 선형? 만약 샘플이 100종에 육박한다면 어떻게 이를 효율적으로 표현할 것인가? Anvi'o를 이번 기회에 활용해 보는 것은 어떨까?

만약 나에게 컴퓨터와 무한한 시간이 주어진다면 IS, prophage, restriction-modification system... 이런 것의 의미에 대해서 연구하고 싶다.

2018년 7월 3일 화요일

손으로 그린 genome alignment

박테리아의 유전체 진화 과정에서 마치 점돌연변이가 가장 빈번하게 일어날 것으로 흔히들 생각하지만(multiple sequence alignment에서 보여지듯), 실제로는 좀 더 과격한 변화가 더 많이 일어나는 것 같다. 예를 들자면 IS(insertion sequence)의 transposition이라든가, 아니면 Ter site, 즉 복제를 개시하는 원점인 oriC의 180도 반대편에 있는 지점을 중심으로 하여 염색체 단편이 뒤집어지는 일이 흔히 벌어진다. 이는 whole-genome alignment plot을 그리면 쉽게 파악할 수 있다.

간혹 교차가 두 번 일어나기도 한다. 최초에 inversion이 일어난 단편 내에서 두번째 뒤집힘이 일어날 수도 있고, 이를 포함하여 그 외부에서 일어날 수도 있다. 더욱 복잡하게는 한쪽 경계는 뒤집힘이 일어난 내부이고 반대편 경계는 원래의 이중나선일 때이다. 이를 쉽게 파악하기 위해 손으로 그림을 그려보았다. Reference와 query는 a-b-c-d-e-f의 조각이 순서대로 배열된 형태인데, 이 중에서 일부가 떨어져나가서 180도 방향을 바꾼 뒤 다시 연결되는 상태를 가정해 보았다. Reverse complementary 형태가 된 서열 조각의 위에는 bar를 그렸다.


맨 위 왼쪽의 A는 최초의 뒤집힘이 일어난 상태이다. 그 다음에 일어난 뒤집힘이 이전 것의 내부에서 일어나거나 혹은 완벽히 외부에서 일어난다면 아래 왼쪽의 파랑색 네모로 둘러친 것처럼 alignment가 생성될 것이다. 나머지 경우, 즉 복합적으로 두번째 뒤집힘이 일어난다면 오른쪽에 그린 그림(Ia 또는 Ib)와 같이 될 것이다.

Whole genome level에서 두 서열 사이의 관계를 맺는 것, 이를 nucleotide alignment로 확장하는 것, 그리고 이를 시각화하는 것은 모두 별개의 문제이다. 1999년에 최초 버전이 발표된 MUMmer는 아직까지도 이러한 목적의 유전체 분석에서 매우 유용하게 쓰이고 있다. 지금은 존스 홉킨스 대학에서 근무하는 Arthur Delcher에게 감사를!(구글 스칼라 링크)

2018년 7월 1일 일요일

독서 기록 - <생각의 지도>외 다섯 권


생각의 지도(원제: The Geography of Thought)

  • 부제: 동양과 서양, 세상을 바라보는 서로 다른 시선(How Asians and Westerners thinks differently...and why)
  • 리처드 니스벳 지음 | 최인철 옮김
동양인(이 책에서는 한자 문화권에 속하는 동아시아 한중일 3개국을 의미함)과 서양인의 생각의 차이를 역사·문화적 배경과 심리학적 원리에서 설명한 책이다. 잘 알려진 실험을 하나 소개해 보자. 닭과 소, 풀을 한번에 보여주고 서로 관계가 있는 것끼리 묶으라고 하면 동양인은 소와 풀을 묶는다. 소는 풀을 먹고 살기 때문이다. 그러나 서양인은 닭과 소를 묶는다. 둘은 동물이라는 공통점이 있지만 풀은 식물이기 때문이다. 동양인은 전체적인 맥락 하에서 관계를 중요시하지만 서양인은 개별적인 개체가 갖는 (변하기 어려운) 속성에 더 주목한다. 총기 난사 사건을 보도하는 기사에서도 동양인은 그 범죄자가 처한 상황에 주목하는 반면 서양인은 그 범죄자 개인의 폭력적인 성향에 주목한다. 이러한 사고의 차이가 어떻게 나타나는 것인지, 이 차이를 옳고 그름의 기준으로 판단할 수 있을지, 앞으로 두 세계의 생각 차이가 수렴할지 혹은 서로 타협하기 어려운 '문명의 충돌'로 귀결될지에 대하여 논하였다. 저자는 두 문화가 서로 수렴하여 가운데 지점에서 만나게 될 것을 기대하면서 이 책을 마무리하였다.

지난 500년 동안 서양은 과학기술과 자본주의를 무기로 사실상 세계를 지배하고 있다. 왜 동양은 이렇게 무력한 존재가 되고 말았을까? 그 원인으로서 동양적인 문화와 사고방식의 '열등성'을 떠올리는 것은 대단히 불쾌한 일이다. 대체로 한국인(동양인 전체?)은 질문을 잘 하지 않고, 강연장에서도 앞자리에 앉는 것을 꺼린다. 하지만 질문을 제기하지 않는 특성 하나를 가지고서 세상에 의문을 제기하고 개선하려는 노력(과학기술 및 공학의 목표이기도 하다)이 태생적으로 적은 사람들이라는 결론을 내려도 좋을까? 동양 철학 체계에서 논리학이 뿌리내리지 못한 것은 분명 불리한 일일 수도 있다.

이것 아니면 저것만이 옳다는 편협한 사고도 위험하고, 문화의 충돌을 예견하는 것도 바람직하지 않다. 일단 두 세계의 사고 체계가 매우 다름을 인식하는 것이 대단히 중요하다고 생각한다.

시장은 정의로운가

  • 부제: 서울대 이정전 교수의 경제 정의론 강의
  • 이정전 지음
완벽한 시장이란 무엇일까? 내 나름대로 정의를 내려 보았다. 물론 이는 나의 독창적인 생각이 아니고, 독서나 인터넷 정보 검색 등을 통해서 형성된 것이다.
  1. 경제 주체들은 모두 100% 자발적인 의사에 의하여 시장에 참여한다.
  2. 시장에서 거래되는 물건의 품질과 가격 정보는 100% 투명하게 공개된다.
이러한 전제조건이 지켜진다면 시장은 수요-공급 곡선에 의해서 완벽하게 움직일 것이고, 누구나 정당한 몫을 가져가며, 여기에 참여하는 모든 경제 주체는 전부 만족스런 결과를 얻을 수 있을 것이다. 그리고 시장은 옳고 바름과는 상관이 전혀 없는 메커니즘이라는 주장이 설득력을 얻을 것이다. 그렇다면 여기에서 소외되어 어려운 생활을 이어가는 사람들은 모두 자발적인 선택에 의한 것이고, 남들은 그렇지 않을 때 노력(요즘 분위에게서는 부유한 부모를 만나는 것이 가장 중요하다)을 통해 충분한 경쟁력을 갖추치 못한 것을 비난받아야 할 것인가? 
시장에도 '정의'가 필요한 때가 왔다. 우리가 어떻게 이걸 풀어나가야 하는지는 아직 분명하지 않다. 그러나 한 가지 확실한 건 '정의가 사라져버린 시장'에 대한 논의를 시작할 때가 왔다는 것이다. - 마이클 샌델

이상한 나라의 경제학

  • 이원재 지음
저자에 의하면 지금까지 당연한 것으로 여겨오던 경제학의 상식은 사실 이상하다. 시장에서는 모두가 이기심을 추구하는 것이 옳고, 경쟁은 항상 높은 효율성을 가져오며, 대기업이 돈을 많이 벌어야 모두에게 좋다는 것이 지금까지의 상식이었다. 하지만 왜 2011년 7월 월스트리트에서는 "우리는 99%이다"를 외치는 시위대가 몰려들었을까? 같은 해 11월 하버드대 그레고리 맨큐 교수의 '경제학10' 강의 시간에 학생들은 왜 공개편지를 통해 수업을 거부했을까?

마지막 파트에서는 안철수와 스티브 잡스에 대한 이야기가 나오는 것은 2018년 기준으로 본다면 다소 어울리지 않는다. 이 책은 2010년에 발간되었고, 기업인 안철수는 이후 교수를 거쳐 정치에 입문하면서 이미지를 많이 구겼기 때문이다. 이 책에서는 탐욕 없는 성공의 증거로 안철수를 소개하였다. 기업가로서는 그러했는지 모르겠지만, 정치인으로서는...

전통적으로 경영자의 사명은 투입(input)을 프로세스에 넣어서 산출(output)을 만들어내는 것까지였다. 그런데 여기서 한걸음 더 나아가는 것이 성과(outcome)이라는 개념이다. 문제는 주주자본주의의 발달로 성과가 재무적인 성과만으로 치우치게 되었으며 나아가서는 이익 중심으로 극심하게 변질되고 말았다. 스타벅스는 2008년 4분기에 1800억 원의 영업이익을 내고도 그 다음 분기에 수천명의 직원을 해고하겠다는 구조조정안을 내놓았다고 한다. 바로 전년도 같은 분기의 이익에 비해 70%에 불과한 수준이었다는 이유 때문이다. 

그렇다면 우리는 어떤 대안을 생각해 볼 수 있을까? 자본이 사람을 고용하는 것이 아니라 사람이 자본을 고용하는 협동조합(아무리 출자를 많이 해도 1인 1표제), 윤리적 소비, 사회적 기업 등을 저자는 대안으로 소개하였다. 우리에게는 '탈성장 시대의 새로운 경제 문법'이 필요한 것이다.

검은 감자

  • 부제: 아일랜드 대기근 이야기
  • 수전 캠벨 바톨레티 지음 | 곽명단 옮김
지은이 수전 캠벨 바톨레티는 지난번에 읽은 책 <위험한 요리사 메리>의 저자이기도 하다(독서 기록). 평소에 어렴풋하게만 알고 있었던 아일랜드 대기근에 관한 책이다. 생물학적으로 말하자면 당시 아일랜드인이 주식으로 먹던 감자에 지독한 역병이 퍼진 때문이지만, 이것이 이렇게 비참한 결과로 이어진 것은 당시 아일랜드의 사회 구조, 특히 소작농 제도와 농업 정책 등에도 책임이 있다고 하겠다. 농민들은 굶주리지만 영국으로 수출할 농작물은 여전히 배에 실려서 아일랜드의 항구를 떠났다고 한다. 더군다나 당시 아일랜드를 지배하던 영국의 대책도 매우 미흡했다. 하지만 아직도 아일랜드 대기근을 다루는 입장은 하나로 수렴하지 않는다. 영국 정부가 대량학살을 저질렀다고 보는 입장(민족주의자), 영국이 인명을 구하기 위해 할 수 있는 모든 일을 다 했다고 주장하는 입장(수정주의자)이 그것이다.

무작정 배를 타고 살 길을 찾아 북미로 떠난 이민자들도 항해 중에 많은 사람들이 병으로 목숨을 잃었다. 사진이 없던 당시 신문에 실렸던 그림을 통해 이 책은 비극적인 기근 사태의 모습을 생생하게 전하고 있다.

당신의 행복이 어떻게 세상을 구하느냐고 물으신다면(원제: How to be alive - a guide to the kind oh happiness that helps the world)

  • 콜린 베번 지음 | 이은선 옮김
세상을 행복하게 살아나가는 '정형화된 공식'을 과감히 탈피하고 자기 내면의 목소리에 귀를 기울이며, 세상과의 긍정적인 상호작용 속에서 살아나가는 것이 곧 세상을 구하는 길이라는 것이 이 책의 주장이다. 흔히 자기계발서라고 하면 철저히 개인주의적인 입장에서 스스로를 어떻게 변화시킬 것인가에만 주목한다. 자기계발은 곧 침몰할 타이타닉호를 타고 가면서 서로 좋은 자리를 차지하려고 싸우는 것에 지나지 않는다. 저자는 이 책을 '상호계발서'라고 하였다. 상호계발의 입장에서는 서로 도와서 배가 침몰하지 않도록 노력하는 것이다. 이러한 노력은 대단한 자기 희생을 요구하는 것도 아니다. 저자는 25년 전 숭산 스님을 통해 가르침을 받았으며('오직 모를 뿐 비누'로 머릿속을 씻어라 - 현각 스님의 책으로도 출간됨) 현재 관음선원의 상임법사이기도 하다.

저자가 1년 동안 뉴욕에서 전기를 쓰지 않고 쓰레기를 배출하지 않으며 사는 과정은 이라는 다큐멘터리 영화화 책으로도 잘 알려져 있다.

조난자들

  • 부제: 남과 북, 어디에도 속하지 못한 이들에 관하여
  • 주승현 지음
저자 주승현은 비무장지대에서 북측 심리전 방송요원으로 복무하다 휴전선을 넘어서 남측으로 내려왔다. 연세대학교 입학하여 10년 만에 최종적으로 박사학위까지 받았다. 비무장지대를 건너는데는 고작 25분이 걸렸지만 한국 사회에서 정체성을 고민하며 사는 그는 아직까지도 말 그대로의 조난자인지도 모른다. 탈북민에 대한 오해와 편견을 없애고 진정한 통일시대를 대비한 실험으로서 그들과 더불어 살아가는 방법을 고민할 시기이다.