2019년 8월 10일 토요일

하루에 위 내시경 검사 두 번 받은 사연

건강이 좋지 않으셨던 아버지께서는 정기적인 위 내시경 검사를 무척 싫어하셨던 것으로 기억한다. 검사일이 다가오면 며칠 전부터 몹시 신경을 쓰시고 힘들어 하셨다. 그 모습을 봐 왔던 나는 직장에서 처음 내시경 검사를 하면서 자연스럽게 수면 내시경 검사를 선택하게 되었다. 그러다가 일반 내시경을 처음으로 받게 된 일이 생겼으니 사연은 이러하다. 가벼운 위궤양 증세가 있다고 하여 약 처방을 받고 2주 정도의 투약 치료가 끝난 뒤 재검을 하기로 했는데 담당자는 아주 간단하게 '일반 내시경 하실 거죠?'하면서 접수를 해 버렸다.

이런, 드디어 내가 일반 내시경을 하는구나. 

무척 긴장을 하고 검사대에 올랐는데 생각보다 많이 힘들지는 않았다. 그래서 그 이후로는 계속 일반 내시경으로만 검사를 받았다. 3년 전에는 대장 내시경을 같이 하느라 수면 내시경 검사를 했고, 2년 전에는 일반 검사를 받는데 십이지장쪽을 검사하는데 구역질을 좀 많이 했다. 그래서 작년에는 오랜만에 편하게 받아보자고 수면 검사를 택했다. 

일년에 한 번, 마치 숙제를 제출하듯 올해에도 건강검진 날짜는 다가왔다. 이번에는 또 무슨 방식으로 할까? 간편하게 빨리 끝나고 검사 후 맘대로 운전을 해도 되는 일반 방식이냐, 돈이 좀 들지만 편하게 치를 수 있는 수면 방식이냐. 일단 일반 방식으로 접수를 하고 당일날 마음이 바뀌면 수면 방식으로 하겠다고 이야기를 해 두었다.

검사날(오늘)이 되어 아침 일곱시 반도 되기 전에 병원에 도착하였다. 일반 내시경으로 접수를 했지만 수면 내시경으로 하고 싶다고 했더니 일단 변경이 되는지 알아보겠다면서 접수 직원은 검사실로 전화를 돌렸다. 추가로 내야 하는 비용은 4만원. 적은 금액은 아니었다. 그런데 검사실에서는 아직 전화를 받지 않았고, 일반 내시경으로 해야 빨리 끝나기 때문에 아침 일찍 오시라고 연락을 했다는 것이었다. 

그렇다면 일반 내시경으로 하지 뭐.

원래 접수했던 방식으로 검사를 받겠다고 했더니, 접수창구 직원은 내시경을 제일 먼저 하는게 어떻겠냐고 했다. 뭐라고? 지금까지 십수 년 건강검진을 받으면서 내시경은 항상 마지막 코스였다. 검사 항목 중에서 가장 힘든 것이니 그렇게 배치를 하는 것이 자연스럽기도 했고, 위 내시경을 먼저 받으라고 권장을 받은 적도 내 기억으로는 단 한 번도 없었다.

에라, 모르겠다. 뭐 그렇게 하지요.

그래서 옷을 갈아입고 내시경 검사실로 행햤다. 시각은 오전 8시가 갓 넘었고, 검사실에서는 8시 15분쯤에 검사가 시작되므로 다른 항목부터 먼저 받고 계시면 부르겠다고 하였다. 그래서 한 층 아래로 내려가 다른 검사를 먼저 받았다.

곧 호출을 받고 내시경 검사실로 향했다. 깨끗하게 소독된 기구를 오늘 내가 처음 쓰는 사람이구나! 가스가 빠지는 약을 받아 삼키고 검사실로 들어갔다. 목 마취용 약을 뿌리고 검사대에 누웠다. 오래 전에는 목 마취용 약을 입에 머금고 10분 이상을 기다리게 하였었다. 그러고는 약을 삼킨 다음 별도의 마취제를 또 검사 직전에 목에 뿌렸던 것으로 기억한다. 그때는 약을 입 안에 물고서 이리저리 움직이면 혀까지 마비가 되어서 검사가 다 끝나고도 한참 동안 감각이 돌아오지 않아서 식사를 하기 힘들었었는데, 언젠부턴가는 마취약을 목에 뿌린 즉시 검사를 하니 세상이 참 편해지긴 했다.

검사는 생각보다 매우 수월하게 끝났다. 내가 생각하기에도 매우 편안했고, 의사도 너무 잘 받는다고 칭찬(?)을 하면서 계속 사진을 찍었다. 별 문제가 될 소견은 없다면서 검사를 끝낸 뒤 찍은 사진을 보여주려는 찰나, 모니터에는 보이는 이미지가 없다. 내시경 카메라를 입 속에 넣기 전에 찍힌 것 하나만 덜렁 남아 있는 것이 아닌가.

'어머, 사진이 왜 안 넘어왔지?'

이런 일이 생기기도 하는구나. 별 이상이 없으니 그냥 이대로 마칠 것인가? 그래도 기록은 남겨야 하지 않는가? 결론은 내시경을 다시 한 번 더 받는 것으로 모아졌고 - 잘 참는다고 칭찬을 받은 것이 잘못이다! - 담당 직원들은 매우 미안해했다. 나도 별 불만을 제기하기 않고 그러라고 했다. 목 마취는 다시 할 필요가 없다고 했다. 다시 입에 기구를 끼우고 검사대에 옆으로 누웠다. 오, 이런...

두번째 검사는 조금 더 힘들었다. 이미 한 번 훑어 보았으니 담당 의사도 먼젓번보다는 신속하게 검사를 끝냈다. 거듭 미안하다는 말과 함께... 이런 일을 겪는 것이 내가 처음이냐고 물었는데 그건 아니라고 했다. 솔직히 말하자면 채혈을 위해 주삿바늘을 찔렀는데 혈관이 잘 잡히질 않아서 다른 곳을 또 찌르는 것보다 더 힘들지는 않은 정도라고나 할까? 폐암이라고 해서 왼쪽 폐를 절제했는데 나중에 수술을 마치고 났더니 실제 잘라내야 할 폐는 오른쪽인 것을 나중에 알게 된 것에 비하면 덜 황당무계한 일 아니겠는가?

내 자신이 별로 힘들지 않았고, 대단한 일이라 생각하지 않았기에 문제를 제기하지는 않았다. 어찌보면 두 번 겪기 힘든 경험 아닌가. 하지만 위 내시경 검사를 매번 할 때마다 봅시 힘들어하는 사람이라면 어떻게 했을까? 아마 몹시 화를 내고 다시 하지 않겠다고 할 것이다.

아마 내년부터는 위 내시경 검사를 하기 직전에 항상 카메라 작동이 잘 되냐고 묻는 버릇이 생길 것 같다. 그리고 일반 내시경으로 할지 혹은 수면 내시경으로 할지 망설이는 일도 줄어들 것이다.


2019년 8월 7일 수요일

SAM flag에 대해서 좀 더 알아보자 - mapping 여부에 따른 read 추출하기

SAM/BAM 파일로부터 properly paired (mapped) read를 꺼내려면 -f 0x03 flag를 쓰면 충분하다. 더욱 간단하게는 두번째 비트가 1이면 된다. -f 0x02의 의미가 proper pair이기 때문이다. 그러나 paired read가 쓰인 경우 항상 0x01과 따라다니게 되므로 -f 0x03이 더욱 바람직하다.

이토록 간단한 flag이지만, 실제 매핑이 이루어진 read의 입장에서 4가지의 경우로 세분한다면 이해의 폭을 더욱 넗힐 수 있다. Paired fastq file(I & II)을 이용하여 매핑을 하였을 때 하나의 참조서열 내부에서 정상적인 pair를 이루는 모든 경우는 다음이 전부이다. 화살표는 참조서열 위에 매핑일 이루어진 read를, 별표(*)는 fastq 파일에 수록된 상태의 서열을 reverse complementary로 전환해야 함을 의미한다. 내가 알기로 first 및 second는 _1 및 _2 파일을 의미한다. pair를 이루는 시작(left)과 끝(right) read를 의미하는 것이 아니다.

First           Second        Second           First
-------▶......◀-------     -------▶......◀-------
from I         from II*       from II         from I*
  [A]            [B]            [C]            [D] 

(아, 도대체 html로는 부등호 기호를 써서 화살표를 표현하기가 어려우니...)

A-B의 네 가지 read는 단 한번씩만 mapping되어서 SAM 파일 내에서 하나의 alignment record로 존재한다고 가정하자. 그러면 각각의 alignment는 어떤 flag을 갖게 될 것인가? flag의 설명은 samtools flag 명령으로 표시되는 것과 SAM flag decorder에서 쓰이는 용어가 조금 다르지만 편의상 후자의 것을 쓰기로 하자.

기본적으로 여기에 보인 네 가지 alignment는 전부  웹사이트기본적으로 read paired(0x01)와 read mapped in proper pair(0x02)를 만족하므로 0x03을 기본값으로 깔고 있다. 다음으로 생각할 것은 이 read가 pair 중 첫번째 혹은 두번째 read인가, 그리고 이 read와 mate 중 어느 것이 참조서열에 대하여 reverse로 존재하는가의 여부이다. 이는 다음과 같이 4가지의 flag으로 표현된다.

  • 0x10: read reverse strand
  • 0x20: mate reverse strand
  • 0x40: first in pair
  • 0x80: second in par
A는 mate reverse strand(0x20), first in pair(0x40)이다. 따라서 0x03 + 0x20 + 0x40 = 0x63 = 99
B는 read reverse strand(0x10), second in pair(0x80)이다. 따라서 0x03 + 0x10 + 0x80 = 0x93 = 147
C는 mate reverse strand(0x20), second in pair(0x80)이다. 따라서 0x03 + 0x20 + 0x80 = 0xa3 = 163
D는 read reverse strand(0x10), first in pair(0x40)이다. 따라서 0x03 + 0x10 + 0x40 = 0x53 = 83

99/147, 그리고 163/83은 NGS read alignment를 다루는 사람이라면 잊어서는 안되는 숫자가 되겠다. samtools view -f 99로 추출한 read는 -f 147로 얻은 것과 mate 관계이고, -f 163과 -f 83 역시 같은 관계이다. 이렇게 얻은 모든 파일을 합치면 -f 0x03으로 추출한 read 세트와 동일한 것이 된다. 혹시 내가 전개한 이론이 맞지 않다고 생각하는 독자가 계시다면 언제든지 연락 주시길!

Unmapped read에 대해서는?

read unmapped는 0x04(0x4, 또는 십진수로 4라고만 써도 되는데 버릇이 되어서 계속 두 자리 16진수로 표현하고 있다), mate unmapped는 0x08이므로 이를 적절히 조합하면 unmapped pair와 어느 한쪽만 mapping이 된 pair를 찾을 수 있다. 내가 생각하는 가장 간단한 flag 값은 이러하다. 
  • both unmapped: -f 12 (0x04 + 0x08, 16진수로는 0x0c)
  • read mapped, mate unmapped: -f 0x08 -F 0x04
  • read unmapped, mate mapped: -f 0x04 -F 0x08
그런데 Novocraft의 웹사이트(Extracting unmapped reads from a BAM file produced by NovoAlign)에서는 좀 더 복잡한 flag 값을 제시한다.
  • both unmapped: -f 12 -F 256
  • read mapped, mate unmapped: -f 8 -F 260
  • read unmapped, mated mapped: -f 4 -F 264
숫자 단위가 큰 flag은 무엇을 의미하는지 알아보자.
  • 256(0x100): not primary alignment
  • 260: 256 + 0x04(read unmapped)
  • 264: 256 + 0x08(mate unmapped)
이것을 -F로 적용하니 직관적으로 이해를 하기가 좀 어렵다. 테스트를 해 보면 내가 제시한 flag로 하는 것과 결과에 차이가 없다. 이로써 이틀에 걸친 SAM flag 공부하기를 마치고자 한다. SAM and BAM filtering one-liner도 참고하기에 좋다.



2019년 8월 6일 화요일

samtools flagstat로 출력되는 숫자를 재현하기

samtools flagstat는 SAM/BAM 파일에 수록된 read alignment 정보를 출력해 주는 매우 유용한 프로그램이다. 그러나 출력되는 정보는 기본적으로 read가 아닌 'alignment'라서 직관적으로 이해하기 어려울 때가 많다. 특히 하나의 read가 reference 서열에 존재하는 반복 서열에 의해 여러 곳에 매핑될 경우 계산이 잘 맞지 않는 것처럼 느껴진다. 이것을 명확하게 이해하기 위하여 samtools view -f (또는 -F) INT 명령의 flag를 잘 조합하여 samtools flagstat로 표현되는 수치와 같은 값이 나오게 만들어 보았다.

솔직하게 고백하자면 나는 거의 항상 CLC Genomics Workbench에서 박테리아 게놈의 NGS data를 다루기 때문에(de novo assembly 위주의 업무) SAM/BAM 파일을 직접 다룰 일은 없다고 해도 과언이 아니다. 하지만 데이터 조작의 기본 원리를 이해하거나 사용 프로그램을 접하기 어려운 사람에게 설명을 하려면 CLC Genomics Workbench만을 고집할 수는 없다. 그래서 IGV(Integrated Genomics Viewer)도 가끔은 실행해 봐야 한다.

미생물 유전체 서열로부터 64780 x 2(129560 reads, 2x150 nt)개의 가짜 fastq file을 만들었다. 사용한 시뮬레이터는 ART MountainRainier이다. 레퍼런스 서열은 read를 만들어낸 원본 read와 가까운 유전체를 대략 같은 간격의 약 500개의 조각(크기는 1 kb)으로 나눈 것이었다. 매핑에는 bowtie2를 사용하였다.

$ samtools view -H mapping.sam # 헤더 정보만 보여줌
$ samtools view -b mapping.sam > mapping.bam
$ samtools view -b mapping.sam -o mapping.bam # 같은 결과
$ samtools flagstat mapping.bam 
[1] 131900 + 0 in total (QC-passed reads + QC-failed reads)
[2] 2340 + 0 secondary
[3] 0 + 0 supplementary
[4] 0 + 0 duplicates
[5] 21390 + 0 mapped (16.22% : N/A)
[6] 129560 + 0 paired in sequencing
[7] 64780 + 0 read1
[8] 64780 + 0 read2
[9] 15554 + 0 properly paired (12.01% : N/A)
[10] 15710 + 0 with itself and mate mapped
[11] 3340 + 0 singletons (2.58% : N/A)
[12] 122 + 0 with mate mapped to a different chr
[13] 105 + 0 with mate mapped to a different chr (mapQ >=5)

그러면 각 줄번호에 해당하는 숫자를 재현해 보자. 0만 표시된 것은 제외하였다. alignment의 수가 필요한지(samtools view -c), 혹은 이로부터 read name에 해당하는 것을 뽑아낼 것인지를 명확히 해야 된다.

[1]은 read의 수가 아니라 alignment의 수이다. 다음과 같이 하면 된다.

$ samtools view -c mapping.bam
131900

[2]는 primary와 secondary mapping을 이해해야 한다. 256을 16진수로 표현하면 0x100이다. 따라서 -f 0x100이라고 써도 된다.

$ samtools view -c -f 256 mapping.bam
2340

수치가 나오지 않은 [3,4]는 생략하자. [5]는 mapped read의 alignment 수를 의미하므로, SAM/BAM flag의 0x04(unmap)의 반대, 즉 -F 0X04를 쓰면 된다.

$ samtools view -c -F 0x04 mapping.bam
21390

만약 properly paired read에 대한 것만을 추출하고 싶다면 -f 0x03(1 for paired, 2 for proper_pair)으로 설정해야 한다.

[6]은 매핑 결과와는 관계없이 최초 read에 들어있던 read의 수를 의미한다. 이는 이미 알고 있는 숫자이다. 그러나 BAM 파일에서 굳이 구하고 싶다면 다음 계산에서 나온 수치에 2를 곱하면 된다. BAM file에서는 simulated read name 끝부분의 /1 또는 /2가 제거된 상태라서, uniq 명령을 거치고 나면 그 수가 절반으로 줄기 때문이다. sort는 꼭 하지 않아도 된다.

$ samtools view mapping.bam | cut -f1 | sort | uniq | wc -l
64780

[7]과 [8]은 fwd 및 rev read file에 들어 있는 read의 수이므로 서로 동일하며, 이미 알고 있는 값이므로 넘어간다. 전체 read 수의 절반임은 당연하다.

[9]는 조금 어렵다. Properly paired를 의미하는 flag은 0x02인데, 이는 반드시 0x01(paired)과 같이 쓰인다. 따라서 -f 0x03을 주어서 read의 수를 계산한 다음, pair를 만들기 위해 2를 곱하면 된다. samtools view -c -f 0x03 mapping.bam이라고 명령을 내리고 싶은 강렬한 욕구가 느껴지지만, 그렇게 하면 안된다. 왜냐하면 proper pair를 이룬 상태로 reference 내의 여러 곳에 결합할 수도 있기 때문이다. 실제로 이렇게 계산하면 15554가 아니라 16760이 나온다.

$ samtools view -f 0x03 mapping.bam | cut -f1 | sort | uniq | wc -l
7777

[10]은 read 쌍이 둘 다 매핑이 된 것을 의미한다. Read 쌍의 거리와 방향이 적정한지는 중요하지 않다. 이것은 어떻게 flag를 정해야 할까? read도 unmapped가 아니고(-F 0x04), 그의 짝도 unmapped가 아니여(-F 0x08)! 따라서 -F 0x12를 하여 계산되는 read의 수에 2를 곱한다.

$ samtools view -F 12 mapping.bam | cut -f1 | sort | uniq | wc -l
7855

다음으로 [11]은 꽤 까다롭다. sinlgeton, read pair의 한쪽만 mapping이 된 것을 산출하는 것이다. 여기에서는 -f 0x04 -F 0x08을 하거나 -f 0x08 -F 0x04를 하면 된다. 두 명령어를 따로 실행해서 합쳐야 할 것 같은 생각이 들지만, read name을 각각 추출하여 비교해 보면 똑같다. 이것은 read pair를 산출하는 것이 아니므로 곱하기 2를 하면 안된다.

$ samtools view -f 0x04 -F 0x08 mapping.bam | cut -f1 | sort | uniq | wc -l
3340

[12,13]은 아직 정확한 flag 조합을 찾지 못하였다. SAM/BAM flag의 의미를 파악하려면 매SAM/BAM speficiation 파일이나 samtools flags 명령어, 또는 SAM flag 디코더를 적절히 활용해 보라.

Paired read, 즉 [5]와 singleton[11]은 후속 분석에서 유용할 때가 많다. 특히 11번에 해당하는 read의 pair를 추출해 놓으면 read pair에 의한 연결 부위를 찾는데 활용할 수 있다. 이상에서 살펴본 바와 같이 SAM/BAM flag을 자유롭게 쓸 수 있게 되면, samtools bam2fq 명령을 이용하여 BAM 파일에서 조건에 맞는 read를 직접 추출할 수도 있다. pair가 깨진 상태라면 BBmap의 repair.sh 및 관련 명령어(Repair Guide)를 적절히 활용하면 매우 편리하다.

2019년 8월 5일 월요일

GenoGlobe.kr, 새롭게 시작하는 블로그

기존에 사용하던 웹호스팅 서버에 DokuWiki를 새로 설치하고 블로그 플러그인을 깔았다. 설정을 약간 매만져서 https://genoglobe.kr/이라고만 치면 곧바로 연결이 되게 만들었다. 보통 DokuWiki를 설치하면 http://mydomain/path/to/installation/doku.php?id=start가 기본 접속 주소가 된다. 지금 보이는 이 웹사이트는 구글 블로그에 기반한 것으로서 GenoGlobe.com  도메인을 사용한다.

아래에 소개한 GenoGlobe.kr의 로고는 인터넷에서 찾은 지구 이미지(수정후 비상업적 용도로 재사용 가능한 것, 링크)에 Century Gothic 글꼴의 G 문자와 CGView를 이용하여 내가 직접 그린 E. coli genome image(링크)를 겹친 것이다. 그래픽 소프트웨어를 쓸 줄 아는 것이 없으니 작업은 그저 단순하게 파워포인트에서! 글꼴은 가능하다면 원형에 가깝게 G가 표현된 것을 골랐다. 어찌보면 구글 로고의 첫 글자를 연상시킬지도 모르지만 전혀 의도한 바는 아니다.

GenoGlobe.kr의 로고(링크).

가장 최근의 구글 로고에서 'G'자가 디자인적으로 완벽하지 않다는 논란이 있어서 이를 소개해 본다. 글 제목은 별로 마음에 들지 않는다.

논란의 'G'! 구글 로고 변경의 G 로고 디자인은 '실수' 범벅이다? 아니다? 정답은!


파비콘은 몇 번을 새로 만들었는데 썩 마음에 들지는 않는다. 기본 개념은 GenoGlobe의 'G'에 이중 나선을 결합한 것이다(링크).

아마도 올해 안에 GenoGlobe.kr로 내 블로그를 완전히 이전하게 될 것 같다. 그 이후에는 GenoGlobe.com 도메인을 더 이상 유지하지 않는 것도 비용 절감 차원에서 고려해볼 수 있으나, 나의 통일된 '브랜드' 유지 차원에서 그냥 둘 수도 있다.

2019년 7월 31일 수요일

[독서 기록] 로지트, 사로잡힌 영혼

얼마 전에 어머니를 뵈러 갔다가 정규 누님이 위암으로 투병을 하다가 최근에 세상을 떠났다는 갑작스런 소식을 들었다. 정규 누님은 1956년 서울 출신으로, 화가 생활을 하셨다. 어머니와 정규 누님 어머니는 사촌 지간이니 나와는 육촌 사이가 된다. 아주 어려서는 어머니쪽을 통해 왕래가 있었고 그 이후로는 1986년에 서울 갤러리에서 열렸던 첫 개인전에서 다시 만났으며, 그리고 삼십년 가까이가 흘러 몇년 전에 내가 졸업한 학교(대학원 화학과)에 입학하여 후배가 된 누님의 딸, 그러니까 나에게는 조카와 함께 만나 대전에서 저녁을 같이 먹은 것이 전부였다. 이전의 만남 이후로 많은 시간이 흘렀지만 누님은 생각했던 것보다 나이가 더 들어 보였고, 얼굴에서는 세월의 더께가 느껴졌었다.

내가 미술에 요즘 관심이 많이 갖게 되어서 살아계실 때 좀 더 자주 만나서 교류를 했으면 좋았을 것을... 아쉽고 죄송스런 마음이 누님이 2002년 출판했었던 자서전을 구해서 읽었다. 누님의 홈페이지에 책 소개가 있다는 것은 알고 있었지만 이렇게 고단한 삶을 살았는지는 정말 몰랐었다.


이정규(1956~2018)의 자서전. 로지트, 자로잡힌 영혼(2002)

사업을 한다고 외국으로 떠나서 13년 동안 소식이 끊겼던 아버지가 이란에 정착하였다며 가족들을 불러들인 것이 1977년. 나도 어렴풋하게 그때를 기억한다. 누님은 서울에서 미술대학을 2학년까지 다니고 낯선 땅 이란으로 떠났지만 1978년 이란에 혁명이 일어나면서 가족들은 영국으로 떠나야 했다. 누님은 다시 미국으로 건너가서 대학원을 마치고 1985년에 귀국하였다. 그러나 대학에 자리를 잡고자 했던 희망은 석연치 않은 이유로 좌절을 겪게 된다.

그 이후의 일생은 여인의 몸으로는 감당하기 어려운 것이었고, 먼 친척인 나는 그러한 사정을 전혀 알지 못했었다. 책을 주문하기 위해 인터넷 서점에서 소개의 글을 보다가 비로소 그 삶의 단면을 엿보게 된 나는, 왜 많은 예술가들은 이렇게 어려운 삶을 지탱해 나가야 하는지 안타까운 마음에 젖어들었다. 책에서는 경제적으로도 곤궁하고, 일상적이지 않은 생활을 이어 나가면서도 예술에 대한 고민과 열정을 놓치지 않았던 자신의 이야기를 담담하게 그려나갔다. 누님이 책에서 언급했던 공권력에 의한 핍박과 통제가 정말로 있었던 것인지, 아니면 온전하지 못했던 그녀의 정신 세계에서만 있었던 것인지는 알 수 없다. 희망이라고는 찾아볼 수 없는 생활을 하면서도 혼자의 결심으로 아이를 낳고 키운 것은 어떤 마음에서였을까.

자화상 - 빨간 신호등(1996). 자서전의 표지에도 실렸었다. 출처 링크
창조 놀이(1996). 출처 링크

걱정 없는 곳에서 부디 평안히 쉬시기를...

DC-DC boost converter를 망가뜨리다

저출력의 진공관 싱글 앰프를 위한 B 전원 공급용으로 적당하리라 생각하여 국외에서 구입한 DC-DC boost convert 보드가 있었다. 출력은 40W 정도이고 9~43V를 입력하여 45~390V까지를 만들 수 있다. 아마도 현재 eBay 등지에서 팔리는 소형 승압 컨버터 중 고전압용으로는 가장 널리 팔리는 제품일 것으로 생각된다. 이를 작년부터 착수하여 올해까지 끌었던 43 pentode single amplifier에 장착하여 잘 사용하고 있었다. 100% 만족하는 것은 아니었다. 전압을 조금 올리면 스피커에서 '웅~'하는 잡음이 발생하기 때문이다. 스위칭 전원의 문제점으로 흔히 일컬어지는 고주파 잡음이라고는 볼 수 없다. 43 오극관 자체가 2W 정도로 출력이 낮은데, 그나마 들을만한 수준으로 잡음을 줄이려면 B 전원 전압을 충분히 올리지 못한 상태로 사용해야 했다.

출처: 내 블로그

MOSTET을 사용한 리플 필터 기판(참고 링크)을 여기에 연결하면 상황이 나아질거라 생각을 하였다. 그런데 호기심이 너무 과해서 6LQ8 푸시풀 앰프에 연결한 것이 화근이었다. 최근에 만들었던 6LQ8 앰프는 50W 수준의 전원트랜스를 사용한다.


43 싱글 앰프에서 사용하던 구성대로 12V 5A 어댑터를 연결한 뒤 전압조정 가변저항을 돌려서 평소보다 높은 212V 정도를 만들고, 이를 리플 필터 기판에 공급하였다. 앰프에서는 소리가 잘 난다. 이렇게 사용하면 무거운 전원 트랜스포머를 대체할 수 있겠다 싶었다. 부스트 컨버터에서 열이 좀 많이 난다 싶더니, 갑자기 이상한 소리와 함께 작동을 멈추었다. 자체 보호 기능이 작동하지 않을 정도로 부스터 보드가 망가진 것 같았다. 이 보드는 한번에 두 개를 구입해 놓은 것이었는데, 과욕을 부리다가 전부 망가뜨리고 말았다. 이것 외에도 저가형 전압 컨버터를 몇 가지 사용해 보았지만 약간만 한계 상황 수준으로 구동하면 생각보다 잘 망가지는 것을 경험하였다.

43 싱글 앰프에만 얌전히 사용하되 여기에 리플 필터만 연결했었다면 망가뜨리지 않고 원하는 목적을 달성할 수 있었을 것이다.

대전 집에 있는 43 싱글 앰프는 졸지에 전원 공급원을 잃은 상태가 되었다. 하지만 별로 실망할 일은 아니다. 예전에 잠시 쓰다가 만 전원 트랜스포머가 있으니 이를 정류하여 리플 필터를 통하면 되지 않겠는가. 다이오드 브리지를 거친 맥류를 그대로 리플 필터로 보낼지, 혹은 평활 캐패시터를 하나 거친 후 보낼지는 생각을 해 봐야 한다.

2019년 7월 29일 월요일

기업의 일본 의존도 심화는 정부주도 R&D 비효율 때문인가?

정부가 주도하는 R&D 프로그램의 효율 문제를 논할 때마다 출연연 근무자의 하나인 나(현재는 기업에서 파견 근무 중)는 항상 죄를 지은 사람처럼 가슴이 철렁 내려앉는다. 미세먼지 등 국가적 이슈가 하루가 멀다하고 터져나올 때에도 마찬가지다. 출연연은 그 많은 예산을 가지고 이런 문제에 진작 대처하지 않고 지금까지 무엇을 했느냐고 늘상 질타를 받는다. '정무적 감각'이 있는 연구자들은 그동안 연구 지원이 충분하지 않았음을 강조하며 위기를 기회를 만들기 위해 힘을 쏟는다. 하지만 이 논리를 아주 조금만 뒤집으면 '출연연 무용론'에 한발 다가설 수 있다. 선진화, 혁신, 효율화, 구조조정, 거버넌스 개편 등 동원할 수 있는 좋은 말들은 얼마든지 있지만 결국 어르고 달래기와 겁주기 사이 스펙트럼 위 어딘가에 있는 말일 뿐이다. '그곳에 투입되는 돈이 아깝다'의 다른 표현이 아니겠는가.

어제 한겨레신문에는 정만기 전 산업자원부 차관(현 한국자동차산업협회 회장)의 인터뷰 기사가 실렸다. 최근 불거지고 있는 일본의 수출규제에 대응하기 위해 정부 차원에서는 일본 의존도를 낮추고자 핵심 소재·부품의 국산화 대책을 마련하고 있다. 이에 대하여 정만기 회장은 정부에서 투자하는 R&D 사업의 효율성을 제고하지 않으면 소용이 없다는 높은 강도의 '뼈 있는' 발언을 하였다.

정만기 전 차관 "매년 20조 R&D 지원 밑빠진 독 물붓기"

쉽게 말하여 엄청난 돈을 매년 쏟아붓고 있으나 국가 R&D의 생산성은 그야말로 바닥이라는 것이다. 연구개발 예산 중 절반 가량이 정부출연연구소와 국공립연구소에 지원되는데, 연구과제를 정부가 결정하므로 시장성이 떨어진다. 명목상으로는 정부 연구과제 성공률이 98%라는데, 실제 사업화까지 성공해야 진짜라는 것이다. 기왕이면 제품이 팔리기 시작하여 연구개발비를 모두 회수하고 이익을 내기 시작하면 비로소 성공한 것으로 평가해 주는 것이 타당하겠다.

한때 독일의 프라운호퍼연구소 모델을 따서 출연연(전부는 아니고 ETRI, KRICT 등 일부)의 체질을 바꾸려는 시도가 있었다. 기사를 찾아보니 2015년, 박근혜 정권때의 일이었고 결국 실행에 옮겨지지는 못했다. 프라운호퍼연구소는 기업이 맡긴 위탁과제에서 예산의 1/3이 나오고, 이를 따내야만 연구소가 자유롭게 선정할 수 있는 1/3의 추가 예산이 배정된다고 한다. 즉 정부출연금의 비중을 줄이고, 민간과 공공 수탁 연구를 통해 예산을 조달하여 제품으로 만들어 판매할 수 있는 사업화까지 이어나가는 연구를 하자는 것이다. 이 논리는 정만기 회장이 공직에 있을 때부터 지금까지 꾸준하게 주장해 온 것이다. 인터뷰 기사에 의하면 정 회장이 산업부 산업기반실장으로 있을 때 출연연을 프라운호퍼 방식으로 개편하는 방안을 마련하였으나 실행에 이어지지는 못했다. 영국이 대처 총리 때 출연연을 모두 없애고 대학에 집중지원한 사례도 정 회장이 발표하거나 기고한 글에서 단골 메뉴로 떠오르는데, 그 결과가 정말 바람직했는지에 대해서는 확인이 필요할 것이다. 정부과제 공모에 제출할 발표자료를 만들어 주거나 과제 수주에 도움을 주는 컨설팅 회사가 있다는 지적은 뼈아프게 받아들일 필요가 있다. 물론 내 주위에서 이렇게 하는 사람은 아직 직접 보지를 못했다. 내 경험이나 네트워킹의 폭이 좁아서 그런 것일 수도 있다.

현재 출연연은 국가과학기술연구회 소속으로서 과기정통부의 영향력 하에 있고, 약 1년여에 걸쳐서 역할과 책임(R&R) 재정립 작업이 마무리된 상태이다.

과학기술계 출연연 R&R 확정안 보니

그 다음으로 출연연을 기다리고 있는 것은 정원 조정이다. 그동안은 퇴직자로 인해 인원이 줄거나 신규 과제를 수주한 경우 출연연의 증원 요청이 대부분 받아들여졌으나 이제는 더 이상 그렇지 않다.

과기정통부, 출연연 정원 조정 착수...'적정 규모 산정해 관리'
과학기술계 정부출연연 구조조정 본격화 - 출연연별 R&R(역할과 책임) 따른 예산·인력 재편

국가 R&D를 바라보는 시각은 칼자루를 준 주무부처에 따라서 달라질 수밖에 없다. 산업통상자원부는 실제 시장에서 팔릴 수 있는 기술을 만들어내기를 원하고, 과기정통부는 공공성이 강하고 원천적인 분야를 '연구'하기를 원한다. 요즘은 경제적 파급 효과의 중요성을 점점 더 강조하고 있어서 과제를 따려는 사람은 구체적인 예측치를 가지고 수치를 만들어 내기에 바쁘다. CRISPR 유전자 가위 기술의 시장 규모를 산출할 수 있을까? 성공하는 사업에서 실제 '과학과 기술'이 차지하는 비율은 생각만큼 높지 않다는 견해도 많은데?

이 시대가 요구하는 일, 그리고 하고 싶은 일(두 가지 일이 겹치면 가장 좋겠지만)을 긍지를 느끼면서 하고 싶다고 주장하면 기업에서 일하는 사람들에게 '배부른 소리 하네'라는 말을 듣기 딱 좋은 것이 출연연 사람들의 현재 모습이다.