2015년 4월 10일 금요일

Scaffolding tool SSPACE

SSPACE는 네덜란드에 소재한 Baseclear라는 회사에서 제공하는 scaffolding tool이다. 정확히 말하자면 SSPACE의 개발자인 Walter Pirovano가 2011년도에 논문 "Scaffolding pre-assembled contigs using SSPACE"을 발표한 즈음에 Baseclear의 생명정보 및 유전체 분석팀에 합류했다고 보는 것이 맞을 것이다. Baseclear 웹사이트 내에 있는 Pirovino의 정보 페이지를 읽어보니 정말 그러하다.

2014년에는 long read를 사용할 수 있는 SSPACE-LongRead가 발표되었다. 어차피 나는 PacBio SMRT Analysis에서 제공하는 HGAP을 사용하고 있으므로 SSPACE-LongRead를 깊숙하게 활용할 생각은 많지 않으나, 테스트는 해 볼 생각이다.

내가 사용하는 SSPACE는 유료 버전인 프리미엄 v2.3이다. Ion Torrent PGM에서 생산한 mate-pair library read를 pre-existing cotig에 엮어서 스캐폴드를 만들기에는 안성마춤인 도구이다. 유전체 해독을 하면서 mate-pair library가 얼마나 활용성이 좋은지는 두말할 나위도 없다. 단, 일루미나에서 mate-pair library를 만들게 되면 mate-pair가 아닌 read가 상당히 많이 발생한다는 것이 문제이다. 그리고 multiplexed sequencing도 아직 안되는 것 같다. 대신 SOLiD의 mate-pair library 키트를 이용하여 Ion Torrent에서 시퀀싱을 하면 분량은 적지만 꽤 괜찮은 결과가 나온다. 단, 인서트의 양 끝에서 각각 시퀀싱을 하는 것이 아니라 한 방향에서 길게 시퀀싱을 한 뒤 사이에 들어있는 어댑터를 제거하여 두 개의 서열 단편을 만들어야 한다. 이러한 ditag 분리과정은 CLC Genomics Workbench에서 매우 간단하게 할 수 있다.

단, 조심할 것이 있다. 일반적인 short insert library의 paired end sequencing이라면 forward-reverse 방향이 되고, mate-pair library의 paired end sequencing은 revers-forward가 된다. 그러나 SOLiD mate-pair library sequencing 결과에서 나온 mate-pair는 revers-reverse이다. 그러니 이것을 bowtie2와 같은 도구로 매핑을 하려면 방향을 아주 잘 맞추어야 한다.

SSPACE의 설정 파일에는 RR로 방향을 지정할 수 있지만, bowtie(2)에서는 --fr(default), --rf, --ff가 전부이다. --rr은 없다. 조금만 생각해 보면 --rr은 --ff와 일맥상통한다. 다만 파일의 순서에 대한 고민이 필요하다. 결론만 말하자면, reverse reverse로 분리된 paired file을 bowtie에서 매핑하려면 다음과 같이 해야 한다. 물론 -I 와 -X 옵션의 값도 실제 라이브러리의 인서트 크기를 반영하도록 잘 맞추어 주어야 한다.


  1. 첫번째 파일을 reverse complementary로 바꾸어서 --fr(default)로 매핑
  2. 또는 첫번째와 두번째 파일의 순서를 바꾸어서 --ff로 매핑

SSPACE의 기본 동작은 다음과 같다. 두번째 커맨드 라인은 extension을 하는 경우이다(-x 1).


perl (path_to_SSPACE)/SSPACE_Premium_v2.0.pl -l libraries.txt -s contigs_abyss.fa -k 5 -a 0.7 -x 0 -b ecoli_scaffolds_no_extension

perl (path_to_SSPACE)/SSPACE_Premium_v2.0.pl -l libraries.txt -s contigs_abyss.fa -k 5 -a 0.7 -x 1 -m 30 -o 20 -b ecoli_scaffolds_extension

확장을 원한다면 -m 과 -o 의 두 가지 옵션을 추가로 지정해 주어야 한다. -m 30은 contig와 read의 최소 overlap이 30 bp란 의미이고, -o 20은 최소 20개의 read가 있어야 overlap을 해 주겠다는 뜻이다.

2015년 4월 9일 목요일

NCBI ftp에서 genome list만 가져오기

NCBI의 ftp site에 점점 많은 유전체 정보가 등록되면서 웹 브라우저로 ftp를 접속하여 전체 목록을 뽑아보는 일이 점점 어려워지고 있다. 아마 파이썬으로 어떻게든 스크립트를 짜면 ftp://ftp.ncbi.nlm.nih.gov/genomes/Bacteria에 있는 폴더 목록을 빼 오는 것이 가능할 것이다.

파이썬 찾아보기는 귀찮으니 웹 검색을 해 보자.

텍스트 파일을 하나 만들어서 다음의 내용을 저장하고 ncbi_genomes.lftp라고 저장한다.

open ftp.ncbi.nlm.nih.gov
user anonymous my_email@aaa.com
cd genomes/Bacteria
#cd genomes/Bacteria_DRAFT
ls
#find
exit

(#로 시작하는 행은 필요에 맞게 적절히 해제하라는 뜻이다. 예를 들어 find 명령을 쓰면 하부 내용까지 전부 recursive하게 나온다.)

그러면 다음과 같이 실행하면 된다.

$ lftp -f ncbi_genomes.lftp | tee todays_list.txt

tee 명령을 사용했으므로 파일로 기록됨과 동시에 표준출력(화면)으로 뿌려진다. 방금 받아서 라인 수만 세어 보았다. 2809개이다.

이렇게 하여 각 균주에 대한 정확한 폴더를 알아낸 다음, 다음과 같이 웹브라우저 주소창에 구체적인 URL을 적기만 해도 훨씬 수월한 파일 접근이 가능하다. 

ftp://ftp.ncbi.nlm.nih.gov/genomes/Bacteria/_path_to_genome_

2015년 4월 7일 화요일

습관적인 지름

다음번 오디오 DIY 프로젝트는 LM1875 등의 칩을 이용한 일종의 Gainclone 혹은 유사품 앰프를 만드는 것이었다. 그러나 도무지 값싼 호기심은 또 몇천원짜리 칩앰프를 그냥 무시하고 지나가지 못하게 만든다. 케이스가 포함되지 않은 제품은 손대지 않기로 해놓고...


구내식당 점심 두번 건너뛰었으니(도시락으로 대체) 무료 배송으로 5.84달러짜리 칩앰프에 투자하는 것이 대수이겠는가. 야마하의 칩 YDA138-E를 사용한다는 것이 호기심을 자극한 포인트였다. 볼륨이 달려있으니 금상첨화. 헤드폰 앰프 기능이 칩에 포함되어 있다는 것도 흥미롭다. 데이터시트를 찾아보니 날짜가 2005년이다. TPA, TDA, TA, LM으로 시작하는 오디어 앰플리파이어 칩만 보다가 야마하의 것을 발견하니 왜 이렇게 반가운지... 아마 (전자)악기 회사라는 점이 나를 자극한 모양이다.

구입의 핑계는 현재 거실에서 쓰고 있는 케이벨 KB20W 앰프의 소리가 다소 소프트하게 느껴졌기 때문이다. 보름 정도가 지나면 또 두툼한 우편 봉투에 담긴 중국제 기판이 하나 날아올 것이다.

2015년 4월 6일 월요일

생각만 하고 있는 후속 오디오 DIY 프로젝트 2건

진공관 앰프 2호기를 만들려는 계획은 무한정 보류하고, 대신하여 5인치급 풀레인지 스피커를 구하여 인클로우저에 수납하는 일로 2015년 1/4 분기 오디오 DIY는 대략 마무리가 되었다. 집에서 듣는 진공관 앰프의 초단관 12DT8 대신 러시아 군용관인 6N2P를 장착하는 개조도 성공적으로 마쳤고, FM 수신용 안테나도 새롭게 고정하여 KBS 대전 FM(98.5 MHz)을 만족할만한 음질로 수신하게 되었다.

사무실 책상 위에는 TPA3116 브리즈 앰프와 이번에 제작한 풀레인지 스피커가 놓여 있다. 매우 만족스러운 수준의 음악을 들려주고 있다.

다시는 섀시가 없는 앰프 보드만을 구하지 않겠다고 수도 없이 다짐을 하였다. 당장 구입하기에 가격은 저렴하지만, 어설프게 만든 섀시는 앰프에 손이 가지 않게 만드는 가장 중요한 요인이 되기 마련이다.

그럼에도 불구하고 눈과 손은 계속 이베이 또는 알리익스프레스의 '앰플리파이어 보드' 카테고리를 만지작거리고 있다...

만약 앰프를 하나 더 만들게 된다면, 이번에는 class D 앰프가 아니라 20W audio amplifier 칩 LM1875를 이용한 보드를 활용해 보고 싶다. 스피커 보호회로까지 추가된 보드 형태의 완제품을 그다지 비싸지 않은 가격에 살 수 있다. 대신 전원 트랜스포머는 트로이달 형으로 주문 제작하면 만족스럽지 않을까?

섀시에 대해서는 아직 아이디어가 없다. 인터넷을 보면 앰프 기판에 서포트를 달고, 여기에 투명 아크릴판을 같은 크기로 잘라서 덮은 간이형 케이스 제작 사례가 많다.

http://www.aliexpress.com/item-img/New-TDA2030A-LM1875-2-1-amplifier-board-chassis-transparent-acrylic-chassis-2030/1884633167.html

기본적으로 이러한 구성을 응용하되, 알루미늄 4각 파이프를 'ㄷ'자 모양으로 잘라서 앞뒤 패널 대용으로 사용하는 방법을 구상해 본다.

다음으로는 6.5인치 수준의 스피커를 이용한 시스템을 만들어보고 싶다. 국산품인 마샬음향의 유닛에 관심이 많이 간다. 멋진 홈페이지나 객관적인 데이터 시트 공개와는 거리가 있지만(흔하게 보이는 주파수 특성표가 보이지 않음), 이상하게 한번 써 보고 싶다는 생각이 든다. 마샬이라고 하면 흔히 전기기타 앰프의 브랜드가 떠오르지만, 이것과는 직접적인 연관은 없는 것으로 보인다. 국산 스피커 제조사인 삼미와 마샬에 대한 간략한 역사는 오디오평론가 김종룡님의 글 [한국 사운드, 삼미와 마샬/스피커 이야기 10]에서 접할 수 있다.

물론 언제 이러한 후속 프로젝트가 실현될지는 알지 못한다.

2015년 4월 4일 토요일

FM 안테나 보수 공사

며칠 전 밤에 심하게 비바람이 불더니 창틀에 설치한 FM 수신용 안테나가 기울어지고 말았다. 획기적인 방안이 필요하겠다 싶어서 창틀용 화분 받침을 이동하여 그 위에 고정하였다. 더 이상 중력으로 인해 스스로 기울어지지 않는 구조가 되었다.
다음에는 케이블 타이 건을 하나 구입할 생각이다. 케이블 타이는 매우 쓰임새가 많은 물건이짐만 전용 공구가 없으면 세게 조이기가 어렵다. 사진에 보이는 나뭇조각을 고정한 케리블 타이는 용산에서 한 묶음을 구입했던 것이다.

2015년 4월 3일 금요일

실험 균주의 resequencing은 앞으로 보편적인 과정이 되어야 할 것임

지난번 대장균 HB101 (re)sequencing에 이어, 이번에도 대장균 실험 균주의 resequencing을 하게 되었다. Plasmid transformant이긴 하지만 결과적으로는 K-12 W3110을 resequencing한 셈이 되었다. 역시 예상했던 바와 같이 NCBI에서 받은 reference sequence와 차이가 있음을 발견할 수 있었는데, 의외로 large scale 변이가 두 곳에서 관찰되었다.

보통 돌연변이라 하면 염기 서열이 시간이 지남에 따라 하나씩 치환되어 단백질의 변이까지 이어지는 점진적인 변이가 많을 것으로 생각한다. 내가 2009년 대장균 B strain의 참조 유전체 서열 작성과 Richard E. Renski의 그 유명한 실험진화균주 프로젝트에 잠시 관여하기 직전까지도 그런 생각을 갖고 있었다. 그러나 실제 뚜껑을 열어보니 그렇지 않았다. mobile genetic element나 다른 균주로부터 수평적 전달로 도입된 영역에 의한 '급진적'인 변이가 더욱 중요하게 느껴졌기 때문이다. 실험자에게 귀찮은 존재라고만 여겨지는 Insertion Sequence(IS)의 무게감을 느낀 것도 이때이다. 어쩌면 IS야말로 진화의 숨겨진 원동력인지도 모른다.

원시 유전체 프로젝트의 시절에는 각 모델 생명체의 참조 유전체를 확보하면 목표를 달성하는 것으로 보았다. 그러나 이제는 그렇지 않다. 개인별 유전체의 차이로부터 질환 감수성이나 약물 반응성 등을 예측하려는 유전체 의학의 시대가 되어 이제 시퀀싱은 모든 개체로 확대해야 하는 사업이 되었다.

대장균이나 고초균과 같은 세균으로 실험을 하는 경우도 예외는 아니다. 참조 서열이 NCBI에 등록되어 있고, 신뢰도 높은 균주 스톡 센터에서 분양을 받았다 해도 안심하지 말라. 어차피 5 Mb 정도 박테리아 유전체를 일루미나로 읽어서 참조 서열 존재 하에 완벽하게 재구성하는 것은 그렇게 어렵지 않은 시대가 되었다(실제로는 손이 꽤 많이 간다. 재수가 없으면 손에 물을 묻히는 실험을 피하지 못한다...). 모름지기 실험 균주라면 한번씩은 완벽하게 유전체 서열을 읽어서 미처 모르는 부분에서 기대하지 못한 실패가 나타나지 않도록 대비하는 것이 좋을 것이다.

그래서 나는 오늘도 CLC Genomics Workbench와 Consed에게 감사하는 마음을 가지고 있다.

2015년 4월 1일 수요일

리눅스에서 GID와 UID 바꾸기

새로 구입하여 세팅을 완료한 리눅스 서버에 기존의 NAS를 마운트하였더니 파일의 소유자가 전부 다르게 되어있다. 웹 검색을 잠시 해 보니 NFS에서는 실제 계정이 아니라 숫자로 된 UID와 GID를 따른다고 한다. 기존의 리눅스 서버에서는 내 계정이 UID와 GID로서 501번을 소유했었다. 그런데 새 서버에 세팅을 하면서 user라는 계정이 최초로 등록되는 과정에서 501번을 가져갔고 내 계정(hyjeong)은 502번이 된 것이었다.

hyjeong 계정의 GID와 UID를 501로 변경하면 된다.

GID와 UDI를 바꾸는 명령어가 있다.

usermod
groupmod

이제야 비로소 NAS의 파일들이 제대로 내 것이 되었다!