2025년 1월 8일 수요일

곧 사라질 NCBI PopSet은 무슨 목적의 데이터베이스였을까

2025년 1월에 서비스가 종료되는 NCBI의 데이터베이스(PopSet)에 관해서 공들여 공부할 필요성은 그다지 높지 않을 것이다. 그러나 게놈 고물상의 영업 활동을 위해서는 그 흔적이 사라지기 전에 '기억'을 남겨놓는 것이 중요하다고 생각한다. 그동안 내가 수집한 '고물'은 K-BDS에 전부 등록해 놓았다(링크). 오늘의 글은 스무 번째 고물을 등록하기 위하 자료를 준비하다가 알게 된 것을 기록하고자 함이다.

NCBI's PopSet Database to Retire Effective January 2025 - NCBI Insights  2024년 8월 14일

위에 소개한 글에는 PopSet 서비스 종료에 대한 불만을 털어놓는 댓글이 있었다. 소수 사용자의 의견에도 관심을 가져야 한다.

PopSet이란 무엇인가? https://www.ncbi.nlm.nih.gov/popset이라는 URL도 곧 사라질 것이다. 여기를 방문해 보면 "The PopSet database is a collection of related DNA sequences derived from population, phylogenetic, mutation and ecosystem studies that have been submitted to GenBank"라고 하였다. PopSet DB 서비스가 종료됨으로써 관련이 있는 DNA 서열을 한데 모아서 제출하거나 또는 한꺼번에 다운로드할 수 있는 편의성은 사라지고, 앞으로는 개별적인 서열로서 검색하거나 접근해야 한다고 공지하였다. 관련성이 있는 서열을 앞으로 하나의 BioProject로 묶어서 제출하는 것이 가능할까? 그건 잘 모르겠다.

하필이면 지금 이 시점에 2025년 1월 종료하게 될 PopSet을 알게 되다니? 'Bacterium NLAE-zl-H470'이라는 어떤 분리 균주의 정체를 추적하다가 PopSet이라는 것이 있다는 것을 오늘 처음 알게 되었다. 최근 게놈 고물상 활동의 일환으로서 2013-2014년도에 일루미나로 시퀀싱해 두었던 72개 미생물 균주의 raw data를 다시 점검하고 있었다. 대부분의 경우 KCTC 번호가 붙은 미생물 자원이라서 원한다면 얼마든지 분양 신청이 가능하다. 물론 약간의 사연 때문에 현재 분양이 불가능한 것도 있다.

10년이 넘게 지나면서 진작에 논문을 쓰거나 최소한 유전체 정보를 등록하여 공개라도 해 두었으면 정말 좋았을 것이다. 균주를 제공한 사람이나 시퀀싱 결과물을 들고 있는 나나 다들 바빴다고 해 두자. 72개 균주는 대부분 표준 균주였다. 따라서 이에 대한 시퀀싱 및 분석에 대한 필요성은 늘 제기되었었고, 우리가 시퀀싱한 것과는 별개로 이미 외국에서 해독을 완료하여 공개를 해 버린 것이 많다. 이러한 시점에서 굳이 노동력을 들여서 10여년 전 자료를 다시 건드리는 것이 옳은지 참 고민이 많았다. 그래도 필요한 일이라고 생각한다.

10년 전에는 k-mer analysis를 통해서 오염 여부를 정성적으로 점검하고 나서 CLC Genomics Workbench로 contig를 조립하는 정도로 그쳤다. 그러나 지금은 어떠한가? Whole-genome shotgun read로부터 phyloFlash를 이용하여 16S rRNA를 확인함은 물론이요, ZGA pipeline을 이용하여 조립 결과에 대한 QC도 실시해 나가고 있다. 다음은 ZGA의 작업 로그이다. 얼마나 친절한가? 이렇게 얻은 contig sequence를 내 리눅스 워크스테이션에 설치된 GTDB-Tk에 투입하면 species 수준의 동정 정보를 얻게 된다.

2025-01-08 12:43:03,662 - INFO - Checking input files.
2025-01-08 12:43:03,662 - INFO - Read quality control started
2025-01-08 12:43:44,026 - INFO - Reads processing started
2025-01-08 12:43:44,026 - INFO - Trimming and filtering paired end reads
2025-01-08 12:43:47,663 - INFO - Merging paired-end reads.
2025-01-08 12:44:06,678 - INFO - Read processing finished
2025-01-08 12:44:06,678 - INFO - Estimating genome size with mash using: /data/project/52_KCTC_72_microbial_genomes_2014_Apr/01_Illumina_2014-04-16/05_zga_assembly/zga_3590T/reads/lib1.u1.fq.gz, /data/project/52_KCTC_72_microbial_genomes_2014_Apr/01_Illumina_2014-04-16/05_zga_assembly/zga_3590T/reads/lib1.u2.fq.gz, /data/project/52_KCTC_72_microbial_genomes_2014_Apr/01_Illumina_2014-04-16/05_zga_assembly/zga_3590T/reads/lib1.merged.fq.gz
2025-01-08 12:44:42,683 - INFO - Estimated genome size is 2754800 bp at coverage 464.905.
2025-01-08 12:44:42,683 - INFO - Assembling started
2025-01-08 13:09:04,211 - INFO - Assembling finished
2025-01-08 13:09:04,228 - INFO - Assembly length: 2603790
2025-01-08 13:09:04,228 - INFO - Contig count: 53
2025-01-08 13:09:04,228 - INFO - N50: 235623
2025-01-08 13:09:04,228 - INFO - Checking genome quality
2025-01-08 13:09:06,804 - INFO - Bacteria marker set will be used for CheckM
2025-01-08 13:09:21,945 - INFO - Genome completeness: 98.28%
2025-01-08 13:09:21,945 - INFO - Genome contamination: 0.0%
2025-01-08 13:09:21,945 - INFO - Genome heterogeneity: 0.0%
2025-01-08 13:09:21,945 - INFO - Genome annotation started
2025-01-08 13:09:22,027 - INFO - No locus tag provided. Generating it as MD5 hash of genome
2025-01-08 13:09:22,033 - INFO - Locus tag generated: FOXIOS
2025-01-08 13:09:43,983 - INFO - Workflow finished!
2025-01-08 13:09:44,064 - INFO - ZGA ver. 0.0.9post2
2025-01-08 13:09:44,064 - INFO - Full log location: /data/project/52_KCTC_72_microbial_genomes_2014_Apr/01_Illumina_2014-04-16/05_zga_assembly/zga_3791T/zga.log

요즘 같아서는 long read sequencing technology를 이용하여 너무나 쉽게 circular chromosome을 얻어 버리지만, 많은 경우에 시퀀싱 서비스 업체를 통해서 최종 결과물만 얻게 되니 그 뒤에 숨어있는 수많은 과학과 중간 과정에서 검토해 봐야 할 단계가 생략되고 만다. 즉 연구자는 가격과 품질만을 따지는 단순한 '소비자'가 되고 만 것이다. 그 간극을 메꾸고자 함이 바로 게놈 고물상의 역할일 것이다. 왜냐하면 우리는 소비자이기 이전에 연구자가 되어야 하기 때문이다.

시퀀싱 대상 중 몇 개의 균주는 KCTC에 근무하던 연구자가 따로 입수하여 사용하던 것이다. 이들은 동정이나 특성 분석을 거쳐 공식적으로 KCTC 번호를 부여받아 관리되지는 못하였고, 이를 관리하던 연구자 중에는 이미 퇴직을 한 분도 있다. Genus 수준까지 동정이 되어 있었다면 그나마 다행인데, 어느 샘플은 Bacterium NLAE-zl-H470라고만 되어 있었다. 

무턱대고 구글에 이 명칭을 넣어 보았다. 2019년 PLoS One에 실린 논문 'Baseline human gut microbiota profile in healthy people and standard reporting template의 supporting information' 중 하나인 S6 Table <Blacklist of Filtered-nt>에, 그리고 2019년에 발간된 대만의 어느 석사학위 논문('Development of a culturomic system and isolation of a bacterial strain associated with low trimethylamine (TMA) producing phenotype', 링크)에 이 이름이 보였다. 그런데 정말 흥미로운 것은 NCBI Taxonomy에 이것이 올라와 있는 것이었다.

bacterium NLAE-zl-H470 (NCBI TaxID: 1201806)

제대로 동정도 되지 않았는데 species rank로 버젓이 올라 있다는 것이 너무나 신기했다. 연결된 nucleotide 자료(JX006681.1)로 이동해 보니 미국의 C.N. Ziemer라는 사람이 2012년에 등록한 'Bacterium NLAE-zl-H470 16S ribosomal RNA gene, partial sequence'였다. 타이틀에 따르면 이 균주는 인체 분변에 cellulose 또는 xylan/pectin을 넣어서 8주간 enrichment culture를 거친 뒤 분리하였다고 한다. BRENDA의 TaxTree Explorer에서도 bacterium NLAE-zl-H470이 보인다(링크). 아마도 NCBI Taxonomy의 정보를 그대로 가져다가 보여주는 것으로 여겨진다. Flat file의 KEYWORD는 비어있다.

Taxonomy 웹사이트 오른편에는 Nucleotide, PopSet, 그리고 Taxonomy라는 Entrez record가 보였다. PopSet이라? NCBI Taxonomy Browser에 수시로 들락거리면서 PopSet이라고 표시된 링크에는 관심을 가지지 않았었다. 클릭을 해 보았다. PopSet이 어떤 성격의 데이터베이스인지 쉽게 이해할 수 있었다.



PopSet이 서비스를 종료한다 하더라도 이를 구성하는 각 염기서열은 이미 공지하였듯 고유의 accession number를 통해 접근이 가능하다. 그러나 어떤 연구자가 무슨 목적으로 한 세트의 염기서열을 생산했는지 그 배경이나 맥락을 이해하기 어려울 것이다. 그런 차원에서는 K-BDS의 바이오프로젝트가 더욱 적합할 수 있다.

2010년에 GenBank의 하위 DB인 GSS에 Paenibacillus polymyxa의 표준균주인 ATCC 842의 유전체 염기서열을 등록한 일이 있다. Accession number는 DU532978부터 DU534724까지의 1747개의 서열 단편이었다. 클릭해 보면 'KEYWORD    GSS.'라는 라인이 보인다. GSS는 PopGen처럼 하나의 단위로 데이터를 묶어서 보여주지는 않는다.

고물을 뒤지다가 새로운 고물을 찾게 되고, 또 고물의 먼지를 털고 얼마나 쓸만한지 알아보는 과정에서 새로운 정보와 역사를 알게 되었다. '온고지신'이란 바로 이럴 때 쓰는 말일 것이다.

2025년 1월 5일 일요일

자작 R-코어 출력 트랜스포머를 고정하기 위한 마지막 아이디어

진공관 앰프 자작에 사용할 R-코어 트랜스포머를 처음으로 만들었던 것이 지난 2018년이었다. J-50이라 이름이 붙은 R-코어 한 조를 제이앨범(오디오퍼브의 소개 글 링크)에서 구입하여 총 두 차례에 걸쳐 출력 트랜스포머를 감아 보았다. 코어는 한 조인데 두 차례를 만들었다? 이게 무슨 소리인지 잠시 그 내력을 소개해 보겠다.

처음 출력 트랜스포머를 만들어서 지금은 사라진 6N1 + 6P1 싱글 앰플리파이어에 연결하여 쓰다가, 잠시 6LQ1 싱글 앰플리파이어에 적용하여 사용하였다. 그 뒤 다른 앰프(6V6GT 싱글)에 사용하기 위해 코일을 다 풀어내고 다시 감았다. 두 번째 시도에서는 전동 드릴을 이용한 권선기를 만들어서 에나멜선을 감기도 했으니 그 수고란 이루 말할 수 없다. 너무나 손이 많이 가기에 다시 출력 트랜스포머를 만들 생각은 하지 않는다. 부끄러운 경험이지만 전원용 EI 코어 트랜스포머를 다 풀어서 코어를 한 방향으로 재조립한 뒤 싱글 출력용 트랜스포머로 개조해 본 일도 있었으니...

보빈에 에나멜선을 감기 전의 R-코어 모습. 원본 글은 2022년 11월에 작성하였다(링크).


이렇게 2018년부터 2024년까지 무려 만 6년에 걸쳐 R-코어 트랜스포머를 두 번 만드는 동안에도 이를 앰프에 고정하는 가장 적당한 방법을 생각해내지 못하였다. 기성품 트랜스포머를 쓴다면 다음과 같이 볼트를 사용하여 적당히 체결하면 그만이다.

6PQ8을 사용한 푸시풀 앰프. 모양은 허름하지만 드라마 촬영 시 소품으로 쓰였다. 미술팀의 요청에 따라 생활용품을 이용한다는 제작 콘셉트에 맞추어 만들었다. 안타깝게도 그 드라마는 8회분(시즌 1) 촬영이 다 끝나고 몇 년이 지난 지금까지도 방송이 되지 못하고 있다. 이 앰프의 바닥에는 드라마에 출연한 주연 배우의 사인만이 남은 채로...

구멍만 몇 개 뚫으면 트랜스포머 고정에 아무런 문제가 없다. 기성품은 이래서 좋다.


R-코어 트랜스포머 역시 기성품이라면 고민할 필요가 없다. 다음 사진의 것은 전원용 트랜스포머(기성품)의 사례이다.



하지만 직접 코일을 감아서 만든 R-코어 트랜스포머라면? 도대체 어디 붙들어 맬 곳이라고는 없다. 아크릴판으로 상자를 만들어서 그 안에 넣고 실리콘 같은 것으로 고정하는 방법(제이앨범의 실제 사례)을 제외한다면 말이다.

이 트랜스포머 2개를 고정해야 한다.


계속 머리를 굴리다가 파이프를 고정할 때 쓰이는 새들이나 U볼트를 사용하는 아이디어를 떠올리게 되었다. 이를 아래 그림에 표현해 보았다.



먼저 반새들 아이디어. 이 방법의 문제는 위 그림에서 빨간색 원으로 표시한 곳에서 새들과 보빈 사이에 간섭이 일어날지 여부를 예측하기가 어렵다는 것이다. 호스 클램프가 사선으로 지나가기 때문에 R-코어의 직경(대략 22 mm)보다는 큰 파이프를 수용할 수 있는 것을 써야 하고, 한쪽에서만 고정해야 할 뿐만 아니라 PCB 서포트의 길이가 고정 강도에 영향을 미칠 것이 자명하다. 

따라서 지금으로서는 U볼트를 쓰는 두 번째 아이디어가 더 나아 보인다. 양쪽에서 M6 너트로 조이면 되니 균형을 맞추는 데에도 문제가 없고 보빈이 으스러지지 않을 정도로만 적절히 잘 조이면 된다. 실측과 계산으로 선정한 U볼트는 국내에서 구하기 어려운 규격(M6 x 48 x 68 mm)이라서 알리익스프레스에서 구입하고자 한다. 참고로 U볼트는 KS 규격이 따로 없어서 국내에서는 인치 규격으로 만들어진다고 한다.

U볼트를 먼저 구입하여 문제가 없는지 확인한 다음 고정용 구멍의 크기와 위치를 확정한 뒤 상판 설계 작업을 마무리하는 순서로 진행하면 될 것이다. 


2025년 1월 18일 업데이트

알리익스프레스에서 주문한 U볼트가 배송되었다. 아래 사진에서 측정한 부분이 48 mm가 되어야 하나 실제로는 이보다 더 크다. 나사산이 파인 양 끝이 완벽한 평행을 이루고 있지도 않다. U볼트라는 것이 보통 강관을 고정하는 용도로 쓰이므로 외형이 그렇게 정밀할 필요는 없겠지만 도면을 수정할 필요가 있다.



사진에서 보인 사각와셔의 구멍 크기와 간격을 참조하여 도면을 수정하도록 하자.

공연을 위한 20미터 스피콘 케이블 만들기

밴드 공연이 약 한달 앞으로 다가왔다. 정식 공연이라 할 수는 없고 연구원 창립 40주년 기념식을 마치고 곧바로 이어서 진행하는 약식 공연이라 연주할 곡은 몇 개 되지 않는다. 엄숙한(?) 기념식이 끝나자마자 몇 분 안에 후다닥 장비를 설치해야 하는데, 과연 이것이 가능할지 모르겠다. 공연이 아무리 메인 이벤트가 아니라 해도 이렇게 진행하는 경우는 거의 없을 것이다.

강당 무대 옆의 대기실에서 몇 차례 연습을 해 오다가 시무식이 있었던 날 오후에 처음으로 무대 위로 모든 장비를 꺼내 놓고 소리를 맞추어 보았다.

나는 무대 왼쪽에서 빨간색 베이스 기타를 연주하고 있다. 베이스 줄을 퉁기면 스피커와 스탠드를 통해서 무대 바닥면이 울리는 것이 느껴진다.


강당의 관객석은 단층이며 약 280석 정도가 된다. 음향장비까지 제대로 대여할 수준으로 지원을 받는 것이 아니라서 드럼까지 마이킹을 할 수는 없었다. 모든 것을 내가 개인적으로 보유하고 있는 600와트급 파워드 믹서(Samson XML610)와 12인치급 PA 스피커로 다 감당해야 하는 상황이다. 그래도 관객석에서 소리를 들어보니 부족하다는 느낌은 들지 않았다. 별도의 사운드 엔지니어가 없어서 모든 것을 우리 멤버가 알아서 해야 하는 상황이다. 무선 송수신 시스템으로 무장한 기타리스트가 이런 상황에서 큰 도움이 된다. 직접 기타를 치면서 관객석까지 내려가서 사운드를 체크할 수 있으므로.

600와트급이라 해도 4Ω 기준이므로 좌우 채널로 따지면 각각 최대 150와트 정도로 소리를 내고 있는 상황이다. 연습을 위한 백킹 트랙까지 믹스하여 소리를 크게 내면 레벨미터에 피크가 가끔 들어온다. 관객석에 사람이 있으면 소리가 차단되므로 더 큰 파워가 필요할 것이다.

사실 이 정도 규모의 실내 공연장이라면 락 밴드 공연용으로는 2킬로와트 정도 되는 앰프 시스템이 필요할 것이다. 어쿠스틱 악기 위주의 공연이라면 같은 장소에서 이 음향장비로 충분할 수도 있다. 보유한 장비 이외의 것을 대여하기도, 사전 리허설을 하기도 매우 곤란한 상황이라서 일단은 이것으로 어떻게든 최초(?)의 공연을 진행해 봐야 한다. 

막상 무대 위에 스피커를 배치해 보니 5미터로 맞추어 만든 케이블이 너무 짧았다. 그래서 20미터로 새로 선을 만들기로 하고 50심 스피커 케이블 100미터 뭉치를 하나 주문하였다. 80심이냐 50심이냐 사이에서 많은 고민을 하다가 비용 문제로 인하여 50심으로 결정하였다. 만약 100심 원형 케이블에 더 좋은 스피콘 커넥터를 조합하여 20미터 한 조를 만들려면 그 가격이란...

100미터! 앞으로 스피커 케이블을 또 살 일은 없을 것 같다. 


기존의 것을 해체해 보니 30심짜리를 쓰고 있었던 것 같다. 굵기에 상당한 차이가 난다.

왼쪽 케이블이 새로 구입한 것이다. 좌우 채널용 케이블을 구별하기 위해 한쪽 쌍에는 흰색 수축튜브를 잘라서 끼웠다.

작업 끝.

이런 종류의 케이블은 가지런하게 둘둘 말아 놓기나 나쁘다. 5미터 정도의 마이크/악기용 케이블을 꼬이지 않게 감는 방법은 겨우 익혔는데, 내가 사용하는 스피커 케이블의 외피 재질은 그런 기법을 사용하기가 아주 좋지 않다. 현장에서 잔뼈가 굵은 스태프들은 나름대로 방법을 터득하고 있으리라.

오후에는 6.12 km를 달렸다. 하루 걸러 하루 달리기는 신년에도 계속해서 이어진다. 이제 6개월차에 접어드는 달리기 덕분에 체력이 현저하게 좋아졌는지는 잘 모르겠다. 힘이 펄펄 남아 도는 것도 아니고, 하루 종일 활력이 넘친다고 보기는 어렵다. 페이스는 여전히 부끄러운 수준이고 특별히 나아지고 있지는 않다. 운동 때문에 늘 피곤한 것도 물론 아니다. 단지 땀을 잔뜩 흘리고 집으로 돌아왔을 때 느끼는 개운함이 너무나 좋고, 외출을 해서 오래 걸어다닐 때 다리가 예전보다는 덜 아프다는 정도이다. 가장 확실한 변화는 체중 감소이다. 체지방과 근육량이 각각 얼마나 변했는지 인바디 측정을 해 보고 싶다.

2024년 12월 31일 화요일

浮生夢一場(부생몽일장) - 뜬 구름 같은 인생 한바탕 꿈이로세

'浮生夢一場', 군산 근대미술관(구 18은행)에서 촬영.

2024년 마지막 날이 이렇게 흘러간다. 어제는 5.87 km를 달리는 것으로 한 해의 운동을 마무리하였고, 오늘은 하루 휴가를 내고 잠시 바람을 쐬러 멀지 않은 곳으로 나들이를 하였다. 대전으로 돌아오는 차에서 켠 라디오 방송에서 왜 이렇게 뱀에 관한 이야기를 하나 했더니 내년이 바로 뱀의 해인 을사년이라고 한다. 

내년에는 자작 진공관 앰프를 직접 만든 샤시에 다시 조립하고자 한다. 그러려면 컴퓨터를 이용하여 도면을 그릴 줄 알아야 한다. 인쇄하여 제본해 놓은 LibreCAD 설명서(LibreCAD for Real Dummies', Johnny Heikell)를 들고 다니면서 기본 사용법을 다시 되새겨 보았다. Construction layer에서 help line을 잘 만드는 것, offset 명령어를 잘 사용하여 기존의 help line과 일정 거리를 두고 새로운 선을 그리는 것, block을 생성하면서 handle point(? 맞는 표현인지는 모르겠다)을 적절하게 정하는 것 등. 기본 기능에 대한 이해가 매우 부실했었던 것 같다. 대단히 중요한 스내핑(snapping)의 개념도 아직 완벽하게 이해하지 못하였다. LibreCAD 공식 문서의 Snapping 항목에 따르면, 스냅이란 마우스를 이용하여 정확한 곳에 위치하도록 만드는 행위를 뜻한다. 특히 Snap Center와 Snap Middle을 잘 구별하는 것이 중요하다. 전자는 원이나 타원에 적용되며, 후자는 선이나 사각형 변을 몇 등분하는 선분을 새로 그을 때 매우 유용하다.

다음은 위에서 나열한 것(전부는 아님)을 포함하는 예제이다. 


간단히 설명하자면 다음과 같다. 방법을 알아내면 별 것이 아니지만, LibreCAD for Real Dummies 문서만 탐독해서는 쉽지 않다. 마우스 클릭도 중요하나 명령어를 직접 입력하여 넣는 것에도 익숙해지면 정말 편리하다.

  1. 사각형을 하나 그린다.
  2. Explode 명령으로 각 변을 분리한다.
  3. Offset 명령으로 변 2개를 사각형 외곽에 더 그려 넣는다. 기존의 변을 대체하는 것이 아니라 새로 생기는 것임에 유의하라.
  4. 3개(가로) 및 2개(세로)의 tick을 등간격으로 그린다. 'Snap Middle'을 활용하라.

며칠에 한번 정도라도 매만지지 않으면 사용법을 계속 기억하기가 어렵다. 동영상 강좌를 포함하여 온라인 세상에 상당히 많은 LibreCAD 활용법 자료가 많이 있지만, 자신의 경험을 통해 직접 기능을 익혀 나가는 것만큼 좋은 배움은 없다. 필요하다면 나만의 노하우를 정리해서 공개하는 것도 좋을 것이다. 게다가 치매 예방용으로는 도면 그리기보다 좋은 활동이 없다. 

오늘 작업의 중간 결과물. 진공관 앰프를 위한 상판을 설계하는 중이다.

약간의 목공과 CAD, 그리고 납땜이 들어간 새로운 작품이 2025년에는 나올 수 있을까? 새롭다고 할 것은 없다. 어느 정도 프로토타입 형태로 검증이 된 자작 앰프에게 멋진 새 집을 지어주려는 것에 불과하니까 말이다.  

2025년에는 모든 불확실성이 사라지고 상식이 통하는 건전하고 안전한 사회가 되었으면 좋겠다. 나도 달리기를 게을리 하지 않을 것이다.

이처럼 더 많은 일을 하려는 희망을 갖고서 세상을 바꾸어 보려는 노력을 새해에도 멈추지 않겠다고 다짐하지만, 결국은 '뜬 구름 같은 인생, 한바탕 꿈(부생몽일장)'이 아닐까? 인생을 도면 그리듯이 설계할 수 있다면, 또 설계한 그대로 따라서 실행할 수 있다면 정말 좋겠지만 그것은 환상에 불과하다. 계획대로 흘러간다면 그것은 인생이 아니다.

<부생몽일장>이라는 글귀의 원문 소개는 여기에서 볼 수 있다. 금나라 때의 시인 왕정균(1156~1202)의 작품에 나온다고 한다.


2025년 1월 7일 업데이트

며칠을 고생하여 앰프 상판의 도면을 조금씩 완성해 나가고 있다. 종이에 인쇄하여 놓으니 제법 그럴듯하다. 치매 예방을 위하여 코딩을 하는 것도 좋고, 그림을 그리거나 악기를 연습하는 것도 좋다. 도면 그리기도 적극 권장할 만한 활동이다.



LibreCAD를 붙들고 있는 시간이 늘어날수록 도면의 품질이 더욱 좋아짐은 당연하다. 레이어를 여러개로 나누고, 특히 construction layer를 잘 활용하면 마우스를 이용하여 아주 효과적으로 도면을 그려 나갈 수 있다. 부품 고정을 위한 구멍을 잘 표현하는 것도 중요하지만, 상판과 직접 접촉하지 않는 곳에서 서로 간섭하지 않도록 세심하게 신경을 써야 한다. Construction layer는 그런 상황에서 매우 유용하다. 

2024년 12월 30일 월요일

거울 속의 나는 왼손잡이요, 내 악수를 받을 줄 모르는... "Risks of mirror life"

한국바이오안전성정보센터에서 오늘 공개한 따끈따끈한 KBCH 브리핑을 공유하고자 한다. 작성자는 KAIST 생명과학과 송지준 교수이다.

거울상 박테리아 기술보고서에 대한 리뷰(2024-20)

챗GPT 4o에게 그림을 그리게 하였다. 프롬프트는 다음과 같다. "박테리아가 거울을 바라보면서 여기에 비친 (자기) 모습을 보고 놀라는 그림을 하나 그려 줘." 왜 놀랐을까? 생각보다 예뻐서?

거울을 향해 악수를 청하기 위해 오른손을 내밀었다고 가정하자. 거울 속의 내 손을 현실로 가져와서 아무리 내 오른손과 포갠다 해도 맞지 않는다. 거울 속에 비친 오른손은 실제로 왼손의 모양이기 때문이다. 분자 수준에서 나타나는 이러한 현상을 chirality라고 한다. 많은 생체분자(탄수화물, 아미노산, 뉴클레오티드 등)가 이러한 방향성을 지닌다. 생명체는 그중에서 한 가지 방향성의 물질을 이용하고, 또 그러한 분자를 기반으로 증식을 하도록 진화해 왔다. 왜 두 가지 옵션 중에서 하필이면 '그' 방향을 선택하게 되었을까? 만약 이를 합리적으로 설명할 수 있고 실험적으로도 증명이 가능하다면 노벨상을 탈 수 있으리라. 순수한 화학 반응의 결과에서 chiral product가 생길 경우, 서로 거울상인 것이 1:1로 만들어진다. 하지만 효소가 이 반응을 매개하면 어느 하나의 형태만 생겨난다. 이는 아주 오래전에 생화학 및 유기화학 과목을 공부하면서 배웠던 기초적인 내용이기도 하다.

요즘 들어서 급격하게 발달한 합성생물학 기술을 이용하면, 현존하는 박테리아와 완벽하게 거울상인 것(mirror life)을 가까운 시일 내에 만들 수 있을 것으로 보인다. 만약 이런 박테리아가 생태계에 방출된다면, 기존의 면역 체계로는 이를 인식하지 못할 것이므로 절대로 퇴치할 수 없는 병원균으로 작용할 수도 있고, 생태계를 뒤흔들 가능성도 있다.

물론 지금의 기술은 거울상 핵산이나 단백질을 겨우 만드는 수준이라고 한다. 만약 놀라 자빠질 수준의 합성생물학 기술이 나와서 현존하는 대장균과 완벽히 거울상인 것을 만들어냈다고 치자. 하지만 대장균은 종속영양생물이다. 다른 생명체가 만들어 놓은 유기물이 있어야 이를 이용하여 에너지를 얻고 스스로를 복제하는데 재료가 되는 building block을 만든다. 하지만 다른 생명체가 만든 chiral 유기물(즉 substrate)은 거울상 대장균의 효소 시스템이 인식하지 못한다. 예를 들어 지구상에서 매우 보편적인 단당류인 포도당은 D-form이다. 거울상 대장균은 L-form 포도당을 먹어야만 살 수 있다. 왼손 장갑이 오른손에 맞지 않는 것과 같은 이치이다. 최소한 나의 화학 지식으로는 그러하다.

따라서 거울상 박테리아가 최소한 지엽적으로라도 생태계에 문제를 일으키려면, 광합성 또는 화학합성 세균과 같이 독립영양을 할 수 있어야 한다. 이때 필요한 물, 이산화탄소 및 기타 무기물 분자와 같이 chirality가 없는 물질('achiral')만으로 독립영양 생활을 할 수 있는 인공 생명체가 만들어지는 수준은 되어야 이제 이에 대한 생물학적 위협을 논할 수 있다. 

이는 이미 대학교 수준의 생물학 교과서 연습문제에 나올 만한 이야기이다. 실제로 나도 어느 책에서 이러한 문제를 본 것 같다. 따라서 거울상 '인공' 생명체의 위험성에 대해서는 아직 그렇게 걱정할 필요는 없을 것 같다. 하지만 이렇게 뻔한 결론이 날 수준의 걱정을 두고서 기술 보고서까지 나올리는 없다. 내가 뭔가 놓친 것이 분명히 있을 것이다.

오늘 소개한 리포트는 다음의 글 두 편에 기초를 두고 있다.

여기에서 두 번째 자료의 14-15쪽을 보면, 대장균이 이용하여 자랄 수 있는 achiral 탄소원 및 질소원을 보여주고 있다. 생각보다 꽤 그 종류가 많다. 흠, 그렇군... 이런 물질이 풍부한 자연환경이라면, 오늘 당장 거울상 대장균을 만들어 뿌리게 되면 폭발적으로 자라날 가능성이 있다. 그것은 하수구 속이 될 수도 있고, 나의 뱃속이 될 수도 있다.

이런 세균이 만들어내는 독소가 인체에 해를 끼칠까? 만약 그 독소가 chiral한 것이라면, 아마 인체에서 적당한 타겟을 찾지 못할 것이다. 하지만 이것은 지나치게 낙관적인 예측이다. 특별한 독소를 만들어내지 않는다 해도 인체에 유입된 외래 미생물이 통제 불가능하게 증식하기 시작하였다면 이는 이미 재앙이다.

인류 발전의 원동력은 {자연에 맞서서 생존하기 위한 투쟁} + {호기심 충족}이라고 생각한다. 그 결과물이 당장 시장에서 인정을 받지 못한다 하더라도, 호기심만큼 강력한 유인책은 없다. 호기심 충족의 부산물이 전혀 예기치 못한 결과를 가져오게 되고 때로는 인류의 존재를 위협할 수 있는 무서운 양날의 칼이 될 수 있다. 슬픈 현실이지만 이를 논의의 장으로 끄집어 내고 적절히 통제하여야 한다. 그렇지 않다면 우리가 모르는 사이에 어디선가 나쁜 의도로 이를 계속 개발하게 될 것임이 너무나 자명하기 때문이다.


거울

- 이상(李箱), 1933년 -

거울속에는소리가없소
저렇게까지조용한세상은참없을것이오

거울속에도내게귀가있소
내말을못알아듣는딱한귀가두개나있소

거울속의나는왼손잡이오
내악수(握手)를받을줄모르는―악수(握手)를모르는왼손잡이오

거울때문에나는거울속의나를만져보지를못하는구료마는
거울아니었던들내가어찌거울속의나를만나보기만이라도했겠소

나는지금(至今)거울을안가졌소마는거울속에는늘거울속의내가있소
잘은모르지만외로된사업(事業)에골몰할께요

거울속의나는참나와는반대(反對)요마는
또꽤닮았소
나는거울속의나를근심하고진찰(診察)할수없으니퍽섭섭하오


중학생 시절, 이상의 시 <거울>에 멜로디를 붙여서 노래를 만들었다는 사실을 참으로 오랜만에 기억해 냈다. 이번 기회에 완성을 해 볼까?

2024년 12월 29일 일요일

2024년 달리기는 총 300 km를 채우는 것으로 만족하자

8월부터 달리기를 시작하여 이제 누적 거리는 291 km를 넘긴 상태에서 지독한 목감기에 걸려 꼭 열흘 동안을 달리지 못했다.

'조금만 달리면 연내에 300 km를 채울 수 있는데...'

아직 회복이 덜 되었다면서 걱정하는 아내를 안심시키고 오랜만에 집을 나섰다. 어제는 매우 추웠지만 오늘은 기온이 많이 올랐다. 일요일이라서 낮에 뛸 수 있으니 다행스런 일이 아니겠는가. 기온은 영상 5도 정도라서 매우 적당한 온도였고, 달리면서 기침이 나오지 않았으니 몸 상태가 많이 좋아진 것 같다.

40분 달리기를 목표로 설정하였다. 열흘의 공백이 참 길게 느껴졌다. 달리면서 페이스가 죽죽 떨어지는 것을 느낄 수 있었으니까. 5 km를 겨우 채우고 운동을 마쳤다. 22초만 더 뛰었더라면 35분을 채울 수 있었을텐데.


오늘 달린 것을 포함하여 누적 거리는 296.6 km가 되었다. 앞으로 3.6 km만 더 달리면 300 km를 채우게 된다. 앞으로 남은 이틀 동안 하루만 가볍게 달리면 목표를 채울 수 있다.


40분 달리기는 쉽게 할 수 있다고 생각했지만, 열흘이라는 공백이 가져온 체력 저하가 꽤 크게 느껴졌다. 그나마 다행스러운 것은, 운동을 하지 못하는 열흘 동안 평소와 같은 식사량을 유지하면서도 체중이 늘지 않았다는 것이다. 약 5개월에 걸쳐 달리기를 하면서 체중은 2~3 kg 가량이 줄어들었고, 더 이상은 변동이 없는 상태이다. 어느 수준의 균형점에 이르렀다고 생각한다.

앞으로도 주 3~4회 정도 6 km 내외를 꾸준히 달려보려고 한다. 한 번에 10 km 달리기는 쉽게 달성할 수 있는 목표라고 여기지 않기로 했다. 그저 지금 수준을 유지하는 것으로는 이 목표 달성조차 쉽지 않다고 생각한다. '추가적인 훈련'처럼 몸에서 힘겹게 느껴지는 강도로 뭔가를 더 해야 10 km 달리기가 가능해질 것이다.

저녁에는 자작 진공관 앰프(6V6GT 호환관을 사용한 싱글 엔디드 앰플리파이어)의 개작을 구상하면서 몇 장의 CD를 들었다. 언제까지 이런 허름한 나무 상자에 부품을 얼기설기 연결한 상태로 쓸 수는 없으니 말이다. 사용법을 다 잊어버린 LibreCAD를 처음부터 다시 익혀야 한다. 유튜브에서 순식간에 A4 크기의 도면 템플릿을 그리는 경이로운 튜토리얼을 본 기억이 난다.


다음의 도면은 4년 전에 LibreCAD를 독학하면서 그렸던 초기 도면의 일부이다(원본 글 링크). 다시 이 수준으로 돌아가려면 매뉴얼을 붙들고 또 얼마나 씨름을 해야 할까! 레이어의 개념부터 다시 익혀 나가야만 한다. 


2024년 12월 30일 업데이트 - CAD 작업의 흔적을 찾아내다 

작년 봄에 6V6 SE 앰프를 위한 상판 도면을 이미 완성 수준으로 만들어 놓고서는 까맣게 잊어버리고 있었다(원본 글 - LibreCAD의 한글 표기 문제). 아마 집에서 쓰는 노트북 컴퓨터의 하드디스크 어딘가에 '6V6 SE amplifier top plate (20240407).dxf' 파일이 남아 있을 것이다. 이것을 바탕으로 조금만 작업하면 곧바로 가공을 맡길 수준의 도면이 나올 것이라 믿는다.






춘장대해수욕장에서 맞은 2024년의 마지막 토요일

강추위와 함께 눈발이 흩날리던 토요일(어제), 아내와 함께 차를 몰고 서해 바닷가를 가 보기로 했다. 인적 드문 겨울 바다를 찾는 것도 운치가 있다. 특히 서쪽 바다로 지는 해를 바라보면서 저물어 가는 한 해를 아쉬운 마음으로 떠나 보내는 기분을 느끼느 것도 나쁘지 않다.

변산반도쪽으로 내려갈 생각도 조금 해 보았지만 그러려면 조금 더 일찍 집을 나섰어야 했다. 그래서 비교적 가까운 무창포해수욕장을 목적지로 택했다. 그러나 서천공주고속도로에서 서해안고속도로로 접어 든 후 북쪽으로 한참을 올라가야 무창포IC로 나갈 수 있어서 목적지를 바꾸어 그보다 남쪽에 있는 춘장대IC로 빠져나왔다. 춘장대해수욕장이 더 가까울 것이라고 단순하게 생각했었다. 

무창포해수욕장은 IC에서 매우 가깝지만 춘장대해수욕장은 그렇지 않았다. 호젓한 시골길을 달려 쓸쓸한(?) 겨울 해수욕장에 도착하였다. 무창포나 대천해수욕장은 몇 번 가 보았지만, 춘장대는 처음이다. 사람이 거의 찾지 않는 겨울 해수욕장이지만 그래도 몇 군데 식당은 문을 열지 않았을까? 해수욕장 입구를 통과하지 않고 좌회전을 하니 '너 한쌈 나 한쌈'이라는 쌈밥집이 보였다. 



점심으로는 솥밥정식을 주문하였다. 제육볶음을 비롯한 다양한 반찬이 하나 가득 나오고 갓 지은 솥밥이 이어서 나왔다. 밥을 공기에 덜어내고 뜨거운 물을 부어 누룽지가 떨어지도록 잠시 기다린다. 손님도 제법 많았다. 아마도 이 지역에서는 꽤 알려진 맛집인 것 같았다. 어차피 손님이 적어서 기껏해야 해물칼국수 정도나 먹을 수 있으리라 생각하고 집을 나섰는데, 의외로 정갈하고 푸짐한 식사를 하게 되어 매우 만족하였다.

점심을 먹은 뒤 바닷가 가까운 곳에 차를 세우고 잠깐 모래사장을 거닐어 보았다. 풍차가 놓인 광장에는 연 같은 것을 들고 바람을 이용하여 스케이트 보드를 타는 '어르신'이 있었다. 세차게 돌아가는 두 대의 풍차는 바람의 힘으로 돌릴 수는 없는 것일까? 가까이 가 보니 전기로 돌아가는지 작동 시간이 적혀 있었다. 



전망이 좋은 건물 3층의 카페에 자리를 잡았다. 세찬 바람을 맞으며 연을 날리는 사람도 있었다. 



연이라... 지난 가을 경주에서 스포츠 카이팅을 하는 사람을 보았었는데, 그 연은 이런 모습이 아니었다. 오늘 춘장대해수욕장에서 본 것은 거의 패러글라이딩 수준이었다. 바람을 이용하여 뭔가 이동을 하는 액티비티로 여겨진다. 조금 더 검색을 해 보니 '카이트 보딩'이라는 것에서 사용하는 물건이었다. 바다로 들어갈 수는 없는 계절이니 모래사장에서 '연'을 다루는 연습을 하는 것일 수도 있겠다. 안그래도 모래밭에 웨이크보드가 세워져 있는 것을 보았었다.

짧은 추억을 남기고 다시 대전으로 향한다. 서해안 고속도로를 따라 조금만 더 내려가면 군산이다. 군산에 마지막으로 갔던 것은 지난 6월이다. 다음 나들이 때에는 군산의 맛집을 하나 정해서 다녀와야 되겠다. 군산비어포트도 한번은 가 봐야 하지 않을까?