2021년 7월 27일 화요일

NCBI의 datasets 명령어 알아보기

평소에 NCBI에서 미생물 유전체 자료를 밥먹듯이 다운로드하는 나로서는 웹 브라우저뿐만 아니라 명령행 환경에서도 쓸 수 있는 EDirectncbi-genome-download와 같은 유틸리티가 얼마나 고마운지 모른다. Bactopia에서는 주로 ENA를 대상으로 하여 SRA 데이터를 간편하게 다운로드할 수 있는 기능을 제공한다. 물론 SRA Toolkit있지만 BioProject accession에 연결된 raw sequencing read를 다운로드하기에는 'bactopia search'를 활용하는 것이 훨씬 편리하다.

어떤 미생물 종의 유전체 해독 현황을 알아보기 위해 오늘 NCBI 웹사이트에 접속하여 검색을 해 보았다. 그랬더니 흔히 보던 검색결과 옆에 이런 안내문이 눈에 뜨인다. 오늘 처음 발견한 것은 아니다. Quickstart: command-line tools를 클릭해 보았다.

간단한 설명을 보자. datasets은 NCBI에서 대량의 생물학적 서열 데이터를 다운로드하는 명령어이고, dataformatJSON(JavaScript Object Notation) Lines 포맷의 메타데이터를 TSV나 엑셀 등 다른 형태로 전환하는 명령어이다. 이상의 두 가지 command line tool은 리눅스나 macOS 및 64비트 윈도우즈용 프로그램을 전부 제공한다.

Quickstart guides에서는 주로 인간 유전체에 대한 활용 사례를 간략하게 설명하였다. 신종코로나바이러스 유전체 서열을 다운로드하는 방법에 대한 설명도 있다. 조금만 연구해 보면 번거롭게 assembly summary 파일을 파싱하거나 다소 난해한 EDirect 명령어 조합을 만들 필요가 없을 것 같다. 

NCBI 웹사이트에서 검색을 실시한 뒤 적당한 필터로 거른 결과물을 다운로드하는 것이 불가능한 것은 아니다. 나도 최근에 신종코로나바이러스의 유전체 수십만 건을 웹사이트에서 받아 보았기 때문이다. 그러나 안내문에 의하면 1000건 이상의 유전체 혹은 15GB를 초과하는 genome data package를 다운로드하려면 datasets 명령어를 쓰라고 한다.

과학기술정보통신부의 주도로 바이오연구데이터를 등록하기 위한 시스템을 만들고자 여러 사람이 애를 쓰고 있는 것으로 알고 있다. 단지 과제 평가를 위해서 데이터 등록 자체에만 치중해서는 의미가 없다. 등록된 데이터 자체에 대한 검색이 우선 가능해야 한다. 누가 무슨 과제를 통해서 생성한 연구 성과인지를 검색하는 것은 데이터 자체가 아니라 메타데이터에 대한 검색에 해당한다. 그 다음으로는 데이터를 쉽게 가져다가 활용할 수 있어야 한다. 그러려면 오늘 소개한 것에 해당하는 유틸리티도 개발·보급되어야 한다. 이것이 결코 쉬운 일이 아님은 너무나 명백하다.

2021년 7월 25일 일요일

FM 수신용 안테나의 보수 및 재설치

튜너의 수리도 마쳤으니(관련 글 링크) 원활한 방송 수신을 위해 옥외에 설치한 안테나도 손을 보는 것이 바람직할 것이다. 파견 근무 기간을 포함하여 약 3년 이상을 안테나 상태에 대하여 전혀 신경을 쓰지 못했다. 소자가 비틀어지고, 일부는 구부러지기까지 하였다. 인터넷으로 FM 방송을 듣게 되면서 안테나를 아예 철거해 버릴 생각을 한 적도 있었다. 하지만 튜너를 수리했으니 이에 맞추어 안테나도 보수를 하는 것이 옳지 않겠는가.

안테나를 끌어내려서 구부러진 곳을 폈다. 급전부가 있는 플라스틱 케이스을 열어보니 벌레가 고치를 지은 흔적도 있어서 깨끗이 닦아냈다. 고정 볼트에는 녹이 많이 슬었고 플라스틱 부품류도 부식이 일어나고 있다. 햇볕과 비바람에 노출된 동축 케이블의 외피 역시 변색이 되고 딱딱해졌다. 몇 년이 더 지나면 전체를 비슷한 제품으로 바꾸는 것이 나을 것이다. 이런 스타일의 옥외용 FM 수신 안테나는 현재 2만원 정도에 팔린다.

이런 스타일의 안테나를 실내에 두어도 깨끗한 소리가 나는 포인트를 찾을 수는 있다. 그러나 고정할 방법이 문제이다. 또한 콘크리트 벽에 기대어 놓으면 수신 상태는 나빠진다. 발코니라고 해도 마찬가지다.
내 블로그에는 이 FM 수신용 안테나의 설치 방법을 조금씩 바꾸었던 기록이 남아 있다. 2014년 처음 구입하여(제품 링크) 사용한 것을 시작으로 하여 마지막 글은 2018년에 작성하였다(FM 수신용 안테나 보수하기). 전부 수평 설치를 기본으로 하였고, 붐대가 처지는 것을 막기 위해 발코니 난간에 설치된 화분 받침대에 걸치는 방식을 사용했었다.

이번에는 수평으로 설치를 하였다. 또한 거실쪽이 아니라 침실쪽에 면한 난간을 이용하였다. 전과 비교한다면 동쪽으로 수 미터를 이동한 셈인데, 이렇게 함으로써 남동쪽의 열린 하늘을 바라볼 수 있는 효과를 거두었다고 믿는다. 목표는 식장산 중계소(102.1 MHz, KBS Classic FM 청주). 계룡산 중계소에서 송출되는 98.5 MHz도 잘 잡힌다.




좀 더 긴 붐대를 이용하여 안테나를 창틀에서 1.5 미터 정도 떨어뜨리는 것이 바람직하겠지만 갖고 있는 재료로는 견고하게 고정할 방법이 없다. 또 그렇게까지 하지 않아도 수신 상태는 충분히 양호하다.
동축 케이블 연결 작업까지 마무리를 한 뒤 음악을 듣는다.
누가 뭐래도 나에게 가장 중요한 오디오 소스는 튜너라는 사실은 변함이 없을 것이다.

2021년 7월 23일 금요일

인켈 튜너 TX-5400 수리

2년 동안의 파견 생활을 마치고 돌아와서 인켈 TX-5400 튜너에 외부 안테나를 연결하고 전원을 넣었더니 모든 FM 방송이 모노로만 잡혔다. 전에는 KBS 1 FM의 스테레오 수신만 불량한 상태였었다.

라즈베리 파이를 이용하여 국내외의 다양한 인터넷 라디오를 듣는 것도 즐거운 일이다. 그러나 전원을 넣고 부팅이 될 때까지 결코 짧지 않은 기다려야 한다는 점이 불편하였다. '전원을 켜면 즉각 소리가 난다'는 것은 매우 강력한 장점이다. 솔직히 말해서 나에게도 라즈베리 파이로 음악을 듣는 과정이 성가시게 느껴지는데, 음악을 좋아하는 아내에게 휴대폰으로 볼류미오를 조작하라고 알려주기에는 미안하다. 비록 최근에 새로 들인 인터엠 R150PLUS 레퍼런스 파워 앰플리파이어는 보호 메커니즘 작동 때문에 전원을 넣은 뒤 몇 초를 기다려야 릴레이가 붙고 소리가 나기 시작하지만... 

음질 면에서도 특히 KBS 1 FM은 튜너로 들을 때 더 박력이 있게 느껴졌던 것으로 기억이 난다. 

모처럼 하루 휴가를 낸 금요일, 튜너를 들고 인켈·바텔 대전서비스센터를 찾아 수리를 의뢰하였다. 코일을 교체하여 정상 기능을 되찾았다. 스테레오 수신 표시를 얼마 만에 보는 것인가? 수리 비용은 생각한 것보다는 조금 비쌌지만, 아깝단 생각은 들지 않는다. 그 돈이면 TX-5400과 비슷한 등급의 중고 튜너를 다시 살 수도 있을 것이다. 그러나 작동 상태는 보장하기 어렵다. 

'앞으로 얼마나 더 쓸 수 있을까요?' 수리 기사에게 물어 보았다.
'7년쯤 지나면 앰프나 튜너의 부품이 삭기 시작할 겁니다'. 

내가 집에서 인터엠 R150PLUS 앰프를 최근에 구입하여 쓰고 있다고 했더니 매우 의외라는 듯한 표정이었다. '방송용 앰프를요?' 뭐 어떠랴.

내가 이 튜너를 중고로 구입한 것이 언제였을까? 아마도 2014년 무렵이 아니었을까? 공교롭게도 7년의 시간이 지났다. 수리 기사의 말이 맞다면, 그때 신품으로 튜너를 샀다 하더라도 지금쯤 스테레오 수신 불량 상태가 되었을지도 모른다.

신품으로 구입했던 오디오 시스템이 몇 년이 지나면서 튜너의 수신이 불량해지는 현상을 최소한 두 차례 경험했었다. 비교적 짧은 시간(내 생각일 뿐이다)이 흐르는 동안 이렇게 빨리 열화되는 부품은 도대체 어떤 녀석인가? 손가락 한 마디도 안되는 코일이 바로 문제이다.

그러면 반도체 칩 몇 개로 구현한 라디오 수신 모듈은 어떻게 하여 코일 같은 것이 없이 작동하는 것일까? '전통적'인 튜너보다 수명이 더 길까? 나도 DSP PLL stereo FM receiver module을 하나 구입하여 테스트해 본 일이 있는데, 음질은 영 꽝이다. 이런 라디오 수신 모듈과 컴포넌트 오디오를 구성하는 단품 튜너의 음질이 비슷하다면 불공평하지 않은가? 물론 이런 식의 비교 자체는 공정하지 못하다. 90년대 초반의 데스크탑 컴퓨터보다 현재의 휴대폰을 비교해 보라. 크다고 더 좋은 것이 아님은 삼척동자도 다 안다.
DSP PLL stereo FM receiver module. 사진 출처: AliExpress
내가 실제로 구입하여 갖고 있는 FM 수신 모듈.

이 FM 수신 모듈과 관련하여 블로그에 작성한 글은 다음과 같다. 둘 다 2016년에 쓴 글이다.

처남에게서 얻은 B&W DH10 스피커(관련 글 링크)를 거실에 두게 되면서 인터엠 R150PLUS 파워 앰프를 사게 되고(관련 글 링크), 거실에 늘 두고 쓸 소스 기기로서 튜너를 수리하게 되었으니 우연히 벌어진 일의 나비 효과가 이런 결과를 초래하게 될 줄은 정말 몰랐다. 인생은 예측할 수 없는 것으로 가득하다는 것이 매력 아닌가? 올해 내가 만든 두 대의 진공관 앰프가 현재 제작 중인 드라마 촬영 현장에 놓이게 될 것을 누가 상상이나 했겠는가?

2021년 7월 18일 일요일

[독서 기록] 문명의 역습

책을 도서관에 반납해 버린 후라서 정확한 기록을 남기기가 어렵다. 독서를 하면서 메모를 하는 스타일은 아니라서, 독서 기록을 쓰려면 다시 책을 손에 들고 뒤적거려야만 한다.
  • 제목: 문명의 역습('우리는 문명을 얻은 대신 무엇을 잃었는가')
  • 원제: Civilized to Death
  • 저자: 크리스토퍼 라이언
  • 역자: 한진영
지속 가능한 생태계를 위하여 인류가 언젠가는 스스로 일구어 온 문명을 버려야 할 수도 있다고 나는 믿는다. 아니, 그럴 생각은 추호도 없지만 거듭된 재앙이 인류를 반 강제적으로 저(低)기술 사회로 몰고 갈 수도 있다고 본다.

인공지능이 고도로 발달하고 - 그 과정에서 인류가 인공지능에 의해 도태되지 않는다면 - 생각만으로도 사물을 제어할 수 있는 수준으로 과학기술이 발달하여 특이점까지 도달했다가 전쟁이나 환경오염, 기후변화 등으로 인류가 멸망했다고 가정하자.

또 다른 시나리오에서는 원하든 원치 않든 지금까지의 과학기술을 버리고 듬성듬성 소규모 집단을 이루면서 수렵과 채집을 살아가는 방식으로 회귀했다고 치자. 과연 나라면 어떤 미래를 꿈꿀 것인가? 생태계의 다른 구성원과 더불어 지속 가능한 삶을 살고자 한다면 당연히 후자가 더 바람직한 모습일 것이다. 그러나 손가락 조작만으로 요즘같이 뜨거운 여름날에 시원한 에어콘 바람을 맞으며 쾌적하게 사는 모습에 더 가치를 둔다면, 수렵 채집인의 삶은 따분하고도 발전이 없는 것으로 여길 것이다.

맨 마지막 장은 무척 의외로 여겨진다. 전통 사회에서부터 쓰이던 향정신성약물의 긍정적인 면을 다루고 있기 때문이다. 우리가 흔히 마약이나 약물이라고 한데 묶어서 생각하는 것들을 진지하게 나누어 다루어야 하고, 그 중에는 쓸만한 것이 있다는 이야기인데, 아직 우리 한국 사회에서는 받아들이기 어렵다.

[독서 기록] 유닉스의 탄생 - bioneer 서버를 추억하며

1990년대 초반, 내가 다니던 대학원의 몇몇 연구실에서 조금씩 돈을 모아서 당시로서는 꽤 좋은 리눅스 서버를 조립한 일이 있다. 그 서버의 이름은 'bioneer'. 이를 한글로 표기하는 문제에 대해서는 다들 고민을 별로 하지 않았다. 월드와이드웹은 고사하고 학교에서 이메일 주소를 공식적으로 발급해 주지도 않던 시절, bioneer는 생명정보학 도구의 산실이자 학과의 모든 구성원들에게 이메일 계정을 하나씩 안겨준 귀한 자원이었다. 지금은 중앙대학교 교수로 재직 중인 한윤수 교수가 직접 코딩하여 만든 텍스트 터미널 방식의 bbs 프로그램은 학생들의 일상과 실험 노하우를 공유하는 매우 중요한 정보 교류의 장이었다. bioneer라는 이름은 우리 학과의 당시 영문 명칭인 Department of Biological Science & Engineering에서 딴 것으로 기억한다. 이 bioneer라는 이름이 우리나라 생명공학계의 최초 벤처기업인 (주)한국생공이 1996년 (주)바이오니아로 상호를 변경하는데 어느 정도는 영감을 제공하였을 것으로 믿는다.

당시 바이오니어 서버를 만드는데 주도 역할을 했던 사람은 누구였던가? 안타깝게도 정확하게 기억나지는 않는다. 아마도 홍석진, 한윤수, 홍승범 동문 등이었던 것 같다. 혹시 정확한 정보를 알고 계신 동문이 있다면 연락 주시기를! 이러한 일을 학생들의 열의만으로는 할 수 없는 노릇이었고, 박찬규 교수님이 분위기 조성에 도움을 주셨던 것으로 기억한다. 학과 선배 중에서도 기여를 한 사람이 있었을 것이다. 이 작은 역사가 나로 하여금 리눅스에 관한 관심을 갖게 만드는 계기가 되었고, 1994년 드디어 내 생애 최초로 개인 PC를 갖게 되었을 때 리눅스를 설치하여 간단하게 bbs도 운영해 보고 학위 논문 원고도 LaTex으로 쓰게 된 계기가 되었다. 컴퓨터는 계속 바뀌었지만 이때 지은 eos라는 서버명은 그 이후로도 꽤 오랫동안 사용하였다. 사실은 1993년 여름 어렵게 장만한 캐논 SLR 카메라 EOS 5에서 딴 이름이지만... 다음 주에 컴퓨터를 하나 발주할 일이 있는데 생각이 난 김에 eos라는 이름을 다시 사용해야 되겠다. AMD CPU를 쓰는 컴퓨터로는 첫 경험이 될 것이다.

학부생 때에 SSM-16에 접속하여 포트란 실습을 한 일이 있어서 리눅스의 텍스트 터미널 환경을 별로 낯설게 여길 필요가 없었던 것도 큰 도움이 되었다. 1984년에 개발된 국내 최초의 상용 컴퓨터인 SSM-16에 대해서는 ETRI 40주년 자료를 참고하기 바란다. 아, SSM은 '삼성 수퍼마이크로'의 약자였구나!(1996년 전자신문 기사) 예전보다는 SSM-16에 대한 정보를 찾기가 수월해져서 다행이라고 생각한다.

서론이 지나치게 길었다.

나의 업무에서 여전히 중요하게 쓰이는 자료 처리용 스크립트 언어 AWK의 저자 중 한 사람인 브라이언 커니핸이 쓰고 하성창이 번역한 책 『유닉스의 탄생』(한빛미디어 2020년)을 재미있게 읽었다. 훗날 누군가 짧았던, 그러나 굵게 흔적을 남긴 bioneer 서버의 역사에 대한 글을 쓰게 될지 누가 알겠는가?

UNIX와 C 언어는 미국 AT&T의 연구 개발 자회사인 벨 전화 연구소(Bell Telephone Laboratories, 혹은 단순히 '벨 연구소')에서 태어났다. UNIX가 탄생되는 순간은 이 책의 80쪽부터 나온다. MIT와 공동 작업으로 진행되었던 멀틱스(초기 시분할 운영체제의 하나, 1964~2000) 개발에서 손을 뗀 사람들이 거의 놀고 있었던 DEC PDP-7을 활용하기 위해 창의력을 발휘한 것이다. 멀틱스의 복잡성에 대한 반작용으로 탄생한 것이 유닉스라니! 켄 톰프슨은 PDP-7에 달린 특이한 디스크 드라이브의 작동 효율을 높이기 위해 새로운 디스크 스케쥴링 알고리즘을 작성했고, 이를 시험하기 위해 그의 아내가 한 살짜리 아들을 데리고 부모님을 뵈러 간 3주 동안 유닉스의 프로토타입을 만든 것이다.

당시 벨 연구소는 연구자들이 최대한 자율적으로 일할 수 있게 배려하는 분위기였고, 대학을 찾아다니며 좋은 인재를 영입하는데 많은 노력을 기울이고 있었다. 요즘 우리나라와 같이 '블라인드 채용'만이 공정한 인재 등용 방법이라면서 이를 강하게 추진하는 것과는 크게 대조가 된다. 유닉스는 벨 연구소의 모기업에 결코 재정적인 성공을 가져다주지 못했다. 주변 대학에 영업 비밀 보호 협약만 맺는 조건으로 싼 가격(명목상의 매체 수수료)에 배포를 하여 인기를 누리기 시작했다. 요즘 말하는 오픈 소스 방식은 분명히 아니었고 라이선스를 취득한 사람끼리만 유닉스와 관련된 경험을 공유할 수 있었다. 그러나 커뮤니티가 확산되고 점차 다른 종류의 하드웨어로 이식되는 것도 가능해졌다. 무엇보다도 중요한 것은 그 과정에서 호환성이 중요한 전통으로 자리잡게 되었다고 한다. 유닉스에서 직접적으로 파생되었거나 영향을 받은 후손이 지금은 시장에서 큰 비중을 차지하게 되었고, 그 한가운데에 리눅스가 있다.

벨 연구소는 소속 연구원들이 책을 발간하는 것을 장려하였다고 한다(201쪽부터). 초창기 유닉스에서는 문서 생성용 도구가 큰 비중을 차지하였고, 이로 말미암아 각종 매뉴얼이나 기술 논문 및 책이 만들어질 수 있었다. 특히 벨 연구소의 컴퓨팅 과학 연구 센터에서는 책을 집필하기 위해 별도의 개인 시간을 쓸 필요가 없었다. 덕분에 벨 연구소는 컴퓨팅과 컴퓨터 과학에 대한 권위 있는 책을 쓰는 곳으로 유명해졌다. 

비교적 규모가 작은 기업의 연구소에서 이렇게 좋은 책을 많이 낼 수 있었던 원인을 저자는 이렇게 파악하고 있다. 이를 원문에서 그대로 인용해 본다(203쪽~). 기술적인 글쓰기를 즐기는 나에게 매우 깊은 인상을 준 대목이다. 
  • 글쓰기를 진지하게 대했고, 스스로 공을 들여 썼으며, 다른 사람들이 쓴 글을 읽고 훌륭한 비평을 제시했다.
  • 연구소 경영진이 책 쓰기를 지지해 주었다... 6개월 동안 책을 몰두하여 쓸 수 있었고, 저작권은 벨 연구소가 보유하지만 저자가 인세를 받았다.
  • 프로그래밍 환경으로서 C와 유닉스, 연구 분야로서의 문서 생성, 컴퓨터 기술을 주제로 한 글쓰기를 주요 활동으로 삼은 것 간의 공생 관계다.

유닉스 개발에 가장 크게 기여한 소수의 천재를 고르라면 케네스 톰프슨과 데니스 리치로 대상을 좁히지 않을 수 없지만, 저자는 당시 벨 연구소 컴퓨팅 과학 연구센터의 분위기는 열정으로 뭉치고 우애 넘치며 자유로운 환경임을 강조하고 있다. 자유로운 연구를 지속적으로 지원하였던 부서장이라든가, 인턴 연구원으로 잠시 근무하면서 머물면서 유닉스 시스템의 성장과 발전에 기여한 사람들(예: 훗날 구글의 CEO가 된 에릭 슈미트) 등등.. 이 책을 읽으면서 그 어디에서도 치열한 경쟁이나 성과를 둘러싼 싸움 같은 것은 찾아볼 수 없었다. 오히려 관리자로 승진하기 싫어서 애쓰는 모습이 애교스럽게 묘사되기도 하였다. 혹시 일부러 저자가 낭만적으로 책을 쓴 것은 아니었을까? 

'하고 싶은 일을 열심히 했을 뿐인데, 시간이 지나고 보니 역사가 되어 있더라구요.'

언젠가 이런 말을 할 수 있는 날이 온다면 얼마나 영광일까?

2021년 7월 15일 목요일

인터엠 '레퍼런스 앰프' R150 PLUS 파워앰프(중고) 구입

인터M R150PLUS. 상세 자료는 인터엠 영문 사이트의 제품소개 페이지에 있다.

라즈베리 파이 -> USB DAC(Behringer UCA200)를 거쳐 인터넷 라디오를 재생하는 모습. DAC의 RCA 출력을 앰프의 balanced input에 연결하는 데에는 RCA to 55(TS) 케이블을 이용하였다.

'Bridged mono' 모드로 설정한 다음 빨간색 단자 두개에 8옴 스피커를 하나만 연결하면 150와트(TDH 0.05%)의 파워가 나온다. R150이라는 모델명은 파워 수치에서 딴 것으로 보인다.

볼륨 노브를 돌려보면 각 단계마다 걸리는 느낌이 난다. 좌우 채널을 별도로 조정하게 되어 있으므로 바람직한 설계이다.
인터엠(Inter-M)은 가정용 오디오로 유명한 인켈에서 오래전에 독립한 프로페셔널 오디오 전문 기업으로, 구내방송(전관방송이라고도 함)이나 공연장용 오디오 시스템을 제조하여 공급하는 회사이다. 두 분야를 통틀어서 PA(public address)라 부르기도 하고, 혹은 이를 세분하여 전자를 좁은 의미의 PA, 후자를 sound reinforcement(SR)라 부르기도 한다. 하지만 서양에서는 후자를 professional audio라고 부르는 것이 일반적이라고 한다. 한국식 의미의 PA와 SR은 용도가 다른만큼 쓰이는 장비도 크게 다르다. 요즘 가정용 오디오 시스템은 더 이상 90년대 수준의 인기를 누리지도 못하지만, PA+SR 오디오 시스템 시장은 절대 그렇지 않고 시장 규모도 훨씬 큰 것으로 알고 있다.

그러면 내가 오늘 중고로 구입한 인터엠 R150PLUS는 무슨 앰프인가? SR용 파워 앰프에 가깝지만 요즘 널리 쓰이는 것들에 비하면 비교적 출력이 작다. 작은 규모의 공연장이나 교회에서 음악과 스피치용 파워앰프로 쓰면 적당한 모델이다. 8옴 스피커에 대하여 50W+50W 파워를 내므로, 어설프게 만들어 1와트도 내지 못하는 잡음 투성이 진공관 싱글 앰프를 갖고서 능률이 떨어지는 스피커 시스템을 잘 울리지 못하여 겪었던 고생을 저 멀리 날려 버릴 수 있다.

인터엠 영문 페이지에서 R-PLUS 시리즈 'Reference Amplifier'의 소개 글을 가져다가 인용해 본다.
  • The R-PLUS Series are a dual-channel, high-performance amplifiers. Their clear, open sound and quiet operation make them ideal for reference systems and church sound applications. Inputs are via balanced XLR or 1/4” connectors, outputs are via rugged five-way binding post connectors. 
  • All units have soft-start protection circuitry and feature signal, protection and clip indicators on the front panel.  For added versatility, they may be operated in stereo, dual mono or bridged mono mode. 
  • They have front panel mounted mains switch, level controls and indicators for power, protection, clip and signal present. Convection-cooling provides noise-free ventilation for critical applications. Mains inlet is via an iec connector. The R-PLUS Series amplifiers are powered by 100-120VAC or 220-240VAC 50/60Hz(depending on country requirements) and are packaged in a 3.5” (2RU) rack mount enclosures.
이런 타입의 앰프는 가정용 하이파이 앰프와 비교하여 음질이 더 나쁠까? 그렇다고 생각하지는 않는다. 일단 SR 앰프는 밸런스 입력을 지원하고, 튼튼하며, 각종 보호 기구가 존재한다. 그만큼 가혹한 조건에서도 안정적으로 구동되도록 만든 것이다. 출력이 300~500와트를 넘어가면 일반적으로 모터로 돌리는 냉각용 팬이 장착되기 때문에 소음이 발생하여 가정에서 음악감상용으로 쓰기에는 불편함이 있을 것만 같다. 하지만 이 모델은 방열판만으로 냉각을 하기에 팬 소음이 없다.

왜 이런 앰프를 살 생각을 했을까? 가장 큰 이유는 내가 최근 몇 년 동안 직접 만든 진공관 앰프에서 만족을 하지 못했던 것에 있다. 그리고 요즘 나오는 가정용 오디오 앰프에 대해서 별로 매력을 느끼지 못했다. 가정용 오디오 전성기에 나오던 앰프 중고품은 상태가 좋은 것으로 고르기가 점점 어렵다. 반면 SR 앰프는 중고 시장이 잘 형성되어 있어서 적절한 가격의 것을 선택할 수 있다. 출력이 그렇게 높지 않은 제품이라면 새것도 그렇게 비싸지는 않다.

랙에 고정하는 앰프라서 다리는 달려있지 않다. 적당한 고무발 같은 것을 달아 주어야 되겠다. 가구 위 유리판에 얹어 놓았더니 생각보다 가벼워서 자꾸 미끄러진다. 언밸런스 오디오 기기를 입력에 연결해도 별다른 문제는 없다. 소스 자체가 언밸런스이므로 콘솔 믹서 같은 것을 중간에 일부러 삽입하여 밸런스 출력을 만들 필요가 없다. 어차피 가정에서 쓸 것이라 신호선이 길지 않아서 밸런스 연결의 장점을 누릴 일이 별로 없기 때문이다. 입력 단자는 TRS(55 type)과 XLR 두 가지가 준비된 상태인데, 갖고 있는 커넥터가 하도 많아서 문제가 없다. 과거에 믹서, 전기기타, 신시사이저 등을 조금씩 다룬 일이 있어서 온갖 타입의 커넥터를 이미 구비해 놓은 상태이기 때문이다.

자작 진공관 앰프에 대한 환상을 가지고 있었던 것은 맞다. 이제는 만든 앰프를 더 이상 둘 곳도 없다. 적은 비용으로 실패 없이 만들기 위해 소출력 싱글 앰프에만 집착을 했고(그나마 6LQ8 푸시풀 앰프를 경험한 것은 다햄임), 운명적으로 자작 싱글 앰프의 출력이 낮아서 이미 갖고 있는 스피커를 충분히 울리지 못하니 덩달아 고능률의 풀레인지 스피커 유닛을 구하여 직접 스피커 시스템을 만들어야 하나 고민하고... 이런 악순환의 고리를 과감히 끊고자 기성 반도체 앰프로 과감히 전환하기로 결심한 것이다. 그동안 고만고만한 진공관 앰프를 여럿 만드는데 들어간 노력과 비용을 제대로 된 앰프 하나에 쏟아 부었다면, 지금과 같이 실망감과 함께 더 이상의 자작을 하지 않겠다고 마음을 돌리는 일도 없었을 것이다. 최소한 소리전자의 6V6 싱글인 '돌쇠' 시리즈로 시작을 했어야 한다. 

음악적 완성도가 떨어지는 진공관 앰프는 과감히 정리하자. 43과 PCL86 앰프가 그러하다. 6LQ8 푸시풀 앰프는 그런대로 만족할 수준이니 잘 보수하면서 활용할 생각이다. 아마도 6LQ8과 6P1만이 살아남게 될 것이다. 진공관 오디오의 진정한 가치를 미처 경험하지도 못하고 어설프게 그만 두는 것 아니냐고 비판할 사람이 있을 수도 있다. 나는 이미 7년 이상 충분히 노력했고, 그만하면 되었다고 본다. 만드는 재미에서 오는 보람을 느끼는 것과 완성도 높은 앰프를 만드는 것은 완전히 별개의 목표이다.

2021년 7월 14일 수요일

NGS 시대에도 Sanger sequencing 결과물의 처리는 필요하다 - Tracy

미생물 시료의 16S rRNA sequence를 알아내기 위해 표적을 몇 개의 겹치는 PCR product 형태로 들어내어 염기서열을 판독한 경우, 또는 재조합 벡터를 새로 만든 다음 확인을 하고자 할 때 Sanger sequencing 기법은 여전히 필요하다. 단일 크로마토그램에서 염기서열을 추출하는 것이 전부가 아니다. 몇 개 되지 않는 크로마토그램을 조립할 일도 종종 겪을 것이다.

생명정보학에 대한 전문적인 기법을 아직 습득하지 못한 사람이 이러한 상황에서 비용을 들이지 않고 편리하게 쓸 수 있는 도구가 그렇게 많지는 않다. 서너 개의 크로마토그램을 조립하기 위해 2021년에 Phrap 소스를 다시 꺼내어 설치하는 것은 가혹한 면이 없지 않다. 아니, 내 컴퓨터에 phrap이 깔려 있기는 한가?

$ phrap

phrap phrap 
phrap version 1.080812

phrap version 1.080812
Reading parameters ... 1.008 Mbytes allocated -- total 1.008 Mbytes

Run date:time  210714:081805
Run date:time  210714:081805
FATAL ERROR: Sequence files must be specified on command line. See documentation.

아직도 굳건하게 남아 있다. 그러고 보니 Staden package도 여전히 배포 중이다. 1996년에 나왔던 Staden sequence analysis package에 관한 논문은 여기에서 볼 수 있으며 최신 업데이트는 20년이 지난 2016년(v2.0.0b11)까지 이루어진 상태이다. 언제 쓸 일이 있을지 모르겠지만 윈도우용 버전을 설치해 보았다. Staden package와 관련하여 기억해 둘 것은 "contig"라는 용어가 원래 어디에서 유래했는지를 잘 설명해 주기 때문이다(링크). 참고로 Staden이 근무했던 영국의 MRC Laboratory of Molecular Biology는 일종의 출연연 또는 국가연구소로서 현대 분자생물학 분야에서 너무나 많은 성과를 남겼다. Staden의 사진을 한번 찾아 보았다.

Roger Staden (LMB). "Staden devised the first DNA sequencing software." 출처: What is biotechnology? Computers, Databases and Automation

Staden package 설치 화면.
원래 오늘은 생명정보학 프로그램 박물관과 관련한 글을 쓰려는 것은 아니었다. 동료로부터 PCR로 증폭하여 판독한 16S rRNA 염기서열 유래 크로마토그램을 조립하는 방법에 관하여 이야기를 나누다가 현 시점에 쓰기 적당한 도구는 무엇이 있을지 웹을 뒤지는 과정에서 Tracy라는 도구를 접하게 되었다. 2021년에 이런 소프트웨어를 접하게 되다니 반갑기 그지없다. 특히 공공성이 강한 기관(EMBL)에서 개발하였으므로 비교적 오랜 기간 동안 업데이트가 및 서비스가 이루어질 것이라는 막연한 기대도 갖게 된다.

Tracy: basecalling, alignment, assembly and deconvolution of Sanger chromatogram trace files. BMC Genonmics 21, article no. 230 (2020) https://github.com/gear-genomics/tracy

Tracy 자체는 명령행에서 돌아가는 backend이고 별도의 웹사이트인 GEAR Genome Analysis Server(https://www.gear-genomics.com/)에서 서비스가 이루어진다. 논문에 소개된 web application은 다음의 6개이지만, 실제로 방문을 하면 훨씬 더 많은 서비스가 있다. 오늘 확인한 바에 따르면 무려 16개의 application이 있으며, 앞으로 더욱 늘어날 것이라고 한다. 마치 세련되게 다시 꾸민 EMBOSS explorer를 보는 느낌이다.

  • Teal: Viewing a trace file
  • Sage: Aligning a trace to a reference sequence
  • Indigo: Decomposing a trace, variant calling and annotation
  • Pearl: Patching FASTA sequences based on a local trace assembly that optionally uses a reference sequence
  • (Auxiliary) Sabre: a MSA viewer
  • (Auxiliary) Wily-DNA-Editor
논문의 그림 1 일부(Pearl)를 아래에 소개하였다. Reference 서열에 대하여 조립된 크로마토그램으로부터 mismatch를 잘 보이고 있다.
Full size image 원본 링크.
고전적인 DNA sequencing 이론은 이제 교과서 속으로 들어가 버리고 젊은 연구자들은 그 실체를 접할 기회가 많지 않은 것 같다. 

2021년 7월 12일 월요일

FASTA 파일 자르기 - Jim Kent의 faSplit

FASTX 파일을 조작하는 유틸리티는 그 종류가 하도 많아서 가끔씩은 내가 원하는 기능을 수행하는 명령어가 뭔지 찾는 것보다 차라리 새로 짜는 것이 더 편하다고 느낄 때가 있다. 이번에는 6G(gigabasepair가 아니라 gigabyte)가 넘는 FASTA file을 nucmer가 잘 다루지 못하는 현상을 발견하여 이를 수십 조각으로 적당히 분할하는 '남이 이미 만들어 놓은 유틸리티'가 뭔지 찾아 보았다. 다음의 글에서 저명한 전산생물학자 Jim Kent가 만들었다는 faSplit라는 것을 알게되어 설치 후 활용해 보았다.



faSplit - Split an fa file into several files.
usage:
   faSplit how input.fa count outRoot
where how is either 'about' 'byname' 'base' 'gap' 'sequence' or 'size'.  
Files split by sequence will be broken at the nearest fa record boundary. 
Files split by base will be broken at any base.  
Files broken by size will be broken every count bases.

Examples:
   faSplit sequence estAll.fa 100 est
This will break up estAll.fa into 100 files
(numbered est001.fa est002.fa, ... est100.fa
Files will only be broken at fa record boundaries

   faSplit base chr1.fa 10 1_
This will break up chr1.fa into 10 files

   faSplit size input.fa 2000 outRoot
This breaks up input.fa into 2000 base chunks

   faSplit about est.fa 20000 outRoot
This will break up est.fa into files of about 20000 bytes each by record.

   faSplit byname scaffolds.fa outRoot/ 
This breaks up scaffolds.fa using sequence names as file names.
       Use the terminating / on the outRoot to get it to work correctly.

   faSplit gap chrN.fa 20000 outRoot
This breaks up chrN.fa into files of at most 20000 bases each, 
at gap boundaries if possible.  If the sequence ends in N's, the last
piece, if larger than 20000, will be all one piece.12

faSplit는 multi-FASTA file을 각 서열 단위로 분할하는 것은물론 큰 서열을 임의의 길이(bp 혹은 바이트 단위)로 잘라준다. 리눅스에 포함된 일반 유틸리티인 cut도 이와 유사한 일을 할 수 있으나 서열 경계 부분을 지혜롭게 처리해 주지는 못한다. cut의 유용성은 다른 곳에 있다. 예를 들어서 컬럼 단위로 텍스트 파일을 분할하는 능력 말이다.

만약 fasta 파일을 조작하여 염기서열이 한 줄에 표시되게 만들면 cut과 같은 일반 유틸리티를 이용한 복잡한 작업도 가능하다. 그러려면 awk나 sed를 동원해야 될 것이다.

이렇게 블로그에 기록을 남겨놓지 않으면 내가 faSplit라는 유용한 도구를 설치하여 사용했었다는 사실 자체를 기억조차 하지 못할 것이다!

2021년 7월 9일 금요일

NCBI 신종코로나바이러스(SARS-Cov-2) 데이터 허브에 올해 등록된 유전체 염기서열에는 한국 유래 바이러스 자료가 없다

신종코로나바이러스 국내 확진자가 최근 들어서 급증하는 추세이다. 하루에 1200명이 넘는 확진자는 전혀 예상하지 못했던 수치이다. 주말에 세웠던 계획을 어떻게 하는 것이 좋을지 심히 고민이 된다.

NCBI에서는 신종코로나바이러스를 위한 SARS-CoV-2 Data Hub를 별도로 운영하고 있다. 오늘 기준으로 등록된 바이러스의 유전체 염기서열은 896,485건이고, completeness로 필터링하면 374,386건이나 된다. GISAID의 EpiCoV 데이터베이스에 비교하면 등록된 데이터는 약 절반 수준이지만 데이터 사용에 따른 제한이 적어서 좋다. GISAID는 데이터를 등록한 사람의 권한을 더 중시하는 정책을 유지하고 있어서 사용자 등록도 까다롭고, 자료를 가져다가 활용하려면 등록자를 밝히는 '감사의 글' PDF 파일을 받아야 한다. 시험삼아서 1만 건(검색 페이지에서 한번에 다운로드할 수 있는 자료의 수 - 이것마저 상한선이 있다니...)의 염기서열을 다운로드하면서 감사의 글 파일을 같이 받았더니 A4 용지 포맷으로 무려 68쪽이나 된다. 만약 논문을 쓰면 이것을 supplementary file로 붙여야 한다. 20만건 정도의 데이터를 받아서 분석한다면 어떻게 될까?

돈을 들여서 바이러스 변이체의 유전체를 연구하고 임상 데이터를 얻은 사람의 소중한 정보를 함부로 가져다 쓰지 말라는 정책인데, 백신 및 치료제 개발이라는 공익적인 목적이라면 이를 좀 더 개방해야 하지 않을까? 이를 촉구하는 공개 서한(Open letter: Support data sharing for COVID-19)에 연구자들이 서명을 하고 있지만 GISAID의 정책이 아직 변한 것 같지는 않다. BioIN 포털에서도 코로나19 바이러스 유전체 데이터 공유 이슈라는 글을 통해 이 문제를 소개하였다.

활용에 별다른 조건이 없는 NCBI의 데이터 허브에서 올해부터 지금까지 수집된 바이러스에 대한 유전체 데이터(complete)를 다운로드하였다. 바이러스 샘플을 수집한 날, 염기서열 정보를 등록한 날, 공개일(NCBI)에 차이가 있으니 주의해야 한다. 아마도 샘플 수집일이 가중 중요한 기준일이 될 것이다.

오늘 받은 것은 약 22만 건에 이르는 자료로서 FASTA file의 크기는 6.1 G에 육박한다. 그런데 한국에서 등록한 것은 하나도 없다. 어라? 수집 기간에 대한 필터를 해제하니 30개 조금 넘는 자료가 존재할 뿐이다. 왜 이렇지? 이번에는 GISAID에 가 보았다. 기간을 불문하고 검색을 한 결과 대한민국에서 유래한 것이 8,579건이고 3종 필터 세트(complete, high coverage, low coverage excl)을 적용하니 4,931개가 되었다. 일단 후자에 해당하는 세트를 전부 다운로드하였다.

왜 거의 전부의 자료를 NCBI가 아니라 GISAID에만 등록을 했을까? 위험을 무릅쓰고 바이러스 샘플을 채취하고, 유전체 데이터를 해독하고, 환자의 임상 데이터를 수집하는 등의 노고는 누구나 다 들여다볼 수 있는 NCBI에 등록하기에는 아까웠던 것일까? 데이터를 가져다가 쓰기만 하는 사람으로서 데이터 제공자의 입장을 완벽하게 이해하기는 어렵다. 나름대로의 합리적인 이유가 있겠지만 아쉬움을 금할 수가 없다.

NCBI Data Hub에서 적당한 조건으로 검색을 한 뒤 table view를 CSV 파일로 받은 후 서열 ID와 PANGO lineage를 awk로 뽑으려고 했더니 2번째 컬럼(authors)가 아주 고약하게 되어 있는 것을 발견했다. 저자가 여러명이므로 콤마를 넣어서 구분을 한 뒤 전체를 큰따옴표로 둘러싼 것이 아닌가. 이를 "awk -F,"로 조작하면 인용기호 안의 콤마를 그대로 구분자로 취급해 버리니 문제가 된다. 방법은 찾으면 나온다! 아래에 소개된 솔루션 중에서 가장 마지막에 소개된 것을 사용하였다.


다음의 코드는 1번과 4번 컬럼을 추출하게 만들어 준다.

$ awk '{while(match($0,/("[^"]+",|[^,]*,|([^,]+$))/,a)){
     $0=substr($0,RSTART+RLENGTH);b[++x]=a[0]}
     print b[1] b[4];x=0}' sequences.csv

2021년 7월 5일 월요일

TDA7265 앰프의 잡음 정복 - 끝날 때까지 끝난 것이 아니다!

NE5532 버퍼 프리앰프 보드의 전해 캐패시터에 금속판 실드를 씌운 것으로도 기분 나쁜 잡음이 약간 남아서 나의 귀를 거슬리게 하였다. 도대체 어디까지 해야 하는가?

양 끝에 악어클립을 단 전선을 가져다가 모든 부품이 올라가 있는 알루미늄판(앰프 회로의 그라운드에 연결된 상태)와 멀티탭의 접지핀을 직접 연결해 보았다. 잡음이 완벽한 수준으로 줄어들었다.

허! 정녕 이 앰프에 접지가 달린 3구 케이블을 써야 한단 말인가? 겉으로 금속 부분이 노출되지 않은 플라스틱 케이스에 담긴 반도체 앰프이니 안전 접지는 필요하지 않을 것으로 생각했다. 콘센트의 안전접지를 끌어다가 앰프 내부의 그라운드에 함부로 연결하면 잡음이 오히려 더 커질 수도 있다고 들었다. 그러나 실험 결과가 이렇게 나오는 것을 부정할 수가 없다.

5년 전에 서울 종로구 장사동에서 구입하였던 나무 손잡이의 저가형 납땜인두(관련 글 링크)가 단선이 되어서 파워 케이블만 분리해 둔 것을 쓰기로 하였다. 

작업을 마친 모습. 전원 케이블이 바뀌었다.


전원의 접지선을 이것을 앰프 내부의 그라운드에 그냥 연결하기는 좀 마땅치 않아서 1/4와트 220옴 저항을 중간에 삽입하였다. 아래 사진에서 3핀 러그터미널에서 모든 접지가 모이는 것을 볼 수 있다. 가운데 핀을 통해서 바닥의 알루미늄판과도 접속이 된다. 앰프 내부의 그라운드선은 어디에서 취했는가? 노란색으로 1, 2, 3이라는 숫자가 적힌 것이 버퍼 프리앰프의 전원 입력용 커넥터이다. 원래는 전원 트랜스포머의 2차에서 나오는 +15/0/-15V선을 연결해야 한다. 그러나 재활용을 위해 망가진 인켈 튜너에서 적출한 기판용 파워 트랜스포머의 2차 핀은 그 수가 많지만 0V과 30V 사이에 중간 탭 역할을 할 것이 없다. 그래서 여기에서 나오는 노란색 전선 두 가닥을 아래 사진의 1번과 3번 단자에 연결한 것이다.

이렇게 해도 op-amp가 필요로 하는 양전원은 생긴다. 물론 최적의 상황은 아닐 것이다. 그러나 버퍼 프리앰프가 끌어다 쓰는 수준의 전류라면 큰 문제는 없을 것이라고 생각한다. 간단한 CMoy 앰프에서는 9V 전지를 저항으로 분할하여 양전원을 만들지 않던가.

볼륨 포트 케이스에 납땜한 전선과 캐패시터를 차폐한 알루미늄판에 연결한 전선은 위 사진에서 전부 2번 커넥터에 연결되었다. 원래는 전원 트랜스포머의 센터탭과 연결했어야 하는 곳이다. 이것이 회로 전체의 그라운드와도 연결이 되어 있다.

코어에 차폐를 위한 밴드가 전혀 둘러지지 않은 전원 트랜스포머가 잡음의 원흉일지도 모른다는 생각이 자꾸 든다. 

만약 다음에 또 이런 구성의 반도체 앰프를 만든다면, 반드시 토로이덜 트랜스포머를 쓰리라. 0-18/0-18V의 출력을 갖는 100VA급의 토로이덜 트랜스포머는 산켄 SI-1525HD 하이브리드 IC를 이용한 앰프를 위해 봉사하는 중인데(관련 글 링크) 활용도는 현저히 낮다. 가장 큰 이유는 케이스가 부실하다는 것이다. 리모델링이 절실한 상태이지만 팝업 노이즈를 피하기 위한 스피커 작동 지연회로를 마련하는 것이 귀찮아서 아직 시도를 하지 못하고 있다.


2021년 7월 4일 일요일

TDA7265 앰프의 잡음 개선에 한번 더 도전하다

지난달, 앰프의 기판 전체를 얇은 알루미늄판으로 덮어 씌우고 접지에 연결하는 것으로 잡음을 대폭 줄일 수 있었다(관련 글 링크). 

금속 실드를 기판에 씌우는 것보다는 전원 트랜스포머에 씌우는 것이 훨씬 나았을 것이다. 네이버 블로그 '족장' 님의 글(링크)에서 트랜스(실제로는 초크 코일) 차폐에 대한 새로운 아이디어를 얻게 되었다. 언젠가는 시도해 보리라.

볼륨용 가변저항의 본체에는 전선을 납땜하여 접지에 연결을 하였다. 그럼에도 불구하고 볼륨 노브에 손을 가까이 가져가면 잡음이 커진다. 왜 그럴까? 다시 앰프 뚜껑을 열고 잡음의 원인을 찾아 보았다. 볼륨 가변저항 자체에는 손을 대도 잡음이 더 커지는 것이 아니었다. 바로 곁에 있는 전해 캐패시터가 문제였다. 바로 여기에 손을 가까이 가져가면 엄청난 수준의 잡음이 유도되었다.

알루미늄판 조각을 잘라서 'ㄷ'자 형태로 접어서 지붕을 씌우듯이 전해 캐패시터에 씌웠다. 알루미늄판이 이탈하지 않도록 실리콘으로 접착을 하였고, 전선을 이용하여 그라운드로 연결하였다.

모든 부품이 올려진 알루미늄 바닥판과 지난 6월에 씌운 실드판을 연결하는 볼트에 전선을 연결하여 이것 역시 접지에 연결하였다. 이렇게 하니 잡음이 대부분 사라졌다.

볼륨 조절용 포트 바로 곁의 알루미늄 구조물이 오늘의 작업물이다.
입력 RCA 단자에 아무것도 연결하지 않고 볼륨 노브를 올려 보았다. 각도를 올림에 따라서 증가하는 미세한 잡음이 있다. 이것은 아마도 차폐하지 않은 전원 트랜스포머에서 유입되는 것일지도 모른다.누설 자속이 적은 토로이덜 트랜스포모를 오디오 기기에서 이용하는 이유를 알 것 같다. 만약 염가형 EI 코어 트랜스포머를 써야 한다면, 기왕이면 자속 차단도 가능한 함석판을 잘라서 차폐를 하는 것이 더 나을지도 모른다.

자작 오디오 앰프를 만들면서 가장 이해하기 힘든 것은 볼륨 놉을 중간 위치에 두었을 때 가장 큰 잡음이 나는 현상이었다. 볼륨 위치에 관계없이 동일한 레벨의 잡음이라면 전원에 남은 리플 때문일 것이고, 볼륨 놉을 올리면서 증가하는 잡음이라면 신호선을 통해 타고 들어오는 것이라고 이해할 수 있을 것이다. 그런데 볼륨 노브가 정가운데 있을 때 가장 큰 잡음은 이유가 무엇일까? A형 가변저항을 이용하므로 이 위치는 저항 값의 1/2인 위치도 아니다. 어쩌면 전원트랜스에서 방사하는 전기장 잡음을 가장 잘 수신(?)하는 조건이 볼륨 포트의 위치가 12시 방향일 때인가? 슬라이더의 위치에 의해 저항이 어떻게 분할되는가의 여부에는 상관이 없이?

자작 오디오의 성패를 가르는 것은 바로 케이스 가공과 튜닝이 아닐까 한다. 왜 내가 이 고생을 하고 있지? 끊임이 없는 회의외 도전, 그리고 반 발자국의 진전이 뒤섞인 상태로 몇 년을 보냈다. 자작에서 가장 희열을 느끼는 순간은 완성도가 높은 작품이 처음으로 소리는 내는 순간(즉 최종 결과물)이 아니라, 연기와 함께 납이 녹는 그 순간을 눈으로 보며 몸으로 느끼는 과정이 아닐까 싶다. 왼손으로 받치고 있던 실납이 갑자기 녹으면서 손에 느껴지던 저항감이 사라지며 연기와 함께 녹은 납은 광택을 낸다. 바로 이 순간을 중독성과 함께 즐기는 것이 아닐까?


X8SAX 데스크탑 컴퓨터가 MinION 구동용으로 거듭나다

러닝할 샘플은 많고, MinION Mk1C는 네트워크에 연결하지 않은 상태로 쓰려니 좀 불안한 구석이 있어서 기존의 컴퓨터에 다시 MinKNOW 소프트웨어를 설치해 보기로 하였다. 예전에 잠시 쓰던 맥북, 최근 구입한 Dell XPS 13 등. 최종적으로 선택한 것은 Ubuntu Studio를 설치하여 업무 보조 및 음악 작업용으로 쓰던 X8SAX 데스크탑이었다.

최신 Dell 노트북은 윈도우에 MinKNOW를 설치하려니 흔히 보던 메시지 - 재부팅이 필요하다는 - 의 무한 반복이었고, 우분투 쪽에서는 프로그램 패키지가 꼬여서 잘 되지 않았다. 나노포어 커뮤니티에서는 우분투 16과 18에 대한 설명까지만 존재한다. 이 노트북에는 우분투 20.04가 설치되어서 조금 까다로운가? 그렇다면 우분투 '스튜디오' 20.04가 깔린 X8SAX 데스크탑에 MinKNOW와 Guppy(CPU version)이 잘 설치된 것은 어떻게 이해해야 될까? GUI 데스크탑 환경이 Xfce인 것과 관련이 있을까?

2년 동안 파견 근무를 했던 기업에서는 우분투에서 MinKNOW를 설치하고 돌리는데 네트워크 보안을 해제하느라 애를 먹었던 기억이 난다. 이번에는 이와 관련한 문제가 발생하지는 않았다. 문제가 생겼던 원인을 이제는 더 많이 이해하고 있다고 생각하지만 완벽한 상태는 아니다. SSL 가시화 장비가 제공하는 SSL 인증서를 system-wide하게 설치하는 것이 해결책인 것으로 안다.

주말을 기하여 48시간 러닝으로 세팅하였으므로 월요일이면 시퀀싱 결과를 알 수 있을 것이다.



2021년 6월 28일 월요일

라즈베리 파이에 USB 광학디스크드라이브를 연결하고 유튜브 플러그인(2)를 설치하기

라즈베이 파이에 광학디스크드라이브를 연결하는 방법은 두 가지가 있다. 

써 놓고 보니 모든 컴퓨터가 다 마찬가지로구나...

만약 USB 케이블만으로 연결되는 스타일이라면 아주 쉽다. 그러나 USB 케이블로는 구동에 필요한 전류를 충분히 공급하기 어려우므로 이를 보완해 주어야 한다. 내가 갖고 있는 USB ODD는 직류 5V 어댑터를 연결하는 별도의 단자가 있다. 아마 다른 제품도 마찬가지일 것이다. 집에 굴러다니는 직류 6~9V 어댑터에 7805 레귤레이터를 연결하여 원하는 전압을 뽑을 생각을 잠시 해 보았지만 방열판도 달아야 하고 무엇보다도 납땜질을 해야 된다는 것이 성가시다. 차라리 2A 이상이 충분히 나오는 휴대폰용 충전기를 활용하는 것이 나을 것 같았다. 충전용 케이블은 비닐백을 하나 채울 정도로 차고 넘치니 충전할 기기에 연결하는 끝부분을 잘라내고 어댑터용 플러그를 연결하면 된다. 마침 납땜형이 아니라 볼트를 채워서 구리선을 조일 수 있는 플러그가 있어서 납땜인두를 꺼내 들지 않고도 작업을 할 수 있었다.

전원 케이블을 만들다. 원래 LINE의 스마트 스피커인 'WAVE'에 쓰이던 것.

다른 방법으로는 SATA ODD에 SATA/IDE to USB 2.0 adapter를 달아서 연결하면 된다. NanoSound CD 플러그인이 설치된 상태에서 이렇게 하여 ODD를 연결해 보았다. 'NanoSound CD' 메뉴가 생성되었지만 도대체 재생이 되지 않는다. 플러그인을 다시 설치해 볼까? SSH로 연결하여 명령행에서 삭제한 뒤 웹브라우저를 연결하여 재설치를 시도했는데 삭제가 깨끗이 되지 않아서인지 오류가 발생하였다. 이럴 때에 힘을 발휘하는 것은 바로 '공장 초기화'. 그러나 초기화를 한 다음 플러그인 재설치 후에도 오디오 CD 재생이 되지 않았다. Building a Raspberry Pi CD Player for Free 웹문서를 다시 잘 읽어보았다. 이것은 NanoMesher에서 판매하는 라즈베리 파이 제품을 DAC와 함께 구입할 때에만 100% 기능을 하는 것인가? 그렇다면 나와 같이 별도로 라즈베이 파이를 구입하여 볼류미오를 직접 설치한 사람은 유료 계정으로 전환을 해야 되는가? 이런 의구심을 갖고 My Volumio "VIRTUOSO" 플랜(연간 39,922원)으로 올려 보았다. 그랬더니 비로소 'Audio CD' 메뉴가 보이면 CD 재생이 가능해졌다. VIRTUOSO 플랜을 15일 무료 사용 후 정말로 완전 유료로 전환할지 지 고민해 봐야 된다. 라즈베리 파이 구입 이후 케이스를 사고 유료 플랜까지! 돈이 야금야금 들어간다. 하지만 블루투스를 이용한 재생도 비로소 가능해졌다.

  
마이 볼류미오의 플랜 세 가지.

ODD를 CD 플레이어로 쓸 수 있다는 것은 매우 기분이 좋은 일이다. 단, 작동 소음은 해결이 필요하다. 적당히 흡음재를 채운 상자에 넣어 버리는 방법이 있을 것이다. 방열 대책도 세워야 할까?

다음 숙원 사업은 유튜브를 직접 재생하는 것이다. 예전에는 플러그인으로 아주 쉽게 설치를 할 수 있었다고 하는데 최근 구글의 정책이 다소 폐쇄적으로 바뀌어서 그런지 YouTube2 플러그인은 소스 코드로부터 힘겹게 설치해야만 한다(https://github.com/patrickkfkan/volumio-youtube2). 

이 플러그인의 data retrieval method을 아직은 완벽히 이해하지는 못하였다. GitHub에 나온 구글 API를 이용하는 방법을 어렵게 따라해 보았으나 재생이 원활하게 되지 않아서 가장 간단해 보이는  'Scraping'을 이용하였다. 신기하게도 소리가 난다!! 단, 컴퓨터의 웹브라우저나 스마트폰의 유튜브 앱을 사용하는 것만큼 편리하게 검색을 하기는 어렵다. 

참, 나는 광고가 없는 유튜브 프리미엄(유료) 사용자인데 볼류미오의 YouTube2 플러그인 설정에서는 구글 계정을 입력하는 설정 창이 띠로 보이지 않았다. 혹시 마이 볼류미오 계정으로 사용한 지메일 주소가 알아서 전달이 되었는지?
 

이만하면 볼류미오 기능의 절반 정도는 활용하는 수준이 된 것 같다. 유료 스트리밍 서비스에는 아직 관심이 없고, 보유한 오디오 CD를 전부 파일로 전환할 엄두도 나지 않는다. CD는 몇 장 되지 않지만, 태그를 정리하는 것이 너무나 성가시기 때문이다.


인간은 적응하는 동물 - 마이크로소프트 스컬프트 인체공학 데스크톱!

출장을 마치고 돌아와서 출근을 하니 일주일 전에 주문하였던 마이크로소프트 스컬프트 인체공학 데스크톱(Sculpt Ergonomic Desktop) 키보드 & 마우스 세트가 나를 맞는다. 오랫동안 사용했던 Dr.maus 버티컬 마우스가 망가져서 적당한 대체품을 찾다가 아예 키보드도 인체공학적으로 만들어진 것을 써 보기로 한 것이다. 과연 이 키보드에 적응을 할 수 있을까?

사실 나도 키보드를 완벽하게 암기하고 치는 사람은 아니다. 각 글쇠를 담당하는 최적의 손가락이 있음은 당연하지만, 대학교에 입학하면서 처음으로 전산실 더미 터미널에서 FORTRAN 실습을 하면서 대충 익힌 타자 버릇은 고치기가 참 어렵다. 그래도 인간은 적응의 동물이라서 아침에 포장을 풀고 처음 글쇠를 누르면서 느끼던 어색함은 한 시간 정도가 지나니 많이 사라졌다. 

자음은 왼손, 모음은 오른손이라는 두벌식 자판은 왼손을 더욱 바쁘게 일하도록 만든다. 특히 스마트폰을 양 엄지손가락으로 치면서 왼손 엄지손가락이 무리를 하여 만성적인 통증에 시달리게 되었다. 스마트폰을 컴퓨터 자판과 같은 배열로 하여 손가락을 놀리니 당연히 왼손 엄지가 많이 쓰이게 된다. 모음보다 자음은 당연히 사용 빈도가 높고, 시프트나 특수키를 누르려면 더욱 많이 일을 해야 한다.

이렇게 희한한 모양의 키보드이지만 손목을 편안하게 받치면서 팔꿈치를 자연스런 각도가 되도록 바깥쪽으로 벌리고 입력을 하니까 작업이 매우 편하다. 잘못된 손가락 이용 습관도 자연스럽게 교정이 될 것으로 생각한다. 

F와 J 글쇠의 도드라진 곳에 양 손의 엄지손가락을 자연스럽게 얹고 타이핑을 시작하는 것이 무엇보다 중요하다. 유난히 오타가 많이 날 때와 그렇지 않을 때를 비교해 보면 이렇게 기본 위치에 손가락을 잘 놓았는지에 따라서 달라지는 것 같다. 맨 아랫줄의 B(ㅠ) 글쇠가 왼손 위치로 뚝 떨어져 있다는 것에 빨리 익숙해지도록 하자. 

라즈베리 파이도 주말을 맞아서 작은 변화를 겪었다. 알루미늄 케이스를 씌워 준 것이다.
금속 케이스 속에서도 와이파이 신호를 잘 받는것이 신기하다.
가공이 정확하게 되어 있어서 아주 잘 들어맞는다. 작동 상태를 나타내는 LED 불빛도 잘 보인다. 오디오 앰프 등을 만들 때 가장 많은 노력이 들어가는 것이 바로 케이스(섀시)이다. 자작품에 계속 애정을 쏟으며 쓰게 만드는 중요한 요인이기도 하다. 생활용품으로 어설프게 만들어 쓰는 것도 한두번이지, 기성품 케이스를 쓰거나 또는 CAD를 익혀서 도면을 만든 뒤 맞춤 가공을 하는 것이 훨씬 바람직하다고 본다.

2021년 6월 24일 목요일

2021 한국미생물생명공학회 국제학술대회 및 정기학술대회 참석 이틀째

여러 사정으로 지난 2년 동안 외부에서 열리는 학술행사를 전혀 참석하지 못하였다. 한국미생물생명공학회에서는 2021년 학술대회를 온·오프라인에서 동시에 개최하기로 어려운 결정을 내려 주었다. 방역 수칙을 지키면서 현장에서 진행을 함과 동시에 발표 상황을 동영상 스트리밍으로 동시에 내보낸다는 것은 정말 많은 준비와 노고가 필요할 것이다.

첫 세션에서 구두 발표를 할 예정이었던 나는 현장 참석자가 적을지도 모른다는 걱정을 하였으나 그것은 기우였다. 특히 개최지가 부산(BEXCO)이라는 점은 오랫동안 코로나-19로 외부활동을 하지 못했던 사람들의 답답함을 해소시켜 주는 좋은 기회가 되어서 기대를 훨씬 뛰어넘은 참여도를 달성하게 된 것 같다. 나의 발표 제목은 '유전체 해독을 통한 보툴리눔균의 안전관리(Genome information-based biosafety management of Clostridium botulinum)'이었다. 주요 내용은 한국생물안전협회 전자저널 제2권 1호(2021년 3월호; 회원 가입 필요)에 발표한 논문에 바탕을 두고 있다.


혹시나 나중에 활용할 수 있을까 싶어서 노트북 컴퓨터를 펼쳐 놓고 내 발표를 녹음(녹화가 아니라)해 보았으나 음질이 나빠서 도저히 쓸 수가 없었다. 내 발표를 온라인으로 들은 사람에 의하면 소리가 너무 울려서 알아듣기 어려웠다고 한다. 나중에 숙소에 들어와서 녹음한 것을 들어보니 모든 면에서 불만스러웠다. 발표 때에도 시간이 부족해서 뒷부분을 순식간에 지나갈 수 밖에 없었는데, 녹음한 것에서는 시간 안배를 제대로 하지 못한 것과 더불어 발음이 명료하지 않았음을 명확하게 느낄 수 있었기 때문이다. 많은 정보를 짧은 시간 안에 발표해야 한다는 생각에 너무 빠르게 말을 한 것이다. 말을 해서 먹고 사는 직업인이 아닌 만큼 제한된 시간 안에 효율적으로 정보를 전달하는 기술이 획기적으로 나아질 수 없음은 어쩔 도리가 없다.

올해에 같은 주제를 가지고 대여섯 차례 발표를 하였었다. 대부분 충분히 시간이 주어지는 세미나였기 때문에 전반부에 너무 많은 설명을 하느라 시간이 뒷부분을 서둘러 끝내는 일은 없었다. 그러나 공식 학술대회라면 보통 30분 정도의 시간이 주어질 뿐이다. '시간이 부족하여 빨리 말을 하지 않을 수 없었다'는 변명은 통하지 않는다. 왜냐하면 30분은 결코 적은 시간이 아니며, 여기에 내가 맞추어야 함이 당연하기 때문이다. 학계 유명 인사가 되어서 plenary lecture를 하는 수준에 올라야 1시간 정도가 주어질 뿐이다. 평생 연구 업적을 30분이라는 시간에 요약해서 발표하는 것이 언제나 가능해야 한다.

이틀째에는 아예 8시 20분부터 시작하는 학생 발표 세션부터 듣기로 했다. 그래야 같은 장소에서 이어지는 심포지엄을 들을 수가 있기 때문이다. 온라인으로 강연을 들으려 해도 이어폰을 갖고 오지 않아서 '그림의 떡'이다.

학술대회 참관기라고 하면 이 분야에서 어떤 주제가 중요하게 다루어지고 있는지, 최신 지견은 어떠한지 등을 기록하는 것이 옳다. 예를 들어 이제는 대학원생의 연구 결과물에서 circular genome map을 발견하는 것도 너무나 자연스러운 현상이 되었다. 유전체 염기서열 분석이나 계통수 등은 매우 보편적인 '연구 언어'가 된 요즘, 어떻게 해서 계속 경쟁력을 확보해 나갈 것인지 고민을 해야 된다.

그런데 이런 학회의 본질적인 내용이 아니라 엉뚱하게도 효과적인 발표 방법, 회의장 사운드 퀄리티의 중요성, 현대 한국어에서 나타나는 억양 변화 등에 더 관심이 간다. 특히 젊은이들의 억양이 과거에 비해서 크게 변했다. 예를 들어 '나는 오늘 밥을 먹었...'라고 말할 때 '고'를 짧고 높게 발음하는 것 등이다. 

변하는 것 자체는 문제라고 할 수는 없으나 세대 사이에 소통을 하는데 어색하고 불편함을 느낄 정도라면 이 현상을 의식하고 있어야 한다고 생각한다. 최근 라디오 뉴스를 들으면서 원고를 읽는 아나운서의 뚜렷하게 달라진 발음을 들으면서 적지 않은 문화적 충격을 느꼈다. 그리고 이러한 변화가 드디어 '쓰는 글'이 달라질 수준까지 이르게 되면 표준 맞춤법을 구사한다는 생각하는 사람들에게는 상당한 저항감을 불러 일으키게 될 것이다.

학회를 마치고 돌아가면 내가 발표했던 것을 다시 녹음해 볼 생각이다. 필요하다면 원고를 아예 써 놓고 읽을 수도 있다. 편집을 거쳐서 30분 분량의 동영상을 만들려면 30분의 몇 곱절에 해당하는 시간이 소요될 것이다. 음성 합성기를 쓸까? 아직 그러고 싶지는 않다. 그러나 누가 알겠는가? '요즘 누가 육성으로 녹음을 해? AI로 만들어진 자연스럽고 멋진 음성 합성기가 얼마든지 있는데!'라고 말하는 시대가 될지도 모른다. 요즘은 공식 문서에서 아무도 손으로 쓴 글씨를 사용하지 않는 것처럼 말이다.

일부 분야의 뉴스 기사는 AI가 쓰는 시대가 되었다. 아마도 머지않아 매시 정각에 방송되는 라디오 뉴스도 사람이 아니라 AI가 읽어주는 시대가 될 것이다. 아, AI 아나운서가 이미 일선에서 활동하고 있구나!(미디어 오늘 2021년 3월 10일).

2021년 6월 22일 화요일

라즈베리 파이(볼류미오 2)의 최적화 및 개선 사항

첫 번째로 적당한 케이스를 씌우는 것이 시급하다. 보드 아래에는 포맥스판을 잘라서 대 놓았지만 이런 모습으로 계속 유지할 수는 없다. 놀랍게도 라즈베리 파이의 구멍에는 직경 3mm 볼트가 들어가지 않는다. 핀바이스로 구멍을 넓혀서 겨우 서포트를 고정하였다.

보조 전원에 대해서도 고민해 봐야 한다. 나는 라즈베리 파이를 배터리로 구동하고 싶지는 않다. 단지 거실에서 듣다가 침실로 가져갈 때 파워를 켠 상태를 유지하면서 어댑터를 다른 콘센트에 연결하고 싶을 뿐이다. 마이크로USB 커넥터를 이용하여 다음과 같은 기능을 유지하는 회로를 만드는 것이 가능할 것이다.
  1. 작동 중인 라즈베리파이에 휴대폰 보조 배터리를 연결한다.
  2. 전원 어댑터를 콘센트A에서 분리한다.
  3. 라즈베리파이(+DAC) 앰프에서 분리하여 다른 방으로 옮긴 뒤 그곳에 있는 앰프에 다시 연결한다.
  4. 전원 어댑터를 콘센트B에 꽂는다.
  5. 휴대폰 보조 배터리를 분리한다.
이 과정에 시간이 얼마나 걸리겠는가? 기껏해야 1~2분이면 충분하다. 1-2 및 4-5 과정에서 비정상적인 상황이 생기지도 않을 것이다. 만약 충전과 동시에 방전이 가능한 대용량 보조 배터리를 사용한다면 마치 노트북 컴퓨터를 쓰듯이 다루어도 될 것이다. 

갖고 있는 CD를 전부 리핑하는 일을 주저하게 만드는 일이 남았다. 바로 리핑한 mp3 파일의 태그 정보가 깨진 것도 해결을 해야 된다. 혹은 아예 태그를 새로 달아야 할 수도 있다. 10년이 넘은 글이지만 How to Auto Convert MP3 ID3 Charset to Unicode (UTF-8)을 숙독하는 것도 좋겠다. 리눅스에서도 쓸 수 있는 오디오 파일 메타데이터 편집기인 EasyTAG의 사용법도 익혀야 된다.

마지막으로는 광학 디스크 드라이브를 라즈베리 파이에 직접 연결하여 오디오 CD를 재생하는 것이다. 이는 볼류미오에서 별도로 설치하는 NanoSound CD plugin을 통해서 가능하다. 이 플러그인이 무료인지는 아직 확인해 보지 않았다. 짧은 글로 설명한 설치 및 사용 방법은 여기에 있다. 광학 디스크 드라이브의 작동 소음이 적지 아니하므로, 선 리핑 후 감상을 할 것이 아니라 CD를 돌리면서 실시간 재생을 원한다면 소음 차단 방법을 생각해 두어야 한다.


2021년 6월 20일 일요일

라즈베리 파이(볼류미오)의 즐거움

볼루미오인가, 볼류미오인가? 웹브라우저에서 접근한 제어 화면에서 한글로 '마이 볼류미오'라고 나오는 곳이 있으니 앞으로는 볼류미오라고 부르기로 한다.

컴퓨터에서 오디오 CD를 리핑하는 일은 손이 많이 간다. 세로형 광학 디스크 드라이브를 쓰는 데스크탑 컴퓨터에서는 CD를 돌리는데 소음이 많이 났다. 구조 상 원래 그런 것인지, 너무 쓰지 않아서 윤활유가 마른 것인지, 수직 상태를 잘 유지하지 못해서 그런 것인지는 잘 모르겠다. 어떤 CD는 재생에는 문제가 없지만 리핑에서 계속 오류가 발생하였다. 이런 것들은 우분투가 깔린 노트북 컴퓨터(광학 디스크 드라이브가 달린 구형)에서 겨우 해결하였다.

리핑용 프로그램은 Windows Media Player(우분투에서는 Asunder)를 사용하였다. 두 프로그램의 설정이 달라서 최종 결과물의 폴더 깊이(단계)도 상이하다. 이것에 적응하는 것도 쉽지 않다! 처음에는 192kbps로 인코딩한 mp3 파일을 USB 드라이브에 복사하여 옮겨 꽂기를 반복하다가 볼류미오에 꽂힌 USB 매체를 직접 네트워크에서 접근할 수 있다는 것을 알게 되어 좀 더 편하게 복사를 하게 되었다. 예를 들어 우분투의 Xfce에서는 파일 관리자('Thunar')를 실행한 뒤 주소창에 'smb://192.168.0.10/usb를 치고 사용자 이름과 암호를 치면 된다. 리눅스를 처음 공부할 때 samba를 익히면서 서로 다른 컴퓨터 사이에 저장장치와 프린터를 공유할 수 있다는 것을 알고 신기하게 생각하던 기억이 난다. 아주 오래전의 일이다.

Windows Media Player에서는 리핑 후 아티스트/앨범/곡명이 제대로 나타난다. 그런데 파일 관리자에서 접근을 하면 각 앨범(폴더)의 첫 번째 트랙에 대해서만 이들 정보가 전부 없는 것으로 나타난다. 아래의 스크린샷을 보라. 볼류미오에서 열면 이렇게 글자가 깨져서 나온다. 다른 윈도우 컴퓨터에서 리핑하면 어떠한지 알아 보아야 한다.

 

곡 관련 정보를 인터넷에서 가져오고 이를 태그로 정리하는 일에는 아직 익숙하지 않다. 이 과정을 능숙하게 하려면 시간이 좀 걸릴 것이다. 음원 정보를 가져올 수 있는 DB와 태그 정리 프로그램에 대해서 좀 더 알아보아야 한다. 우분투에서 리핑한 것은 무슨 영문인지 곡 관련 정보가 전혀 자동으로 붙지 않았다. 그래서 EasyTAG라는 것을 이용하여 겨우 태그를 달 수 있었다. Windows Media Player에서 리핑한 것도 이것으로 다시 수정하였다. mp3 파일에 곡 관련 정보가 도대체 어떻게 들어가는지, 정보 DB는 어떤 것을 써야 하는지 등을 앞으로 공부해야 한다. 사실 더욱 중요한 것은 손실 압축을 이해하고 적절한 조건을 결정하는 것이다. 비트레이트 192kbps로 인코딩하니 14장 정도의 CD를 수록하는데 약 1.2GB의 저장용량이 들었다. Windows Media Player의 옵션->음악 복사 탭에서도 'CD당 86 MB를 사용합니다(192Kbps).'라는 정보를 볼 수 있었다.


이 작은 물건이 큰 즐거움을 주기 시작하였다.

아무리 라즈베리 파이가 큰 즐거움을 준다 하여도 방구석에만 쭈그리고 앉아서 휴일을 보낼 수는 없는 노릇이다. 아내와 아들과 함께 계룡산 동학사를 찾았다. 줄지어서 주차장으로 들어가면서 '차가 꽤 많네요'라고 했더니 관리인이 이렇게 대답했다. '이제 겨우 500대 들어왔는걸요. 2천 대는 차야죠...' 동학사 소형 주차장에 2천 대? 그렇게 많은 차가 어떻게 차곡차곡 주차할 수 있을까?

코로나19로 사람들의 바깥 활동이 얼어붙지 않았더라면 아마 나는 밀리는 차량 행렬에 기겁하여 박정자 삼거리에서 차를 돌렸을지도 모른다. 7월부터는 사회적 거리두기가 다소 완화된다고 한다. 백신 접종률이 계획대로 순조롭게 올라가면 사람들도 좀 더 안심을 하고 밖으로 나올 것이고 자영업자들의 숨통도 트일 것이다. 어서 그런 날이 오기를 빈다.

2021년 6월 20일. 내와 함께 계룡산 동학사 가는 길에.