Saturday, May 14, 2011

DNAnexus

Galaxy에 이어 DNAnexus도 알아본다. DNAnexus는 사실 회사라 이용할려면 돈을 내야 한다. 듣기로 데이터 10기가에 얼마.. 뭐 이런식으로 돈을 받는다고 하는거 같은데 정확한 정보는 아니다. 


DNAnexusAmazoncloud computing 을 이용하여 기가 혹은 테라 단위의 large-scale whole-genome sequencing 데이터를 저장 및 분석할 수 있는 web-based platform을 제공하고 있다. 그러니까 사용자는 NGS 데이터와 돈만 있으면 데이터의 저장 및 각종 분석이 web browser에서 클릭으로 수행되어 진다. 편하다. 그럼 어떤 분석들을 제공하냐.. 아래와 같다(아래 내용은 DNAnexus에서 제공하는 whitepaper를 해석한 정도다, white paper는 계정 만들고 나면 conduct new analysis에서 experiment type 저하면 옆에 생긴 link에 있다).


-분석 모듈-

1. RNA-Seq / Transcriptome-based quantification
Annotated transcript의 발현양을 profiling 하기 위한 분석 타입. Annotated trascript의 발현 양을 분석하는 것이기 때문에 novel splice site novel 3 end를 찾지는 않는다(이를 위해서는 3번 과 9번 타입의 분석을 이용할 것). Splice junction을 포함한 transcript로 부터의 데이터가 있을 수 있기 때문에 genomic mapping을 사용하지 않고 Refseq이나Ensembl과 같은 데이터베이스에서 얻은 reference transcriptome re-align 한다. Reference transcript에다가 readmapping 한 뒤에 RPKM 값을 구함으로서 normalization을 한다하나 이상의 trascript를 갖는 유전자의 경우 가장 높은 RPKM 값을 같는 transcript report 된다.

2. 3SEQ / Transciptome-based quantification
3SEQ protocol 에 의해 만들어진 library를 분석 할 때 이용하는 분석 타입. 1번 분석 타입과의 차이라면 3SEQ library의 데이터를 이용한다는 것일반적인 RNA-seq  trascript의 전반에 걸쳐 read가 나오는 반면 3SEQ librarytranscript 3 end(대부분 3 UTR) 부분에서 read가 나온다. read 하나가 transcript 하나를 의미그렇기에 RPKM을 이용하지 않고 posterior probability를 이용한 weight를 준 read count 값을 이용해서 transcript 양을 측정한다샘플 간의 비교를 할 때는 read수로 normalize 하거나 아니면 Z score를 계산해서 비교한다

3. 3SEQ / Expressed regions in genome
3SEQ protocol에 의해 만들어진 library를 이용하여 reference annotation에는 없는 novel한 유전자나 alternative 3UTR을 찾을 때 사용하는 분석 타입. Kernel density estimator방법으로 read start site smoothed profile을 계산한다. Strand 별로 read enrichement peak를 찾고 minimum region enrichment, minimum region length, minimum reads 3가지 filtering 조건으로 peak filtering 한다(4번 타입의 분석 방법과 유사하다).  

4. ChIP-Seq / Peaks or regions
ChIP 데이터를 분석하기 위한 분석 타입이 분석에 있어서 Peak region의 개념 차이가 중요한데, peak single genomic site에 의한 것이고 region single site에 의한 것이 아닌 좀 더 broad 한 영역에 걸쳐진 것그래서 promoter binding protein ChIP-seq 데이터의 경우 peak-based analysis를 해야 하고 histone binding protein의 경우 regional analysis를 선택해야 한다.
Kernel Density Smoothing : 일단은 read groupping해서 read density mapping을 만든다이때 이용하는 방식이KDEs(kernel density estimators). Posterior probability 90% 가 넘는 mapped read들의 mapping position의 중점을 그read의 위치로 생각해서 genome 상의 position마다의 read 개수를 합한다그리고 이 density map smoothing 하게 하기 위해 KDE를 사용하는데 K,  kernel은 정규분포를 이용하고 h, breadth는 분석 샘플에 따라 다르게 한다(transcription factor의 경우 30, RNA polymerase의 경우 60, histon biding protein의 경우 100, 숫자가 클수록density가 좀 더 부드러워 진다). Regional analysis의 경우 expected extent of the region을 위한 parameter를 제공해야 하는데 이는 나중에 q-value를 구할 때 이용된다.
Combinding forward and reverse strands : ChIP-seq 자체가 read의 끝을 읽는 것이므로 각 strand의 한쪽 끝에서read가 나오기 때문에 원래 하나의 peak가 생겨야 할 곳에 library의 길이의 반 만큼 shift 되서 양쪽에 두개의 peak가 생긴다그래서 이 두 개의 peak library 길이 반 만큼 shift 해서 합쳐서 원래의 peak를 추론하게 된다.
Experiment versus Background/Input Samples : peak KDE값을 normalize 하기 위해 uniformCoverage를 구한다이는peak가 없을 때곧 총 mappable read가 고루 genome 상에 분포 하였을때의 depth를 구하고 이를 peak KDE 값에 나누어 주어 KDE 값을 normalize한다만약 input 데이터(immunoprecipitation을 하지 않은 데이터)가 이용 가능 하다면 sample normalized KDE/ input normalized KDE 값을 이용한다.
False Discovery Rate :

5. Enriched regions in genome
DNase1 hypersensitivity experiment open chromatin region을 찾는 실험과 같은 특정 실험에서 생성된 readenrichment region을 찾는데 이용되는 분석 타입분석 방법은 strand에 상관없이 하나의 density profile을 만든다는 것을 제외하곤 4번 타입의 ChIP-seq 분석방법과 동일하다또한 중요 parameter 3가지는 3번째 타입인 3SEQ / region 과 동일하다.

6. Nucleotide-level variation
Sample genome reference 간에 차이를 확인하기 위한 분석 타입차이라고 하는 것은 SNP, MNP, insertion, deletion을 뜻한다.

7. Cancer nucleotide variation
Cancer 관련 variation을 찾기 위한 분석 방법. 6번 분석 방법과 동일한데 두 개의 sample 그러니까 cancer samplenormal sample reference에 대한 variation 분석이 동시에 진행된다.

8.Restriction enzyme quantification
Methyl-seq (methylation-sensitive restriction enzymes을 이용하여 methylated 된 DNA를 잘라서 시퀀싱 한 것)과 같이 reference genome에 대한 restriction site를 찾기 위한 분석 타입

9. Alternative splicing, Exome
알려진 exon novel splice junction을 찾기 위한 분석 타입. Novel  splicing junction을 찾음과 동시에 expression quantification이 가능하다.

10.Population allele frequency
Multiple population에 걸쳐서 일어나는 variation을 찾기 위한 분석 방법. 6번 타입의 분석 방법을 기초로population의 그룹 간의 비교를 가능하게 해준다

Tuesday, May 10, 2011

Galaxy

삼성의 핸드폰 galaxy말고 large-scale genome analysis의 분석을 위한 platform인 galaxy. 논문은 여기. 사이트는 요기. genome 관련 데이터 분석을 총망라한 사이트. 몇달전에 함 보고 vod 몇개 보다가 그냥 넘겼는데.. 회사 박사님께서 기분이 상하시는 바람에 요약 보고서를 만들어야 한다. 뭐.. 맘에 안드는 점도 있지만.. 회사기 때문에 시키는거 제대로 하는게 내 일이기에.. 글고 뭐 알아봐서 남주는 것도 아니고 이미 많은 논문에서 citation 하기에 알아야 하는 사항인지라.. 즐거운 맘으로 정리 해보자. 대략적으로다가..


사실 홍창범씨(?.. 성함이 맞나 모르겠네.. 이 분 블로그 보면 참 깊다는 생각이 든다. 같이 일하면서 배워보고 싶은 분) 블로그에 잘 나와있는데.. 이것만 봐도 대략 보고서 나온다. 아마도 홍창범씨 블로그 내용이 galaxy screencast의 내용이 아닌가 싶다. 이 VOD에 이미 설명이 충분히 잘 되어 있기에.. 원래는  구구절절하게 내용을 쓸려 했는데 그냥 여기서 접을련다. 나중에 metagenome 분석 부분만 좀 깊게 review를 해볼련다. 끝.


아 하나 더 Galaxy 모듈 중에 큰 항목이 RGenetics가 있는데 이게 뭔지 아직 정확히 모르겠으나 그 tutorial은 여기.

SMASHCommunity

저번 포스팅에 리뷰 했던 논문(enterotypes of human gut microbiome) 쓴 사람들이 만든 metagenome pipeline인 SMASHCommunity. 네이쳐에 나온 논문을 보면.. 아.. 정말 잘했구나라는 생각밖에 안든다(사실 아직 다 읽진 않았다.. 이런 게으름.. 항상 이런식이다.. 상흠 선배 말투가 떠오르는군). 우린 갈길이 멀었구나..




일단 bioinformatics에 나온 논문부터 요약하자면
SMASH는 sanger나 454 read를 분석하기 위한 standalone 프로그램. metagenome pipeline이 없는것은 아니지만(CAMERA, IMG/M, MG-RAST 등) web-server이거나 아니면 단순 read count를 세는 정도라 한다(참고로 네이쳐 논문의 메소드를 보게되면 read count를 그냥 쓰는 것이 아니라 gDNA의 경우 genome size로 나누고 rRNA의 경우 genome 상의 16s rRNA의 copy수로 나눠서 계산한다). 그 밖에 취약점들을 있는데 생략한다.

Friday, May 6, 2011

stylin with CSS (스타일링 CSS)

멋도 모르고 jquery 부터 손대다가.. css를 혼자서 추측하고 있는 상황이 된지라.. 차근 차근 css부터 봐야 겠단 생각에 보기 시작한 책. 내용은 상당히 맘에 든다. 내게 딱 맞는 수준이랄까. 표준화라는 개념도 잘 나와있고 전체적으로 맘에 든다. 단 번역이 좀.. 그 사람 블로그 들어가니까 참으로 열정적이고 그렇긴 한데.. 솔직히 이렇게 말하고 싶진 않지만 번역은 별루인거 같다. 때때로 영어를 읽는건지 한글을 읽는건지.. 여튼.. 이 책 괜찮다. 나같이 아주 아주 대충 css를 알고 어떻게 해야 할지 우왕좌왕하는 사람에겐. 특히나 괜찮은 책.


아 글고 xhtml 태그 리스트 있는 사이트


아.. 이 책 번역 엉망이다. 너무 심한거 같네.. 읽으면 읽을 수록 구글 번역기 돌렸다는 생각이 드는데.. 


이 책을 보고 얻은 것중에 가장 중요한 것은 table 태그를 사용하지 말라는 것. 예전에 웹프로그램밍 했을때는 웹페이지의 구조를 table 태그를 이용해서 잡았는데 이 책에서는 절대 그렇게 하지 않기를 권장한다. html은 content를 나타내고, 즉 content에 적합한 태그를 골라서 html을 만들고 이를 구조화하는 것은 css로 한다. jquery를 봤을때 jquery로 블록의 위치를  컨트롤 하는걸 보고 놀랐는데 이게 css의 힘이였군.. 이거 보고 jquery 보면 깨닭는게 다르겠다 싶다.


기억해야 할것 몇가지만 적어본다.


-css 파일 최상단부에 * {margin:0; padding:0;}을 넣을 것.
-영문 폰트일때는 font size의 단위를 ems로 한다(한글일때는 px로 한다, 깨지기 때문에).
-font 속성 나열할때 fot-weight, font-style, font-variant는 순서 상관없이 처음에 그 담엔 font-size, font-family 순으로 나열한다.
-vertical margin collapsing, 세로 마진(vertical margin)이 겹치면 그 사이 간격이 두 세로 마진의 합이 되는 것이 아니라 둘중 큰 값이 된다.
-p {width:400px; padding:0 20px;} 이라고 했으면 이 p 블록은 폭이 440px(400 + 20*2)를 갖게 된다.
-padding 값이 변하게 되면 블록 요소들의 너비가 달라지는데 이를 방지 하기 위해서 블록 안에 블록을 설정한다. 그러니까 div 안에 또 다른 div를 설정한다.
-inline 태그는 block 태그를 감쌀수 없다. 허나 display 속성을 이용하면 가능.
-한 블록태그 안에 다른 블록태그가 있을때 바깥의 블록태그의 position 속성이 static으로 되어 있으면 안쪽의 블록 태그의 position속성이 absolute로 되어 있을때 안쪽 블록 태그의 기준점은 body이나, 바깥쪽 블록태그의 position 속성이 relative로 되어 있다면 기준점은 바깥쪽 블록 태그가 된다.
-가상 클래스인 hover는 IE6에서는 a 태그에서 밖에 안먹힌다. 웹에서 csshover.htc를 다운 받아서 body 태그에다가 body {behavior:url(csshover.htc);} 라고 넣는다. 그러면 IE6 에서 모든 태그에 hover가 먹힌다.
-별표 핵과 백슬러쉬 핵 : div * ul {... css 선언... } 은 ul이 div의 자식이 아니고 손자라면 선택되지 않는다. 이 * 와 IE6에서만 먹히는 html 요소를 이용해서 IE6에서만 읽히는 규칙을 만들 수 있다. * html div.id {..somthing css..} 이런식으로 하면 IE6에서만 이 태그 즉 id를 클래스로 갖는 div 태그에 css 적용을 시킬수 있다.
-html의 리스트 속성 (ul,ol,dl)로 menu를 만들 수 있는데 브라우져마다 list의 margin, padding이 다르기 때문에(특히 IE6) list를 div로 둘러싸고 그 div 안에 속성들 그러니까 div_something * {padding:0; margin:0;} 을 해준다.
-인라인 아이템과 블록 아이템은 서로 상호 작용하지 않는다. 뭔말인고 하니

라고 테그가 되어 있을때 css는 div{float:left;} a{padding:16px 6px;}라고 되어 있으면  a 태그에 padding을 했기 때문에 위 아래로 16px 앞뒤로 6px 만큼의 여유공간이 생기고 div의 float이 되어 있으므로 a 태그 크기만큼 맞춰질거라고 생각되는데 실은 그렇지 않다. 왜냐면 a 태그는 인라인 아이템이고 div는 블록아이템이라 서로 상호 작용을 하지 않아서, 그럼 어찌해야 하냐 css의 a 태그에다가 display:block; 을 넣어줘서 a 태그를 block 속성으로 변환

Wednesday, May 4, 2011

submission of genome - 5

이번에는 annotation을 내가 만든거 말고 NCBI의 staff이 추천한 PGAAP를 써볼려한다. in-house annotation pipeline의 문제는 naming.. 아.. product랑 gene 이름 참.. 난감하다. 또한 사실 내가 만든 annotation보다 이게 좀 강점이 있다. 거의 비슷하긴 하지만.. 여튼 해서 PGAAP를 어떻게 이용하는지 알아본다.

PGAAP를 쓰려면 (링크는 다음)
1. 일단 그렇듯 먼저 genome project를 등록한다. 결정적으로 locus_tag prefix를 써야하기 때문에 ..
2. 그 담엔 PGAAP submission을 위한 3개의 필수 파일와 추가적인 하나의 파일(옵션), 그러니까 총 4개 파일이 필요하다. 
3. 파일을 만들기 전이나 후에 ncbi로 컨택해야 한다. 그러면 ftp 계정을 만들어 준다. 그 곳으로 파일을 올리고 다시 메일을 보내서 파일을 업로드 했음을 통지해야 한다.


스텝 2에서의 파일의 내용은 아래와 같다.

 *.email, *.fasta, *.template 파일이 필수. 파일 이름은 _. 인데 locus_tag는 1번 단계에서 등록했거 쓰고 under bar 한다음에 날짜.

*.email 에는 NCBI와 contact 할 메일 주소.
*.fasta 에는 sequence가 들어가는데 head에 >gnl|LrgU|Contig01 [organism=Bacterium bacterius 253] [strain=253] [gcode=11] 과 같은 내용이 꼭 들어가야 한다. 그리고 시퀀스는 IUPAC base만 들어갈것.
*.template 파일은 submitter와 그 organization에 대한 정보가 ASN.1 파일 형식으로다가.. 이거 Sequin 프로그램 쓰면 만들수 있단다.


% 주의 사항 %
2번 스텝에서 sequin으로 template 파일을 만드는데 topology 정보를 넣는 옵션을 찾을 수가 없는데 메일을 보내봤더니 답장에 링크와 같이 fasta 파일의 header에다가 넣으란다.
3번 스텝에서 ftp 접속시 linux로 바로 접속해서 파일을 업로드 한다(뻘짓하지 말고 ftp <주소>, mput * 하면 됨).

Friday, April 29, 2011

comparison of coverage between Exome Capture Kits

아.. 난 metagenome 논문 보고 싶었는데.. 급하게 exome capture kit 비교 했던거 정리하란다. 해야지. 목표는 단순하다. 3가지의 exome capture kit의 coverage를 비교하는 것. 결코 이 표에 대한 accuracy는 보증하지 않는다. confidential 한 문제도 있고 해서리.. 


하려는 걸 단순화 해보자. 
exome capture kit들을 (SeqCap EZ Human Exome Library v2.0,  SureSelect , TruSeq Exome Enrichment Kit )의 genome coverage를 비교하자. exome capture kit이니까 특히 exon 부분의 coverage를 유념해서 본다. 그럼 exome region의 definition은 뭘로 할거냐. 여러가지가 있겠지만 refseq과 ccds로 한다.


<결과> 


%이 표에서 단순 coverage는 probe design position 과 exon의 position 만 단순하게 비교. 그렇기 때문에 한 probe가 genome 상의 한 위치에서 디자인 됐지만 똑같은 시퀀스가 genome 상의 다른 위치에 존재할 때 원리적으로는 다른 곳도 커버하는 것이지만 그것까지 카운트 하지 않음.


<출처 >
1.SeqCap EZ Human Exome Library v2.0 : Roche 홈피에 오픈
2.SureSelect : 이는 agilent errary인가에 오픈되어 있는걸로 알고 있는데 아직 확실치 않다.
3.TruSeq Exome Enrichment Kit :  이는 web에 오픈되지 않음.
4.exome region : UCSC의 table에서 가져옴. 






< 이번 작업을 하면서 알게 된것 혹의 주의 할점 >
1.bed 파일과 UCSC의 데이터의 모든 좌표의 start position은 0-based고 end position은 아니다.
2.refseq과 ccds의 특정 gene들에 대한 record가 여러번 나오는데, 다시 말하면 동일 유전자가 genome 상의 서로 다른 위치에 존재 할수 있기 때문에 같은 gene accession id 를 갖는 record가 있을 수 있다(ccds의 경우 23개, refseq의 경우 2991개). 
그런데 하나 이상한건.. refseq. 동일한 gene acc가 여러개의 record가 나온다는 걸 난 동일 유전자가 서로다른 genome상에 위치 하기에 그렇다고 해석했는데.. 그렇다면 동일한 gene acc를 갖는 record들은 최소한 exon 의 갯수와 그 genome size가 동일해야 하는데 refseq의 경우 다수 record를 갖는 gene acc가 2991인데 그중에 613개의 gene acc의 record는 그것이 다르다는 것(ccds의 경우 23개 모두 record가 동일). 이게 어찌된 일인지.. 누가 알려주세요..