Fork me on GitHub 단맛만좋아요 :: 'blogging' 카테고리의 글 목록

blogging

  1. Deep Genomics - published: 2017.01.12
  2. The Big Challenges of Big Data - published: 2014.07.23
  3. 블로그를 그만 접도록 하겠습니다. - published: 2014.04.01
  4. GenomeCloud는 이벤트 중 - published: 2014.01.24
  5. Visual Pipeline (workflow) Editor - Bioinformatics UX - published: 2013.11.27
  6. 23andMe Web Site - published: 2013.11.05
  7. IonTorrent 소프트웨어 플러그인 제작 지원 - published: 2013.10.25
  8. 제4회 Cloud Frontier 2013 - published: 2013.08.26
  9. 나쁜 데이터 - 바람아 멈추어 다오 - published: 2013.07.11
  10. -축 결 혼- - published: 2013.05.21
  11. GenomeCloud 내부를 파헤치자 - published: 2013.04.24
  12. 유입 키워드로 보는 내 블로그 - published: 2013.04.09
  13. 레티나 디스플레이와 일반 맥북 비교 - published: 2013.03.28
  14. Mac OSX 에서 Eclipse 폰트 안티알리아싱 - published: 2013.03.16
  15. GenomeCloud 스크린샷 모음 - published: 2013.03.14
  16. 한달간 블로그 페이지 방문자의 성향 - published: 2012.05.10
Deep Genomics
2017.01.12 07:53 | blogging

누가 뭐래도 요즘 화두는 deep learning이 아닐까? 그렇다면 현재 genomics 또는 이와 관련하여 어떤 움직임들이 있는지 한번 알아보도록 한다.


유전질환 딥러닝 - Face2Gene

예전 칼 짐머의 "Game of Genomes"의 시즌1의 두번째 에피소드인 "깨어진 코드"편을 보면 이런 장면이 나온다.  칼 짐머가 자신의 염기서열을 시퀀싱 하기로 한후 보스턴의 브리검여성병원의 로버트 그린은 칼 짐머의 얼굴을 유심히 보는 장면이 나온다.


“전 지금 유전병에서 나타나는 얼굴의 특징을 찾고 있는 거에요” 브리검여성병원(Brgham and women’s hospital)의 로버트 그린이 말했다. “눈의 모양, 귀가 너무 낮게 있지는 않은지. 귀가 복잡하게 생기진 않았는지” 그린박사는 사무실을 앞뒤로 걸어보도록 했다. 나는 웨스트민스터 도그쇼의 테리어 같다는 느낌이 들었다. 몇몇 유전병은 걸음걸이에 숨겨져 있다고 그린이 설명했다.


유전병은 얼굴이나 걸음걸이 등에 숨겨져 있다는 것이다. 굳이 genome을 분석하지 않더라고 말이다. 바로 이부분을 실제 만든 서비스가 바로 "Face2Gene"이라는 앱으로 이들은 "smart phenotyping better genetics"라는 슬로건을 내걸고 있다.




사진을 올리면 딥러닝을 통해 눈꺼풀이 얼마나 좁은지? 귀는 얼굴에서 얼마나 낮은지? 등을 정량화하고 얼굴과 가장 가능성이 있는 증후군에 대해서 순위를 매겨 보여주는 한편 위의 그림처럼 히트맵을 오버레이 시켜 어떤 특징이 가장 일치 하는지를 보여 준다.


유전변이 발굴 딥러닝 - DeepVariant

얼마전 미 FDA에서는 NGS를 통해 생산된 데이터에서 얼마나 variant를 잘 찾는지에 대한 챌린지를 수행한적이 있다. SNP와 INDEL 두부분으로 나누어 미리 정답을 알고 있는 샘플의 FASTQ 파일을 제공하고 이를 참가자들을 알고리즘을 통해 분석된 결과와 얼마 일치하는지에 대해서 평가를 수행했는데 SNP 부분에서 1등을 차지한 곳이 베릴리 라이프 사이언스 (전 구글 라이프 사이언스로 구글의 지주회사인 알파벳의 계열사)가 1등을 먹었다.


바로 이 베릴리 사이언스가 variant를 찾는데 사용한 기법이 바로 딥 러닝 기법으로 기존의 GATK 같은 툴들이 베이지안 확률을 통해 찾는데에 비해 pileup 파일을 이미지화 하여 CNN(Convolutional Neural Network)를 이용하여 정확도를 높였다. 



변이 해석 딥러닝 - Watson for Genomics

이미 왓슨은 국내에도 도입되어 운영되고 있는데 이는 Watson for Oncology로 NGS등을 통해 생산된 Somatic mutation (VCF 또는 MAF 파일) 이나 Copy number variation (log2 format)을 입력받는 genomics에 특화된 부분은 Watson for Genomics(Watson Genomics Advisor)로 현재 개발중에 있다.


최근 기사에서는 일루미나가 자사의 TruSight 170 패널을 통해 생산된 NGS 시퀀싱 데이터에 대한 해석을 Watson for Genomics를 통해 올해 안에 제공할 예정이라고 한다.




Watson for Genomics는 임상에 포커스된 결과들을 제공하게 된다.

  • List of Dysfunctional Proteins
  • IBM Developed Driver Score
  • Targeted Therapies


이외에도 Pathway Analysis, Drug Recommendation 정보를 제공한다.




결론

현재까지 genomics와 이와 관련된 부분에서 어떻게 딥러닝이 활용되고 있는지에 대해서 알아보았다. 이제는 환자의 유전체 데이터 생산전부터 딥러닝이 활용되기 시작하여 최종적으로 유전체 데이터를 분석하고 해석하는데에 딥러닝이 활용되기 시작되었다. 그렇다고 우리의 직업이 없어질 것인가? 이제는 좀 더 큰 시야를 가지고 이러한 딥러닝을 어는 부분에 적용할지와 함께 트레이닝 데이터에 대해서 어떤 종류의 데이터를 얼마나 어떻게 확보할지 그리고 어떻게 훈련 시킬지에 대해서 생각해봐야 할 것이다.



저작자 표시 비영리 동일 조건 변경 허락
신고
Software enginner of GenomeCloud. Covers bioinformatics, computational biology, and life science informatics.
Posted in : blogging at 2017.01.12 07:53
Currently 댓글이 하나 달렸습니다 comments want to say something now?
The Big Challenges of Big Data
2014.07.23 15:19 | blogging
네이처에 지난 2013년도에 실린 Biology: The big challenges of big data라는 글이 있습니다. 구구절절 옳은 내용들로 차있고, 뭐 그렇다고 읽어봐야 그다지 임팩트 있는 내용은 없고 해서 걍 1장짜리 그림으로 요약했습니다.

Biology: The big challenges of big data

 
 

저작자 표시 비영리 동일 조건 변경 허락
신고
Software enginner of GenomeCloud. Covers bioinformatics, computational biology, and life science informatics.
Posted in : blogging at 2014.07.23 15:19
Currently 댓글이 없습니다. comments want to say something now?
그리 학문적으로나 가쉽거리로나 애매한 위치의 블로그였습니다. 그냥 생각나는대로 적고 한분한분 알음알음 알아서 찾아와 주시는 분들을 보면서 제글을 읽어 주셔서 감사드리는 마음으로 그동안 블로그를 써왔었는데, 이런저런 일신상의 이유로 이제 블로그를 그만 두려고 합니다.

그동안 단맛만을 좋아해 주신 분들께 다시 한번 감사하다는 말씀드리겠습니다.

앞으로는 본 블로그의 글들은 모두 삭제될 예정이며 더이상 이주소로 접근이 불가능하게 됩니다. 혹시라도 본 블로그의 글이 필요하신분들은 백업한 XML 데이터를 보내드리도록 하겠습니다.

감사합니다. 
저작자 표시 비영리 동일 조건 변경 허락
신고
Software enginner of GenomeCloud. Covers bioinformatics, computational biology, and life science informatics.
Posted in : blogging at 2014.04.01 17:11
Currently 3 comments want to say something now?
GenomeCloud는 이벤트 중
2014.01.24 16:26 | blogging
GenomeCloud가 기존의 서비스외에 2개의 추가적인 상품을 내놓으면서 이벤트를 하고 있습니다. 유전체 데이터를 위한 클라우드 스토리지인 g-Storage입니다. 유전체 데이터에 특화된 클라우드 스토리지인데요. 일반적인 클라우드 스토리지가 사진, 동영상, 엑셀, 워드 문서 등을 프리뷰하고 관리하게 해주는 것처럼 유전체 데이터를 프리뷰하거나 유전체 데이터의 속성을 활용하기 쉽도록 만들어져 있습니다.

예를 들어 BAM 파일의 경우 preview 하는 경우 SAM 포맷으로 보여주고요. 당근 IGV를 통해서 바로 다운로드 없이 볼 수 있습니다. 그 외에도 FastQC  결과물을 업로드하는 경우(보통 zip으로 묶여있죠)에도 프리뷰를 통해 바로 확인 가능합니다. 또한 각 파일은 샘플명이라던가 시퀀싱 타입 등의 속성을 가지고 있어서 이를 활용한 검색이나 분류 등을 손쉽게 하실 수 있습니다.  

그리고 막강한 기능 중의 하나가 바로 공유 기능인데요. g-Storage를 사용하는 유저들끼리는 g-Storage의 인터페이스상에서 바로 공유가 가능하구요. g-Storage를 사용하지 않는 사용자에게는 이메일을 통해 바로 다운로드가 가능한 링크가 전달됩니다. 물론 public하게 설정할 수도 있고, Key code를 공유한 사람끼리만 다운로드도 가능합니다.

두번째는 바로 Galaxy입니다. 클라우드 기반으로 수분내에 바로 Galaxy의 전 기능을 pre setting하여 제공하기 때문에 원하는 분석을 galaxy를 이용하여 진행하고 필요 없는 경우 바로 삭제/중지가 가능합니다. 국내 사용자들은 빠른 업로드 속도에 한번 감탄할 것이요, g-Storage와 연동하여 스토리지내의 데이터를 바로  galaxy로 불러들여 사용할 수있다는 것에 또한번 감탄하실 겁니다.

자세한 서비스에 대한 내용은 다음번 포스팅으로 미루고, 우선 이벤트에 참가하세요. 자세한 내용은  GenomeCloud의 블로그에 가셔서 확인 하실 수 있습니다.  GenomeCloud Blog >>


저작자 표시 비영리 동일 조건 변경 허락
신고
Software enginner of GenomeCloud. Covers bioinformatics, computational biology, and life science informatics.
Posted in : blogging at 2014.01.24 16:26
Currently 댓글이 없습니다. comments want to say something now?
NGS 데이터를 비롯한 대용량의 생물학 데이터가 나타나면서 이를 분석하기 위한 위한 소프트웨어 역시 점차 그 수가 다양해지고 또한 상용화되어 가고 있다. 데이터 분석에 아마 가장 귀찮으면서도 힘든 부분이 바로 분석에 필요한 소프트웨어를 설치/설정하고 소프트웨어들의 입력과 출력을 엮어 일련의 작업을 수행하는 것이다. 이러한 일련의 소프트웨어들을 visual하게 편집할 수 있는 다양한 도구들이 나타나고 있는데 대표적인것들을 UX적으로 살펴보도록 하자. 

Spiral Genetics
Spiral은 pipeline을 생성하는데에 있어서 각각의 소프트웨어들을 Setp이라고 부르며 이러한 step에는 Alignment, Sort, Variant Call 등의 일반적인 NGS 데이터를 위한 10개의 step들이 존재한다. 각 Step들간에는 의존관계에 따라 해당 step 다음에 위치할 수 있는 step이 추천되어 pipeline을 구축하는데 도움을 주고 있다.

  

위처럼 Illumina Alignment라는 Step을 선택하면 해당 Step 다음에 올 수 있는 step이 하단에 나타나게 된다. 하나의 step은 입력값이 점선으로 나타나며 해당 데이터를 기존의 데이터목록에서 드래그하여 위치하도록 하는 형태이다.
 
DNANexus
DNANexus도 Spiral과 유사한 형태로 pipeline을 제작할 수 있으며 각각의 단계를 step이라고 부르며  하나의 step은 해당 step의 inputs과 output 그리고 중간에 App이 해당 in/out을 서로 연결하는 형태이다. Spiral과 다른점은 각 step의 input과 output이 상하에 위치하는 것에서 좌우로 위치하는 것이 큰 차이점이라고 할 수 있다. 또한 input과 output은 그 타입에 따라 아이콘과 함께 보여주고 있으나 직관적인 아이콘이 아니라는 것이 아쉽다. Spiral에 비하여 월등히 많은 App들이 존재하며 필요하다면 custom app도 제작하여 파이프라인에 추가 할 수 있도록 SDK를 제공한다. 


Lab7
아직 정식적으로 오픈되지는 않은 듯 하여 홈페이지에 나와 있는 소개자료를 기반으로 유추해 보면 파이프라인을 구축하는데에 2가지 영역으로 분리되어 하나는 비주얼하게 파이프라인을 구축하는 부분과 실제 코딩하는 영역으로 분리되어 제공된다.


SevenBridge Genomics
위에 소개된 pipeline editor와 달리 사용자가 드래그 앤 드랍으로 직접 캔버스위에 app들을 서로 위치하고 연결하는 방식으로 직관적인 인테페이스를 제공한다. 왼쪽에 위치하는 app을 끌어다 중간의 캔버스에 드랍 시키고 app의 input/output을 서로 마우스로 드래그 하여 연결하도록 한다. app의 in/out은 filetype이 미리 정의되어 서로 다른 data type을 연결하고자 하는 경우 그 연결이 성사되지 않는다. 재미있는 것은 SBG의 분석 플랫폼의 이름이 igor(이고르)인데 해당 개발자의 이름이며, pipeline 에디터도 별도의 pipitor라는 이름을 가지고 있다. 

 
Galaxy
galaxy도 드래그 앤 드랍 형태의 UX로 in/out에 대해 정의는 되어 있지만, 맞지 않는 연결도 허용된다는 단점이 있다. 또한 파이프라인이 길어지는 경우 zoom in/out이 되지 않아 해상도가 낮은 경우 캔버스를 한없이 이동해야 한다. SBG가 해당 단계의 in/out에 대해 마우스 오버시 팝업 형태로 제공되어 단순한 원 형태인데 반해 galaxy는 박스안에 in/out을 모두 나열하여 다소 지저분?하며 output이 많은 툴인 경우 박스가 한없이 켜져버린다는 단점이 있다. 적당히 숨기는 미덕도 필요할 듯하다.

 
결론
Bioinformatics 특히 파이프라인에서의 UX 부분은 사용자를 고려한 전문적인 UX 디자인이 결합되어야 하며 앞으로 좀 더 생물학자에게 친근하게 다가가기 위해 개선되어야 할 부분이 많은 분야이다. 짧게 정리한다면 드래그앤 드랍의 형태를 기본으로 하면서 각 단계의 다음 단계에 사용 가능한 App이 자동으로 추천(활성/비활성)되고 서로간의 input/output간의 연결 또한 지능적으로 이루어져야 할 것이다.
 
저작자 표시 비영리 동일 조건 변경 허락
신고
Software enginner of GenomeCloud. Covers bioinformatics, computational biology, and life science informatics.
Posted in : blogging at 2013.11.27 00:49
Currently 댓글이 없습니다. comments want to say something now?
23andMe Web Site
2013.11.05 00:05 | blogging
for prospective parents
https://www.23andme.com/prospective-parents/



African Ancestry Project
https://www.23andme.com/cohort/africanancestry/
 
 
Roots into the Future
https://www.23andme.com/roots/


Exome
https://www.23andme.com/exome/ 
 
Senior Games
https://www.23andme.com/senior_games/


Parkinson's Disease
https://www.23andme.com/pd/

Sarcoma Community
https://www.23andme.com/sarcoma/

 
저작자 표시 비영리 동일 조건 변경 허락
신고
Software enginner of GenomeCloud. Covers bioinformatics, computational biology, and life science informatics.
Posted in : blogging at 2013.11.05 00:05
Currently 댓글이 없습니다. comments want to say something now?
국내에도 상당한 숫자의 기기가 퍼진걸로 알고 있는데, 얼마전 중국의 BGI도 왕창 구매한 시퀀싱의 민주화를 이끌고 있는 기기입니다. 네 LT의 IonTorrent입니다. IonTorrent는 기본 Torrent Suit라는게 분석을 해주는데, 여기서 부족한 것은 API를 이용하여 플러그인 형태로 개발이 가능합니다.

가령 이런것들이 되겠죠.

Case 1) 여러대의 장비에서 별도로 생산된 read 데이터들을 한번에 분석한다거나 
Case 2) 별도 내부의  유전체 등의 DB와 연동되어 specific한 결과를 생성한다거나
Case 3) 별도의 자체 제작된 알고리즘(RNA-Seq, ChIP-Seq 등등)을 이용 한다거나
Case 4) 암/신생아와 같은 clinical 한 리포트를 생성한다거나, BRCA 유전자 리포트를 자동 생성한다거나...등등등
Case 5) 결과를  user들에게 자동으로 배포한다거나
Case 6) human-identification을 위해 사용하는 경우 자체 범죄자 DB와 시퀀싱 후 바로 연동되어 범인을 식별한다거나
Case 7) 23andMe와 같은 gwas결과와 결합하여 risk prediction 리포트를 생성한다거나
Case 8) 결과 데이터를 시각화하는 부분
Case 9) 고객 DB와 연동되어 고객별 결과 출력 및 전송
Case 10) 데이터를 별도로 백업 


뭐 암튼 이런것들을 하고 싶으시다 하시는 분들은... 물론 장비가 이미 있거나 구매하려고 계획하시는분들이 해당되겠죠. 아니면 정말 denovo나 ChIP-Seq 등 좋은 알고리즘을 개발하신 분이나 사업상 commercial하게 플러그인을 통해 $벌고 싶으신분 환영합니다. 플러그인 공짜로 만들어 드리겠습니다.

연락주세요 ^^;;
 
저작자 표시 비영리 동일 조건 변경 허락
신고
Software enginner of GenomeCloud. Covers bioinformatics, computational biology, and life science informatics.
Posted in : blogging at 2013.10.25 14:29
Currently 댓글이 없습니다. comments want to say something now?
제4회 Cloud Frontier 2013
2013.08.26 12:57 | blogging
8월 26일 Cloud Frontier 행사에서 Cloud Case Study 세션에서 GenomeCloud 사례를 발표합니다. 어떻게 클라우드를 이용하여 대규모 genome 분석 서비스를 내놓았는지를 발표하는 시간입니다. 

부스도 운영하니 관심있으신 분들은 한번 들러 보세요 ^^;;

 
저작자 표시 비영리 동일 조건 변경 허락
신고
Software enginner of GenomeCloud. Covers bioinformatics, computational biology, and life science informatics.
Posted in : blogging at 2013.08.26 12:57
Currently 댓글이 없습니다. comments want to say something now?
나쁜 데이터는 데이터가 누락된 값이나 잘못된 기록과 같은 기술적인 부분뿐만 아니라 그보다 훨씬 더 많다. 이러한 데이터 문제를 이겨내기 위한 다양한 영역의 전문가들의 이야기를 나쁜데이터 핸드북에서 제시하고 있다. 물론 이쪽 업계(Bioinformatics)에서도 이런 나쁜 데이터를 흔히 접할 수 있다. 하지만, 오늘은 간단한 웹프로그래밍을 하면서 만난 나쁜 데이터에 대해서 이야기 해보려고 한다. 덧) 몰랐는데 이책의 역자가 KT에서 근무하는군요. ㅋ 사인이라도 받고 싶은데 말이죠.



요즘 민간뿐만 아니라 정부나 이쪽 업계 (genome research)에도 데이터의 공유와 더 나아가서는 big data에 대한 이야기와 함께 data science라는 말을 흔히 듣을 수 있게 되었다. 요즘에야 KTH API STORE (http://www.apistore.co.kr/main.do)나 공공데이터 포털(http://www.data.go.kr)등 민간의 데이터를 API등을 활용하여 손쉽게? 얻을 수 있지만 아직까지 웹상에 존재하는 수많은 주옥같은 데이터는 HTML에 꽁꽁 싸여 있다.

기상청에서는 다양한 기상관측 자료를 제공하고 있는데 이중 전국의 700여개의 AWS(Automated Weather Station)이라는 자동기상관측장비를 이용하여 실시간 관측데이터를 홈페이지를(http://www.kma.go.kr/weather/observation/currentweather.jsp) 통해 제공하고 있다.


나쁜 데이터의 시작 HTML 파싱
우선 웹페이지를 긁어와 해당 내용을 파싱하여 JSON 포맷으로 저장하고 이를 visualization하기로 결정하고 그 첫단계를 Python BeautifulSop을 이용하여 웹페지의 HTML 태그내의 table안에 들어있는 지역, 풍향, 풍속 데이터를 가져왔다. 뒤에서 이야기 하겠지만 이를 Visualization 했더니 다수의 지점(지역)에서 거의 태풍급의 바람 세기를 보여주고 있었다.

문제?는 바로 기상청에서 제공하는 데이터는 매분마다 관측된 자료를 제공하는데 이중 제대로 관측되지 않아 값이 누락된 데이터를 가져오는데에서 발생했다. 기상청에서는 이러한 값을 테이블내에 빈공간 (&nbsp)으로 표시하거나 dot(.) 또는 대시(-)로 표시하는데에서 발생한 문제였다. 숫자(풍속)나 문자(풍향, 예 S, SSW)가 들어가야 할 부분에 이러한 특수문자로 인해 잘못된 계산결과가 나오고 이는 바로 태풍급 풍속을 지도상에 표시하는 오류를 범하게 된것이다.

누락값의 대체
테이블내의 td 태그에 들어있는 풍향, 풍속 값을 가져오는데에 있어서 예외 처리를 수행하였다. 첫번째는 빈공간을 처리하는 부분인데 여기서도 단순히 python의 비교문을 통해 null을 체크했지만, 실제로는  &nbsp (HTML에서 공백을 의미)에 둘러쌓여져 있었던 것이었다. UTF8으로 '\xc2\xa0' -.-;; 급하게 코드를 if values == '\xc2\xa0' or values =='.' or values == '-':로 변경하여 누락된 값을 0으로 지정하여 누락된 지점은 visualization시 나타나지 않도록 설정했다.

위/경도 데이터
기상청의 데이터는 지역정보를 "동"까지의 주소로 제공하고 있다. 따라서 지도상에서 제공하기 위해서는 정확한 위/경도 데이터를 얻어야만 했다. 다음에서도 이러한 기상청의 데이터를 제공하고 있다. 기상청 페이지에서 파싱한 각 AWS의 고유 코드를 가지고 간단한 API 호출을 통해 정확한 위/경도를 얻을 수 있다. 다음에서는 SensoQL을 이용하여 SQL문과 비슷한 형태로 질의를 만들면 해당 질의를  RESTful URL로 제공하고 해당 URL을 통해서 기상센서가 위치한 위/경도를 알 수 있다.

질의문
SELECT * FROM sensorMetaCollection WHERE resourceId=100 (AWS장비번호)

RESTful URL
http://apis.daum.net/sensorql/weather.json?apikey=DAUM_SENSORQL_DEMO_APIKEY&q=SELECT%20*%20FROM%20sensorMetaCollection%20WHERE%20resourceId%3D100

반환값
{
   "sensorQL":
   [
       {
           "resourceId": 100,
           "latitude": 37.6771,
           "longitude": 128.7183,
           "altitude": 772.57,
           "firstObservationTime":
           {
               "$date": "2012-03-05T10:55:00.000Z"
           },
           "lastObservationTime":
           {
               "$date": "2013-01-28T15:18:00.000Z"
           }
       }
   ]
}



이제 JSON 형태의 위치(위/경도), 풍향, 풍속에 대한 정보를 갖추어졌고, 이를 visualization하는 일만 남았다. JSON 포맷 lat(위도), lon(경도), S(풍속), D(풍향)으로 S는 m/s, 풍속은 동서남북을 모두 16등분한 값이다.

var weather={'sensorQL': [{'lat': 38.2509, 'S': '1.0', 'lon': 128.5647, 'D': 'NW'}, {'lat': 38.0667, 'S': '1.0', 'lon': 128.6667, 'D': 'N'}, {'lat': 38.1479, 'S': '4.1', 'lon': 127.3042, 'D': 'SSW'}, {'lat': 37.2395, 'S': '0', 'lon': 131.8698, 'D': 'N'}, {'lat': 37.9019, 'S': '2.0', 'lon': 127.0607, 'D': 'S'}, {'lat': 37.8859, 'S': '3.0', 'lon': 126.7665, 'D': 'SSW'}, {'lat': 37.6771, 'S': '6.6', 'lon': 128.7183, 'D': 'WSW'}, {'lat': 37.9026, 'S': '2.0', 'lon': 127.7357, 'D': 'S'}]}

데이터 시각화 - 지도 이미지 만들기
지도 이미지 작성은 다음과 같은 순서로 진행한다. 지도의 shape 데이터를  얻고 이를 JSON 형태로 변경하여 웹페이지에 표시한다. 이에 대한 상세한 튜토리얼은 
http://bost.ocks.org/mike/map/를 참고하기 바란다. 

지도 이미지에 Line 그리기
D3 javascript를 이용하여 지도상에 line을 표시한다. 이때 풍속에 따라 서로 다른 line 길이를 나타내도록 하며, 라인의 첫 시작위치로 부터 풍향을 계산하여 라인이 향하는 방향이 풍향과 일치하도록 한다.

이렇게 해서 만들어진 지도는  바람아 멈추어다오 홈페이지에서 확인 가능하며 다음과 같다. 


다음은 기상청에서 제공하는 이미지 형태의 바람의 방향과 속도에 대한 것으로 내륙 경기남부 및 강원 남서부 충북 북동쪽이 바람이 비교적 없으며 서해와 제주도쪽이 바람이 센것을 확인할 수 있다. 물론 이 이미지는 동적이지 않으며, 위의 홈페이지에서는 동적인 바람 정도를 확인 할 수 있다.


참고
다음 SensorQL http://dna.daum.net/tools/pg/sensorql
Let's Make a Map http://bost.ocks.org/mike/map/
UK Wind Chart http://prcweb.co.uk/lab/ukwind/
Wind Map http://hint.fm/wind/
저작자 표시 비영리 동일 조건 변경 허락
신고
Software enginner of GenomeCloud. Covers bioinformatics, computational biology, and life science informatics.
Posted in : blogging at 2013.07.11 12:52
Currently 댓글이 없습니다. comments want to say something now?
-축 결 혼-
2013.05.21 16:38 | blogging
정신없이 달려오다. 잠시 쉼표를 찍고 다시 달리려 합니다. 넵 저 금번 토요일에 장가갑니다. ㅋㅋㅋ
 
 
저작자 표시 비영리 동일 조건 변경 허락
신고
Software enginner of GenomeCloud. Covers bioinformatics, computational biology, and life science informatics.
Posted in : blogging at 2013.05.21 16:38
Currently 댓글이 하나 달렸습니다 comments want to say something now?
GenomeCloud 내부를 파헤치자
2013.04.24 12:28 | blogging
많은 분들이 GenomeCloud가 내부적으로 어떻게 클라우드 자원을 관리하고 유전체 데이터를 분석하는지에 대해서 궁금해 하셔서 간단하게 기술적인 설명을 해볼까한다. 일반 생물학 연구자들도 한번쯤 읽어두면 자신의 데이터가 어떻게 분석되는지 연구에 활용하려면 GenomeCloud를 어떤식으로 해야 할지에 대한 폭 넓은 안목을 가지게 될 수 있으니 강추!!! (-.-;;)

1. ucloud biz (클라우드 자원)
CPU/메모리/디스크/OS/네트워크 등의 개별 자원을 제공하는 서비스로 GenomeCloud는 분석할 대상에 따라 개별 자원들을 조립하여 사용합니다. 분석에 대한 요청이 들어오면 개별자원을 조립하고 분석을 수행한 후 다시 개별 자원을 반납하게 됩니다.


ucloud는  하나의 가상서버(Virtual Machine)에 대해서 다양한 CPU/메모리/디스크/OS 등을 조합하여 자신이 원하는 사양을 직접 조립할 수 있도록 하고 있는데 유전체 분석의 각 단계별로 최적의 하드웨어 조합을 찾아내어 사용합니다.

2. ucloud biz API (클라우드 자원 핸들링)
앞서 필요한 각각의 자원이 어떠한 것들이 있는지? 개별 자원을 생성하고 서로 연결하는 작업은 ucloud API라는 것을 통해 프로그래밍적으로 활용할 수 있습니다.  이는 직접 웹페이지에서 클릭을 통해서 자원을 생성하고 연결하는 작업을 할 수 있지만 요청이 들어올때마다 사람이 직접 클릭해서 자원을 만들거나 삭제하는건 불가능하기에 공개된 API를 통해 자동으로 모든 작업이 수행됩니다.

ucloud를 이용한 서비스를 만들고 싶다면 ucloud biz 개발자 센터로 

python으로 클라우드 자원을 핸들링하고자 한다면 ucloud biz API를 손쉽게 쓰게하는 python binding이 존재합니다.  간단히 ucloud 홈페이지에서 자신의 ucloud내 api key와 secret key를 가지고 다음과 같이 프로그래밍을 하면 현재 만들어진 서버의 목록이 나타납니다.


3. Deploy (클라우드 자원 셋팅)
ucloud API로 필요한 하드웨어 (깡통)를 만들게 되면 그 안에는 OS만 덜렁 설치되어 아무것도 할 수 없습니다. 따라서 유전체 분석에 필요한 소프트웨어나 레퍼런스 데이터 등을 실제 분석이 이루어지기 전에 설치/설정 해야하는데요. 바로 이러한 작업을 디플로이라고 합니다. 이러한 작업을 해주는 소프트웨어가 별도로 존재하는데요. 미리 컴퓨터에 해야할 작업을 정의해 두면 컴퓨터는 혼자서 그 작업들을 수행합니다. 

4. Job 분배
이제 바로 분석할 준비가 된 서버들이 생겨났으면, 각 서버는 자신이 해야할일(mapping이라던지 variant calling 등)을 할당 받습니다. 사용자가 분석을 의뢰하면 해당 요청에 대해서 자세하게 정의된 내용이 데이터베이스에 저장되고 분석할 서버들은 해당 요청을 데이터베이스로 부터 할당 받아서 실제 분석을 수행하게 됩니다. 이때 분석을 수행해야 하는 서버들은 해당 요청을 파싱하여 자신이 분석해야할 input data를 가져오고 어떤 프로그램을 어떠한 옵션으로 실행해서 어떠한 결과를 만들어내야 하는지를 파악하게 됩니다.

5. Job 실행
기본적으로 GenomeCloud는 현재 업계에서 검증되고 활발하게 사용되고 있는 소프트웨어를 사용합니다. 각각의 소프트웨어들은 참 다양하게 구현되어있습니다. 어떤놈은 perl로 또 어떤놈은 java로 이렇듯 다양한 소프트웨어들을 엮어 일련의 작업을 수행하도록 만드는 것이 바로 pipeline인데요. 이때 각각의 소프웨어를 컨틀롤하고 그들이 내뿜는 에러나 서로간의 인/아웃풋을 컨트롤 하고 최적화하여 수행하도록 합니다. 각각을 연결한 pipeline은 여러번의 테스트와 중간중간 customizing 통해 robust하게 돌아가도록 하고 있습니다.

6. Job 트래킹
각 서버는 해당 분석을 수행하면서 중간중간 어떠한 작업을 시작했고 어떠한 작업을 끝냈는지를 보고하게 됩니다. 이렇게 각 서버들이 보낸 정보를 취합하여 사용자에게는 웹페이지를 통해서 요청한 작업이 어떠한 상태인지 확인 할 수가 있게 됩니다.


7. Object storage 결과 저장
각 서버들은 분석이 완료되면 이전에 말했듯이 삭제(destory)가 됩니다. 기구한 운명이죠. 열심히 일하고 죽는... 따라서 삭제 되기전 자신의 분석 결과는 가격은 저렴하면서도 안정성이 높은 스토리지에 전송합니다. 흔히 object storage라고 불리는 서비스인데요. 컴퓨터는 없고 디스크만 있는 거라고 생각하시면 됩니다.  결과 파일을 저장하기 위해서 서버까지 계속 남겨두면 그만큼 비용이 지불되기 때문에 서버는 삭제하고 결과만 별도의 스토리지만 제공하는 서비스에 안전하게 보관하는 거죠.

클라우드를 만들고 직접 그 위에 서비스를 올리다
아무래도 클라우드 자원을 직접 만들고 관리하는 주체가 KT이다 보니 해당 부서와의 긴밀한 협조아래 유전체 분야의 데이터를 다루는데에 있어 클라우드가 잘 활용될 수 있도록  많은 시도를 하고 있습니다. 이는 기존의 아마존이나 타 클라우드 서비스를 기반으로 하고 있는 서비스들은 결코 따라올 수 없는 GenomeCloud만의 장점 중 하나라고 할 수 있습니다.

여담이지만, 이렇듯 유전체 데이터를 분석하는데에 있어서 최소한의 비용을 위해서 각각의 요소마다 어떻게 하면 비용도 줄이면서 효율성도 높일 수 있을지를 많이 고민해서 만들었고 그 결과 국내외 어디와 비교해도 꿀리지? 않을 저렴한 비용으로 연구자들에게  서비스가 가능하게 되었다는...

저작자 표시 비영리 동일 조건 변경 허락
신고
Software enginner of GenomeCloud. Covers bioinformatics, computational biology, and life science informatics.
Posted in : blogging at 2013.04.24 12:28
Currently 댓글이 없습니다. comments want to say something now?
유입 키워드로 보는 내 블로그
2013.04.09 19:25 | blogging
블로그의 유입 키워드를 보다가 재미난것들이 있어서 소개해 보려고 한다. 걍 빵 터지는 것은 없어도 ㅋㅋㅋ

서정선 이종은
한국인 백인유전자
개체 'ensembl'이 없습니다
수전증 아빠 원인
적금해지비율
난 단맛만좋아
남자친구 귀지

서정선 교수와 이종은 사장을 나란히 검색한 사람은 과연 뭘 알고 싶었을까? 두사람이 사귀나 뭐 그런거?? -.-;;
한국인 백인유전자 서양인과 결혼하면 됩니다.
앙상블을 설치하세요
수전증은 아빠가 원인이 아니라 술을 끊으세요.
적금은 오래 가지고 계세요. 단 맥북 사시려거등 해지하세요
나도 단맛이 좋습니다.
 파주세요....
저작자 표시 비영리 동일 조건 변경 허락
신고
Software enginner of GenomeCloud. Covers bioinformatics, computational biology, and life science informatics.
Posted in : blogging at 2013.04.09 19:25
Currently 댓글이 없습니다. comments want to say something now?
레티나랑 안레티나랑

(촬영협조 전팀장님 감솨) 

ㅁ좌측이 일반 맥북화면이고 우측이 바로 레티나 맥북화면으로 글씨가 깨끗한 흰색종이에 깔끔하게 인쇄된 듯한 느낌을 준다. 오래오래 벽에 똥칠할때까지 눈 말짱하게 살아남으려면 레티나 맥북을 질러야하는것이다. 끝.
저작자 표시 비영리 동일 조건 변경 허락
신고
Software enginner of GenomeCloud. Covers bioinformatics, computational biology, and life science informatics.
Posted in : blogging at 2013.03.28 21:14
Currently 댓글이 없습니다. comments want to say something now?
Eclipse에서 요즘 코딩할 일이 있어서 좀 사용하고 있는데, 이게 Mac에서는 폰트 알리아싱 때문에 가독성이 확 떨어져 버린다. 그렇다고 제어판에서 일정 크기 이하의 폰트에서 알리아싱을 해제하는 옵션을 사용하면 Mac의 모든 어플리케이션들의 폰트에 영향을 주기 때문에 난감하다. 다음과 같이 콘솔에서 명령을 사용하면 이클립스에서 좀더 깔끔하게 가독성 있게 프로그래밍이 가능하다는... 별쓰잘데기 없는것일 수 있지만, 요즘 들어 한짓거리 중에서 제일 뿌듯한 짓거리라는...

defaults write org.eclipse.eclipse AppleAntiAliasingThreshold 20 

제목 없음
저작자 표시 비영리 동일 조건 변경 허락
신고
Software enginner of GenomeCloud. Covers bioinformatics, computational biology, and life science informatics.
Posted in : blogging at 2013.03.16 23:29
Currently 댓글이 없습니다. comments want to say something now?
GenomeCloud 스크린샷 모음
2013.03.14 20:56 | blogging

GenomeCloud의 다양한 스크린샷 모음
저작자 표시 비영리 동일 조건 변경 허락
신고
Software enginner of GenomeCloud. Covers bioinformatics, computational biology, and life science informatics.
Posted in : blogging at 2013.03.14 20:56
Currently 댓글이 없습니다. comments want to say something now?
내 블로그를 방문 대부분은 South Korea로 부터 트랙픽이며, 50%는 홈에 먼저 첫발을 내딛지만, 대부분은 홈화면만 보고 떠나 버린다. 하지만 떠나지 않고 꾸준히 다른 페이지를 보고보고보고 또 봐서 12페이지까지 보고 가신분도 있다는 것... 감사합니다. 뉘신지는 모르겠지만...

그렇다면 홈외에 들어오시는 분은 "R 그래프 그리기" , "PCA using R" , "CTO 당신만 보세요 - 바이오인포매틱스와 Hadoop의 만남은 필연적" 페이지를 방문했다. 즉 검색을 하던 어디 링크를 타고 들어왔건간에 홈을 제외한 이 3개의 페이지가 지난 한달간 줼로 인기 있었다는 이야기가 되겠다. 고로 내 블로그는 이것저것 잡단한 것을 쓰지만, 정작 블로그를 찾는 분들은 R 댐씨 온다는 이야기?? -.-;;

 
저작자 표시 비영리 동일 조건 변경 허락
신고
Software enginner of GenomeCloud. Covers bioinformatics, computational biology, and life science informatics.
Posted in : blogging at 2012.05.10 17:25
Currently 2 comments want to say something now?

티스토리 툴바