자 대략적으로 누구랩 레포트로 큰그림은 그려봤으니 실질적으로 논문들을 볼 차례다. 시작점은 a core gut microbiome in obese and lean twins로 한다. (참.. 이것 참.. 이 논문을 genomeweb에서 2년전쯤 논문 서머리로 슬쩍 본적이 있었는데 결국 보게 되다니. 참 이거. 참..) 그리고 CD-hit, species richness 통계 관련 논문, 마지막으로 mothur 논문 순서로 하기로 한다.
<A core gut microbiome in obese and lean>
http://www.nature.com/nature/journal/v457/n7228/full/nature07540.html
원래는 위에 것 할려고 했는데 윗분의 BGI언급으로 인해 아래 논문으로 수정
<A human gut microbial gene catalogue established by metagenomic sequencing>
http://www.nature.com/nature/journal/v464/n7285/full/nature08821.html
이 논문의 위의 논문보다 나중에 나온것. 둘다 gut의 microbe 를 metagenome 연구를 했다는 공통점. 위 논문의 abstract만 보면 위 논문은 16s rRNA도 하고 전체 microbe의 genome (microbiome)을 시퀀싱 한거 같다. 이 논문은 Genome analyser (GA)를 가지고 124명의 유럽인들의 똥의 미생물의 microbiome, 그러니까 전체 genomic DNA를 시퀀싱. => 그래서 576.7 Gb 를 만들어냄(이전 논문의 200배, BGI에서 돈많이 썻다고 자랑함). => 그 뒤 assembly,=> 3.3 M 의 unique ORF 만들어냄. 그리고 마지막 말, 이 결과는 short read sequencing으로도 metagenomics를 할수 있음을 보인다는건데 이건 BGI가 illumina 계열의 기기만 있기 때문에 이것으로도 metagenome을 해도 된다. 뭐 이런 support를 위한 논문인냥 느껴지는 멘트이다. 그러면 short read sequencer로도 가능하냐? 이 문제에 대해선 다음의 논문[1] 을 추천하려 했지만.. 16s rRNA 에 대해서 물어본다면 답이 안되는 논문인듯 하다.
metagenomic sequencing of gut microbiomes
124명의 건강하거나 과체중이거나 비만 혹은 염증성 장내질환(IBD)를 갖은 사람의 변의 microbe를 시퀀싱했다.두당 평균 4.5Gb 만들어냈고 이를 개인 각각 SOUPdenovo로 어샘블. 500bp 이상의 contig가 총 6.58M개 총 사이즈는 10.3Gb(N50 : 2.2kb), read의 42.7 %가 contig 만들어 지는데 이용됨. confirm으로 두 개체를 골라서 sanger 방법으로 시퀀싱한 리드를 contig에 매핑, 그 결과 98.7%가 맵핑됨. 이 값을 또 FLX와 비교(한 개체를 FLX로 시퀀싱한뒤 assembly해서 sanger read를 매핑해봄, 무서운 놈들). error-rate[2]와 뭐 이것저것 FLX에 떨어지지 않음을 증명. 어셈블 안된 리드들을 개체에 상관없이 모아서 다시 어셈블, 결과 0.4M개 총 370Mb(N50: 939bp) 의 contig 생성. 거꾸로 read들을 90% identity를 threshold(시퀀싱 error, strain variability를 고려해서)로 매핑, 결과 80%의 read가 매핑. 다른 논문의 데이터, 그리고 genbank와도 비교. 우월함을 입증.
a gene catalogue of the human gut microbiomes
ORF prediction에 MetaGene 사용. 100bp 이상의 ORF를 총 14,048,045개 찾음. 이건 총contig길이의 86.7%. 이는 평균적인 microbe의 비율과 비슷. (2/3의 ORF가 incomplete하다는데.. 이걸 어떻게 알지? incomplete하다의 의미가 정확히 뭔지 모르겠다). 그 ORF들의 redundancy를 없애고 총 3,299,822의 ORF로 추려냄, 이를 prevalent genes 이라고 함. 이 prevalent gene을 genome sequence가 있는 장내 세균과 비교. 상당수 매치됨. 음.. EstimateS 라는 프로그램을 써서 ICE를 계산해서 자기네들이 찾은 prevalent gene이 전체 추측되는 prevalent gene의 몇 %를 capture했나 라는 말이 나오는데 아.. 이는 잘 이해가 안된다[3]. 결론은 85% 이상을 capturing 한것으로 여겨진다는 것. 그리고 개체간에 얼마나 common gene이 있나를 체크했는데, 생각보다 prevalent gene이 생각보다 소수에 치우쳐 있다는 식으로 이야기함. 이것의 한 factor로 sampling depth를 들음. 그러나 역시나 개체간에 share하는 prevalent gene은 상당함. 재밌는것은 IBD 환자의 prevalent gene이 정상보다 갯수가 적음. 이는 IBD환자의 장내 미생물 diversity가 일반인보다 적다는 것과 일맥 상통.
common bacterial core
functions encoded by the prevalent gene set
ORF들을 NCBI의 NR(protein)과 KEGG, COG, eggNOG[4]에 있는 gene에다가 align함.[5]
bacterial functions important for life in the gut
functional complementarities fo the genome and metagenome
[1]http://aem.asm.org/cgi/reprint/74/5/1453.pdf 이논문이 2008년 초에 나온건데 abstract를 보면 100-200 bp의 read로 16s rRNA 시퀀싱 분석이 괜찮냐를 본 논문. 방법은 간단해 보인다. 거의 full length의 16s rRNA와 random하게 만들어낸 short read의 blast와 cog 분석 결과를 비교한다. blastx의 결과 당연하지만 full length에 비해 homolog hit이 현저하게 떨어진단다. 주의할 건 400bp 까지 read의 길이를 늘려도 내지는 depth를 늘려도 마찬가지라는거. 결국 Evalue가 낮은 hit 아니면 찾기 어렵다는것. 그리고 cog 분석도 마찬가지로 full... 근데 이거 16s rRNA에 국한된게 아닌듯 싶다. 그리고 nature 논문은 assembly후에 분석한 거라 이 의미가 없을 듯
[2]error-rate :
[3]EstimatorS, ICE : http://viceroy.eeb.uconn.edu/EstimateSPages/EstSUsersGuide/EstimateSUsersGuide.htm
[4]eggNOG : http://eggnog.embl.de/
[5]rarefaction analysis :
Monday, March 14, 2011
metagenomics를 위한 잡다지식 but 완전 기초
누구랩의 분석레포트를 보는데 미생물의 분류학적 개념부터 나온다. 이것 부터 제대로 정립해야 하는게 사실이다. 그래서 정리해보자.
미생물이란
미생물(microbe) 라고 함은 바이러스(virus), 세균(bacteria), archaea,균류(fungi), 원생생물(protist) 로 나뉜단다.
한국말로 하면 원생이랑 원핵 생물이라하면 헷갈리는데 원핵은 하나의 핵이란게 아니라 원시핵을 의미 하는 것으로 prokaryote을 말한다. 반면 protist은 eukaryote으로 대부분 단세포 생물.
그럼 protist와 fungi가 뭐가 다르냐?(둘다 eukayote인데..) 아래 링크. 우선은 protist는 거의 단핵 생물. 그리고 fungi는 주로 saprotrophic (sapros+trophic = rotten+food = cell 밖에서 음식을 썩혀서 영양분을 soluble 하게 만든담 uptake). 그리고 세포벽도 차이.
archaea는 핵이 없는데 원핵 생물(prokaryote)과는 다른데 가장큰 차이는 세포벽을 구성에 큰차이 세포막에 있어서는 진핵생물과 차이.그런데 분자 생물학적으로 보면 eukaryote와 유사한 측면이 있다(chromatin 구조랑 RNA polymerase와 start codon도 eukaryote랑 유사).
자세한건 아래 링크
archea : http://100.naver.com/100.nhn?docid=828465
protist : http://navercast.naver.com/contents.nhn?contents_id=4203
difference between protist & fungi : http://answers.yahoo.com/question/index?qid=20080508155624AAVlMGj
종의 분류 in prokaryote
fungi랑 protist의 종의 개념은 형태나 reproductive behavior 에 많이 의존한다고 한다. 반면 prokayote의 종의 개념은 분자계통학적 연구방법에 따라 분류가 되는데 다음과 같은 두가지 기준이 있다. 두종이 구별되기 위한 조건 1. genome sequence가 달라야 한다. 그럼 어느정도? DNA-DNA hybridizaion 비교 일시 70% 이하로 hybridization되야 하고 2. 16sRNA 비교시 sequence similarity가 97% 이하여야 한다. 3. 단 위 두조건이 충족되더라도 형태나 생리적 표현 형질의차이가 없으면 다른 종으로 분류 할수 없다.
microbial community analysis (어떤 미생물이 얼마만큼 있는지 분석)
DGGE, TGGE, t-RFLP, SSCP 는 PCR로 16S rRNA gene을 증폭한담에 전기 영동으로 gel 상에 band의 형태로 미생물 군집의 변화를 본다. 음. 말 그대로 gel 걸어서 비슷한 것들끼리 분리되서 뭉치니까 그걸로 판단을 하는거 같고 근데 이것으론 데이터베이스와 그리고 종의 정보는 얻지 못함.
species richness : 시료내 종의 수
OTU (operational taxonomic unit)으로 분류 대상이 되는 생물체의 개체 또는 군. 거의 종을 의미, 그러니까 species richness를 구한다는건 OTU의 수를 수한다는 구한다는 것과 동일하다고 할수 있을거 같다.
1.일차적으로 read들을 filtering을 잘해서(quality filter, barcode & primer trimming) 2.CD-HIT과 같은 프로그램으로 read들을 clustering 후 3. 통계적 방법으로 실제의OTU를 추정 3.전체적인 종의 분포를 나타내는 diversity index를 구함.
의문점 및 checklist
1.누구랩 레포트를 보아하니 query를 blastn도 하고 megaBlast도하는데.. 음 왜 그러지 blastn만 하면 megablast 까지 커버가 되는거 아닌가? 굳이 둘다 하는 이유가 있나.
2.그리고 blast후 비슷한 시퀀스를 뽑아낸 다음에 global alignment 를 하는데 여기서 말하길 clustalW의 것과 동일한 것을 사용한다고 하는데 (http://bioinformatics.oxfordjournals.org/content/4/1/11.abstract) 이건 일반적으로 알고 있는 needleman이랑은 다른 것인가?
3.read trimming을 할때 pairwise alignment를 해서 barcode와 primer를 제거해야 하는데 이를 어떤식으로 할것인가?
4.CD-HIT 관련 논문
5.species richness 의 통계적 추정 관련 논문
6.Mothur program
7.쌍둥이 내장내 miocrobiome metagenomics 논문
미생물이란
미생물(microbe) 라고 함은 바이러스(virus), 세균(bacteria), archaea,균류(fungi), 원생생물(protist) 로 나뉜단다.
한국말로 하면 원생이랑 원핵 생물이라하면 헷갈리는데 원핵은 하나의 핵이란게 아니라 원시핵을 의미 하는 것으로 prokaryote을 말한다. 반면 protist은 eukaryote으로 대부분 단세포 생물.
그럼 protist와 fungi가 뭐가 다르냐?(둘다 eukayote인데..) 아래 링크. 우선은 protist는 거의 단핵 생물. 그리고 fungi는 주로 saprotrophic (sapros+trophic = rotten+food = cell 밖에서 음식을 썩혀서 영양분을 soluble 하게 만든담 uptake). 그리고 세포벽도 차이.
archaea는 핵이 없는데 원핵 생물(prokaryote)과는 다른데 가장큰 차이는 세포벽을 구성에 큰차이 세포막에 있어서는 진핵생물과 차이.그런데 분자 생물학적으로 보면 eukaryote와 유사한 측면이 있다(chromatin 구조랑 RNA polymerase와 start codon도 eukaryote랑 유사).
자세한건 아래 링크
archea : http://100.naver.com/100.nhn?docid=828465
protist : http://navercast.naver.com/contents.nhn?contents_id=4203
difference between protist & fungi : http://answers.yahoo.com/question/index?qid=20080508155624AAVlMGj
종의 분류 in prokaryote
fungi랑 protist의 종의 개념은 형태나 reproductive behavior 에 많이 의존한다고 한다. 반면 prokayote의 종의 개념은 분자계통학적 연구방법에 따라 분류가 되는데 다음과 같은 두가지 기준이 있다. 두종이 구별되기 위한 조건 1. genome sequence가 달라야 한다. 그럼 어느정도? DNA-DNA hybridizaion 비교 일시 70% 이하로 hybridization되야 하고 2. 16sRNA 비교시 sequence similarity가 97% 이하여야 한다. 3. 단 위 두조건이 충족되더라도 형태나 생리적 표현 형질의차이가 없으면 다른 종으로 분류 할수 없다.
microbial community analysis (어떤 미생물이 얼마만큼 있는지 분석)
DGGE, TGGE, t-RFLP, SSCP 는 PCR로 16S rRNA gene을 증폭한담에 전기 영동으로 gel 상에 band의 형태로 미생물 군집의 변화를 본다. 음. 말 그대로 gel 걸어서 비슷한 것들끼리 분리되서 뭉치니까 그걸로 판단을 하는거 같고 근데 이것으론 데이터베이스와 그리고 종의 정보는 얻지 못함.
species richness : 시료내 종의 수
OTU (operational taxonomic unit)으로 분류 대상이 되는 생물체의 개체 또는 군. 거의 종을 의미, 그러니까 species richness를 구한다는건 OTU의 수를 수한다는 구한다는 것과 동일하다고 할수 있을거 같다.
1.일차적으로 read들을 filtering을 잘해서(quality filter, barcode & primer trimming) 2.CD-HIT과 같은 프로그램으로 read들을 clustering 후 3. 통계적 방법으로 실제의OTU를 추정 3.전체적인 종의 분포를 나타내는 diversity index를 구함.
의문점 및 checklist
1.누구랩 레포트를 보아하니 query를 blastn도 하고 megaBlast도하는데.. 음 왜 그러지 blastn만 하면 megablast 까지 커버가 되는거 아닌가? 굳이 둘다 하는 이유가 있나.
2.그리고 blast후 비슷한 시퀀스를 뽑아낸 다음에 global alignment 를 하는데 여기서 말하길 clustalW의 것과 동일한 것을 사용한다고 하는데 (http://bioinformatics.oxfordjournals.org/content/4/1/11.abstract) 이건 일반적으로 알고 있는 needleman이랑은 다른 것인가?
3.read trimming을 할때 pairwise alignment를 해서 barcode와 primer를 제거해야 하는데 이를 어떤식으로 할것인가?
4.CD-HIT 관련 논문
5.species richness 의 통계적 추정 관련 논문
6.Mothur program
7.쌍둥이 내장내 miocrobiome metagenomics 논문
Sunday, March 13, 2011
네트워크 원리
어제 아이폰 수업을 마치고 회사에 들어왔는데 너무너무 아무것도 하기 싫어서 회사 안 책장을 뒤지다가 발견한 책. 사실 회사안에 있는 책은 2nd edition은 아니고 첫번째 에디션인데 내용은 차이가 없는 듯. 이제 읽기 시작했는데 인트로를 보니 내게 꼭 필요한책이 아닌가 싶다. 사실 얼마전에 TCP/IC 소켓 프로그래밍이란 책을 봤는데 (첫번째 시도에 5장인가까지 두번째 시도에는 13장까지.. 결국 마무리는 못지었지만..여튼) 어떻게 보면 내가 그 책을 본 이유가 네트워크 프로그래밍을 하고 싶어서라기보다 네트워크가 어떻게 돌아가는 지 알고 싶어서 였다. 그런 목적에서는 어쩌면 이 책이 더 적당하지 않을까 싶다. 이거 가능한 빨리 끝낸다.
우선은 책의 구성이 참 맘에 든다. 일본인 저자인데.. 의외로 일본인이 지은 책을 실망한적이 없는거 같다. 이들은 참 생각을 많이 하고 책을 만들어 낸 느낌이 있다. 꼭 정석적으로라기 보다 어떻게 하면 조금 더 이해를 잘 시킬수 있을까라는 생각을 많이 하고 책을 만든다. 일단 첫부분에 전체 적인 내용을 요약한 테이블이 있는데. 음.. 이부터도 참 잘되어 있다. 고고
우선은 책의 구성이 참 맘에 든다. 일본인 저자인데.. 의외로 일본인이 지은 책을 실망한적이 없는거 같다. 이들은 참 생각을 많이 하고 책을 만들어 낸 느낌이 있다. 꼭 정석적으로라기 보다 어떻게 하면 조금 더 이해를 잘 시킬수 있을까라는 생각을 많이 하고 책을 만든다. 일단 첫부분에 전체 적인 내용을 요약한 테이블이 있는데. 음.. 이부터도 참 잘되어 있다. 고고
Saturday, March 12, 2011
iphone 개발 수업 1주차
3/11
프레임워크라는 것은 package 와 같은 개념. 그러니까 클래스 묶음.
iOS 는 4개의 계층으로 구성되어 있는데 맨 위의 계층만 거의 object-c로 구성. 그렇기에 개발 자체는 꼭 object-c일 필요는 없으나 프레임워크를 사용하려면 object-c 필요
NSLog 나 NSString 클래스는 UTF-8 을 사용한다. 그렇기에 ""앞에 @를 붙여서 @"somthing" 방식으로 사용한다.
3/12
alloc 하면 클래스를 메모리에 올림, 단 super, self 는 초기화된다. self에는 자기 자신의 메모리 주소를 가르킨다.
init 을 호출해야 그 클래스의 속성들 (refCount, )이 초기화 된다.
nil = Nil = NULL = 0
nil : alloc 했는데 오류, 포인터가 더이상 객체를 가르키지 않는다.
Nil : 포인터가 클래스 메소드를 더이상 가르키지 않는다.
NULL : 객체를 가르키는 포인터가 아닌 변수, 구조체를 가르키는 포인터가 더이상 변수 구조체를 가르키지 않는다.
사실 구분하지 않고 사용해도 효과는 동일
objective-c 2.0 버젼에서는
클래스 안의 속성값은 다른 클래스에서 접근할 수 없기 때문에 속성을 리턴하거나 수정하는 메소드를 정의해야 했다. 그런데 3.0버젼부터는 property를 사용하면 컴파일러가 자동으로 속성과 관련된 메소드를 만들어 준다. 그리고 3.0 에서는 자동 구현된 메소드는 . 연산자에 의해 접근이 가능하다(원래는 [object setAttr] 식으로 해야 하는데 object.setAttr가 가능하다, 단 자동 구현 메소드만).
property
선언부, interface 에서는 @property 구현부, implementation 에서는 @synthesize를 명시해야한다. retain은 객체 타입, assign은
아. set, get 메소드가 생긴다라고 보기보다는 C++처럼 그냥 . 연산자로 속성에 접근이 가능하게 하는 효과가 생긴다. 그렇기에 set메소드처럼 사용하려면 class.attr = something, get메소드처럼 사용하려면 NSLog(@"%@",class.attr) 과 같이 사용한다. 이는 사실 컴파일러가 set, get 메소드를 정의하면서 동시에 연산자(=) 오버로딩에 의해 가능해진 것이다.
@property (<#attribute#>) <#type#> <#name#>
<#attribute#> 에는 3종류가 있는데 setter(assign, retain), nonatomic(atomic, nonatomic), getter(readwrite, readonly) 가 있다.
<#attribute#> 안써주면 default로 atomic 으로 설정된다. atomic 은 한번에 하나의 쓰레드에서만 접근 가능한 객체. nonatomic 으로 설정해주면 여러쓰레드가 동시 접근이 가능한 객체. 대부분의 속성은 nonatomatic 이다.
아이폰 앱의 Architecture 와 life cycle
앱의 아이콘 터치 => main 실행 => UIApplicationMain 함수 실행(이는 cocoa내부에 구현되어 있는 것으로 그 메소드의 인자에 의해 저절로 project 이름이 넘어가면서 3번 스텝에서 UIApplicationDelegate 클래스를 상속받은 클래스가 무엇인지 판단하게 된다) : 1. 프로젝트명-info.plist(앱전체 설정파일) 을 읽고 2. plist 파일에서 main nib file base base name 키를 보고 화면설정이 있는 파일 이름을 찾음(MainWindow.nib; xml 파일) 3. UIApplicationDelegate를 상속받은 클래스의 객체를 생성([[someClass alloc] init])(UIApplicationDelegate 클래스를 상속받은 객체는 반드시 하나), 이때 2번에서 읽은 파일에 읽은 xml 파일에 있는 화면 객체들을 생성해서 someClass 안에 있는 UI window 객체 타입의 window 변수에 넣는다. UI window는 기본적으로 안보이게 되어 있다. 4. UIApplication 객체 생성 5.그리고 UIApplication 객체가 무한 루프를 돌면서 event가 발생하는지 monitoring 하고 event에 따라서 거기에 맞는 someClass, 즉 3에서 생성한 클래스의 메소드 호출. 무한 루프는 iphone3 에서 home 버튼 누르면 끝났으나 4버젼부터는 home 버튼을 눌러도 background 로 돌고 메모리가 OS 에서 메모리가 부족하면 그 때 끝낸다.
무작정 따라하기
1. Main
프레임워크라는 것은 package 와 같은 개념. 그러니까 클래스 묶음.
iOS 는 4개의 계층으로 구성되어 있는데 맨 위의 계층만 거의 object-c로 구성. 그렇기에 개발 자체는 꼭 object-c일 필요는 없으나 프레임워크를 사용하려면 object-c 필요
NSLog 나 NSString 클래스는 UTF-8 을 사용한다. 그렇기에 ""앞에 @를 붙여서 @"somthing" 방식으로 사용한다.
3/12
alloc 하면 클래스를 메모리에 올림, 단 super, self 는 초기화된다. self에는 자기 자신의 메모리 주소를 가르킨다.
init 을 호출해야 그 클래스의 속성들 (refCount, )이 초기화 된다.
nil = Nil = NULL = 0
nil : alloc 했는데 오류, 포인터가 더이상 객체를 가르키지 않는다.
Nil : 포인터가 클래스 메소드를 더이상 가르키지 않는다.
NULL : 객체를 가르키는 포인터가 아닌 변수, 구조체를 가르키는 포인터가 더이상 변수 구조체를 가르키지 않는다.
사실 구분하지 않고 사용해도 효과는 동일
objective-c 2.0 버젼에서는
클래스 안의 속성값은 다른 클래스에서 접근할 수 없기 때문에 속성을 리턴하거나 수정하는 메소드를 정의해야 했다. 그런데 3.0버젼부터는 property를 사용하면 컴파일러가 자동으로 속성과 관련된 메소드를 만들어 준다. 그리고 3.0 에서는 자동 구현된 메소드는 . 연산자에 의해 접근이 가능하다(원래는 [object setAttr] 식으로 해야 하는데 object.setAttr가 가능하다, 단 자동 구현 메소드만).
property
선언부, interface 에서는 @property 구현부, implementation 에서는 @synthesize를 명시해야한다. retain은 객체 타입, assign은
아. set, get 메소드가 생긴다라고 보기보다는 C++처럼 그냥 . 연산자로 속성에 접근이 가능하게 하는 효과가 생긴다. 그렇기에 set메소드처럼 사용하려면 class.attr = something, get메소드처럼 사용하려면 NSLog(@"%@",class.attr) 과 같이 사용한다. 이는 사실 컴파일러가 set, get 메소드를 정의하면서 동시에 연산자(=) 오버로딩에 의해 가능해진 것이다.
@property (<#attribute#>) <#type#> <#name#>
<#attribute#> 에는 3종류가 있는데 setter(assign, retain), nonatomic(atomic, nonatomic), getter(readwrite, readonly) 가 있다.
<#attribute#> 안써주면 default로 atomic 으로 설정된다. atomic 은 한번에 하나의 쓰레드에서만 접근 가능한 객체. nonatomic 으로 설정해주면 여러쓰레드가 동시 접근이 가능한 객체. 대부분의 속성은 nonatomatic 이다.
아이폰 앱의 Architecture 와 life cycle
앱의 아이콘 터치 => main 실행 => UIApplicationMain 함수 실행(이는 cocoa내부에 구현되어 있는 것으로 그 메소드의 인자에 의해 저절로 project 이름이 넘어가면서 3번 스텝에서 UIApplicationDelegate 클래스를 상속받은 클래스가 무엇인지 판단하게 된다) : 1. 프로젝트명-info.plist(앱전체 설정파일) 을 읽고 2. plist 파일에서 main nib file base base name 키를 보고 화면설정이 있는 파일 이름을 찾음(MainWindow.nib; xml 파일) 3. UIApplicationDelegate를 상속받은 클래스의 객체를 생성([[someClass alloc] init])(UIApplicationDelegate 클래스를 상속받은 객체는 반드시 하나), 이때 2번에서 읽은 파일에 읽은 xml 파일에 있는 화면 객체들을 생성해서 someClass 안에 있는 UI window 객체 타입의 window 변수에 넣는다. UI window는 기본적으로 안보이게 되어 있다. 4. UIApplication 객체 생성 5.그리고 UIApplication 객체가 무한 루프를 돌면서 event가 발생하는지 monitoring 하고 event에 따라서 거기에 맞는 someClass, 즉 3에서 생성한 클래스의 메소드 호출. 무한 루프는 iphone3 에서 home 버튼 누르면 끝났으나 4버젼부터는 home 버튼을 눌러도 background 로 돌고 메모리가 OS 에서 메모리가 부족하면 그 때 끝낸다.
무작정 따라하기
1. Main
Tuesday, March 8, 2011
metagenomics
요즘 구제역이다 뭐다 해서 가축들을 죄다 땅에 파 묻는 바람에 지하수에 구제역에 의한 오염이 있지 않나 뭐다나 해서 농진청에서 연구비를 지원하나보다. 덕분에 회사의 가장 힘없는 말단 사원인 난 metagenomics 세계로 뛰어 들게 된다(근데 들어보니 구제역은 바이러스 때문이라는데..). 평소에 metagenomics에 대해 생각이 없었는데.. 예전에 천교수님 발표 할때 들어보고.. 아 꽤 시장이 크구나라고 느낀게 전부인데.. 나는야 까라면 쪼금 반항해보고 결국 까고 마는 말단 사원이다(아.. 연구원이다.. 사원보다 월급 적게 받는).
뭐 덕분에 공부한다고 생각하고 하나하나 정리해보자.
metagenomics 란 무엇인가?
rRNA
metagenome 시퀀싱을 하면 일반적으로 rRNA를 시퀀싱한다 (물론 그냥 gDNA를 culture해서 orf도 prediction하고 protein 시퀀스를 이용해서 functional annotation도 하지만). 아직 까지 내가 아는 지식으론 아마도 그 orgamism들의 구성도를 보기 위해서? 여튼.. 아래 위키 for rRNA explanation
http://en.wikipedia.org/wiki/Ribosomal_RNA ribosomal RNAs는 LSU(large subunit), SSU(small subunit) 으로 구성되어 있는데 prokaryote의 경우 LSU로 50S가 SSU로 30S 가 있고 그 30S를 구성하는 rRNA가 바로 16S rRNA. 보통 rRNA sequencing 중 16S rRNA 시퀀싱을 많이 하는데 그 이유를 생각해 보자면 http://en.wikipedia.org/wiki/16S_ribosomal_RNA 에 마지막에 보면 16S rRNA에 universal primer를 쓸수 있을 정도로 conserved 한 region도 있고 반면에 굉장히 변화가 심한 hypervariable region도 있기 때문에 아마도 species를 구분하기에 적당해서가 아닐까.
참고로 다음 논문도 읽어볼만 할듯하다.
Ribosomal RNA : a key to phylogeny
http://www.fasebj.org/content/7/1/113.full.pdf#page=1&view=FitH
metagenomics 분석 어떻게 해야 하나?
http://mmbr.asm.org/cgi/content/short/72/4/557
metagenomics를 위한 bioinfomatic 가이드라는 제목의 review인데.. 꼭 읽어봐야 할듯. intro 바로 처음에 나오듯이 이 리뷰는 functional metagenomics (특정 activity가 있는 것만 골라내서 cloning 해서 시퀀싱 한거)랑 구분하여 50Mbp 이상의 randomly sampled sequnces를 분석하는 가이드.
관련 데이터 베이스
들어보니 Silva, greengenes, EZ_taxon 이렇게 3개가 가장 많이 사용되는거 같다. 몇개 찾아보니 Silva가 가장 잘 되어 있는 느낌(?)이 드는데 우선 관련 논문
<Silva>
http://nar.oxfordjournals.org/content/35/21/7188.full?keytype=ref&ijkey=pwbw9T96ADMbJBk
일단 이러한 데이터 베이스의 목적은 넘쳐나는 rRNA데이터를 careful inpection, 그러니까 curration을 통해 rRNA가 biodiversity 연구에 도움이 되도록 하는데 있다(unified quality control & alignment of rRNA datasets).
논문을 보니까 rRNA 를 이용한 phylogeny의 연구에 ARB 라는 software와 이를 위한 db를 많이 썼었던걸로 보인다. ARB 말고도 rRNA curation을 위한 3개의 main project를 소개한다(greengenes, RDP,그리고 하나가 european rRNA 데이터 베이스인데 이것이 Silva로 들어 간것으로 보인다.). 아 그리고 하나 greengene에서는 ARB compatible dataset을 가지고 있긴 한데 full length인것만 대해서만. 그리고 요즘은 LSU rRNA도 많이 사용한다네(특히 eukaryote의 경우). intro을 본 결론은 4개의 DB 그중 ARB랑 european rRNA은 Silva로 편입된거 같다.
-Sequence data
Silva의 버젼은 EMBL과 버젼이 똑같다. 곧 RNA와 관련된 키워드 모두 검색해서 EMBL에서 RNA 시퀀스를 가져온다는 말. 그리고 seed alignment를 제공한다는데.. silva의 예전 버젼 격인 ARB에서 release 한것을 그대로 유지한다는데.. 이 seed alignment라는게 뭔지 잘 모르겠다..
-Quality checks
1.unaligned uncleotides 중 300bp보다 짧거나, 2. 2%이상 ambiguities가 있거나, 3. 아니면 2%이상의 homopolymer (homotetramer(homo-4bp)이상)가 있거나, 4. vector랑 5%이상 매치되면 제거. 그리고 이 세가지(2,3,4 항목)의 평균을 구해서 100에서 빼면 이것이 sequence quality가 된다. 이후 필터링 통과한 시퀀스들은 seed alingment에 대해 SINA(silva incremental aligner)에 의해 alignment가 되어 진다. 근데 이 sequence quality로 뭐하는 것인지.. 이미 4가지 항목으로 필터링 했는데 그 뒤에 이 sequence quality를 왜 구하는건지..이 역시 아직 잘 모르겠음
-Aligner
ARB의 suffix tree[1] 방식을 이용해서 seed alignment에서 최대 40개까지 유사한 시퀀스를 찾는다. 이렇게해서 찾아진 시퀀스 들은 partial order graph[2]로 옮기고 이 graph 위에다가 query를 needleman 방식으로 align 한다. 이 과정에서 alignment quality와 basepair score를 구하고 이는 0~100 사이 값으로 normalized 한다. alignment를 마친뒤에 aligned된 bp가 300bp보다 작으면 버린다.
-Anomaly check
이건 seed sequence의 anomaly를 체크 하기 위한 것이거 같은데. pintail이란 프로그램을 사용한단다. seed sequence들 전보를 20 개의 sequence로 된 한 그룹에 대해 pairwise check를 하는데 만약 대부분의 alignment가 anomalous 하게 나오면 seed에서 제거한다는거 같은데.. 저 20개의 sequence가 정확히 뭔지 모르겠다.. 모르는거 투성이네. 에이
-Taxonomy
-Nomenclature
-SSU and LSU rRNA databases for ARB
Ref databases: Parc database의 subset, 1.length cutoff :거의 full length의 시퀀스(최소 1200bp). archaea의 경우 800bp. LSU의 경우 1900bp. 2.alignment curoff : alignment score가 SSU의 경우 50, LSU의 경우 30 이상. 이 뒤에 positional variability filtering이 있는데 잘 이해 안됨.
Parc databases: 위의 quality가 확인된 모든 sequences
[1]suffix tree: 이진트리나 레드블랙트리는 봤어도 suffix tree는 사실 제대로 본적이 없다. 금선생이 추천해준 책에 몇챕터에 걸쳐서 나오는데.. 아.. 역시 모든 지식은 연결된듯하다. 여튼 급한데로 훓어보는데.. http://graphy21.blogspot.com/2011/03/suffix-tree.html
[2]http://bioinformatics.oxfordjournals.org/content/18/3/452.full.pdf#page=1&view=FitH
뭐 덕분에 공부한다고 생각하고 하나하나 정리해보자.
metagenomics 란 무엇인가?
rRNA
metagenome 시퀀싱을 하면 일반적으로 rRNA를 시퀀싱한다 (물론 그냥 gDNA를 culture해서 orf도 prediction하고 protein 시퀀스를 이용해서 functional annotation도 하지만). 아직 까지 내가 아는 지식으론 아마도 그 orgamism들의 구성도를 보기 위해서? 여튼.. 아래 위키 for rRNA explanation
http://en.wikipedia.org/wiki/Ribosomal_RNA ribosomal RNAs는 LSU(large subunit), SSU(small subunit) 으로 구성되어 있는데 prokaryote의 경우 LSU로 50S가 SSU로 30S 가 있고 그 30S를 구성하는 rRNA가 바로 16S rRNA. 보통 rRNA sequencing 중 16S rRNA 시퀀싱을 많이 하는데 그 이유를 생각해 보자면 http://en.wikipedia.org/wiki/16S_ribosomal_RNA 에 마지막에 보면 16S rRNA에 universal primer를 쓸수 있을 정도로 conserved 한 region도 있고 반면에 굉장히 변화가 심한 hypervariable region도 있기 때문에 아마도 species를 구분하기에 적당해서가 아닐까.
참고로 다음 논문도 읽어볼만 할듯하다.
Ribosomal RNA : a key to phylogeny
http://www.fasebj.org/content/7/1/113.full.pdf#page=1&view=FitH
metagenomics 분석 어떻게 해야 하나?
http://mmbr.asm.org/cgi/content/short/72/4/557
metagenomics를 위한 bioinfomatic 가이드라는 제목의 review인데.. 꼭 읽어봐야 할듯. intro 바로 처음에 나오듯이 이 리뷰는 functional metagenomics (특정 activity가 있는 것만 골라내서 cloning 해서 시퀀싱 한거)랑 구분하여 50Mbp 이상의 randomly sampled sequnces를 분석하는 가이드.
관련 데이터 베이스
들어보니 Silva, greengenes, EZ_taxon 이렇게 3개가 가장 많이 사용되는거 같다. 몇개 찾아보니 Silva가 가장 잘 되어 있는 느낌(?)이 드는데 우선 관련 논문
<Silva>
http://nar.oxfordjournals.org/content/35/21/7188.full?keytype=ref&ijkey=pwbw9T96ADMbJBk
일단 이러한 데이터 베이스의 목적은 넘쳐나는 rRNA데이터를 careful inpection, 그러니까 curration을 통해 rRNA가 biodiversity 연구에 도움이 되도록 하는데 있다(unified quality control & alignment of rRNA datasets).
논문을 보니까 rRNA 를 이용한 phylogeny의 연구에 ARB 라는 software와 이를 위한 db를 많이 썼었던걸로 보인다. ARB 말고도 rRNA curation을 위한 3개의 main project를 소개한다(greengenes, RDP,그리고 하나가 european rRNA 데이터 베이스인데 이것이 Silva로 들어 간것으로 보인다.). 아 그리고 하나 greengene에서는 ARB compatible dataset을 가지고 있긴 한데 full length인것만 대해서만. 그리고 요즘은 LSU rRNA도 많이 사용한다네(특히 eukaryote의 경우). intro을 본 결론은 4개의 DB 그중 ARB랑 european rRNA은 Silva로 편입된거 같다.
-Sequence data
Silva의 버젼은 EMBL과 버젼이 똑같다. 곧 RNA와 관련된 키워드 모두 검색해서 EMBL에서 RNA 시퀀스를 가져온다는 말. 그리고 seed alignment를 제공한다는데.. silva의 예전 버젼 격인 ARB에서 release 한것을 그대로 유지한다는데.. 이 seed alignment라는게 뭔지 잘 모르겠다..
-Quality checks
1.unaligned uncleotides 중 300bp보다 짧거나, 2. 2%이상 ambiguities가 있거나, 3. 아니면 2%이상의 homopolymer (homotetramer(homo-4bp)이상)가 있거나, 4. vector랑 5%이상 매치되면 제거. 그리고 이 세가지(2,3,4 항목)의 평균을 구해서 100에서 빼면 이것이 sequence quality가 된다. 이후 필터링 통과한 시퀀스들은 seed alingment에 대해 SINA(silva incremental aligner)에 의해 alignment가 되어 진다. 근데 이 sequence quality로 뭐하는 것인지.. 이미 4가지 항목으로 필터링 했는데 그 뒤에 이 sequence quality를 왜 구하는건지..이 역시 아직 잘 모르겠음
-Aligner
ARB의 suffix tree[1] 방식을 이용해서 seed alignment에서 최대 40개까지 유사한 시퀀스를 찾는다. 이렇게해서 찾아진 시퀀스 들은 partial order graph[2]로 옮기고 이 graph 위에다가 query를 needleman 방식으로 align 한다. 이 과정에서 alignment quality와 basepair score를 구하고 이는 0~100 사이 값으로 normalized 한다. alignment를 마친뒤에 aligned된 bp가 300bp보다 작으면 버린다.
-Anomaly check
이건 seed sequence의 anomaly를 체크 하기 위한 것이거 같은데. pintail이란 프로그램을 사용한단다. seed sequence들 전보를 20 개의 sequence로 된 한 그룹에 대해 pairwise check를 하는데 만약 대부분의 alignment가 anomalous 하게 나오면 seed에서 제거한다는거 같은데.. 저 20개의 sequence가 정확히 뭔지 모르겠다.. 모르는거 투성이네. 에이
-Taxonomy
-Nomenclature
-SSU and LSU rRNA databases for ARB
Ref databases: Parc database의 subset, 1.length cutoff :거의 full length의 시퀀스(최소 1200bp). archaea의 경우 800bp. LSU의 경우 1900bp. 2.alignment curoff : alignment score가 SSU의 경우 50, LSU의 경우 30 이상. 이 뒤에 positional variability filtering이 있는데 잘 이해 안됨.
Parc databases: 위의 quality가 확인된 모든 sequences
[1]suffix tree: 이진트리나 레드블랙트리는 봤어도 suffix tree는 사실 제대로 본적이 없다. 금선생이 추천해준 책에 몇챕터에 걸쳐서 나오는데.. 아.. 역시 모든 지식은 연결된듯하다. 여튼 급한데로 훓어보는데.. http://graphy21.blogspot.com/2011/03/suffix-tree.html
[2]http://bioinformatics.oxfordjournals.org/content/18/3/452.full.pdf#page=1&view=FitH
Thursday, March 3, 2011
TSS, TxStart, CDSstart,
맨날 까먹고 헷갈리고.. 에이..
TSS : transcription start site. 그러니까 5'UTR 부분부터.
http://en.wikipedia.org/wiki/Transcription_start_site
txStart : TSS 랑 같은말
cdsStart : coding region start site로 start codon 부터 시작. 곧 protein 시작 부분.
그런데 헷갈렸던 것이 위 그림. 어떤 exon은 wholly or partially 5' UTR 이기때문에 exon start site가 cds start 랑 같지 않다.
TSS : transcription start site. 그러니까 5'UTR 부분부터.
http://en.wikipedia.org/wiki/Transcription_start_site
txStart : TSS 랑 같은말
cdsStart : coding region start site로 start codon 부터 시작. 곧 protein 시작 부분.
그런데 헷갈렸던 것이 위 그림. 어떤 exon은 wholly or partially 5' UTR 이기때문에 exon start site가 cds start 랑 같지 않다.
Wednesday, March 2, 2011
RNA-seq 분석을 위한 논문 탐험
예전에 RNA-seq 한번 리뷰하고 거기서 ERNAGE라는 프로그램에 관한 논문을 정리 한적이 있었다. 이번에 정말로 RNA-seq 데이터를 다뤄야 하고 예전에는 거의 초점이 eukaryote에 맞춰졌기 때문에 bacteria의 transcriptome에 관련하여 좀더 논문들을 정리해 보고자 한다.
start point
http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3025319/
내가 분석해야 하는 대상이 미생물 균주, bacteria 이기 때문에 우선 위 논문을 시작으로 한다. 위 리뷰논문을 보면 관련 논문을 잘 정리해 놨다. 마지막 limitations에 관한 내용을 보면 RNA secondary structure, random hexamer priming, second strand synthesis, PCR amplication stage에 의해 문제가 유발되는데 이는 ion-catalyzed hydrolysis와 direct RNA sequencing으로 어느정도 해결 가능하다고 마무리.. 아 그리고 figure1 이 실험종류와 단계에 대한 정리를 잘해놨다(결론적으로 directional 이나 아니냐 둘로 나뉘는데.. 확실히 directional로 실험을 해야 맞는거 같은데.. 안타깝게도 우리 데이터는 아닌듯). 오른쪽 그림 참조
second paper
http://www.biomedcentral.com/1471-2180/8/72
음.. 우리가 non-directional 로다가 실험을 했기에 또 기기가 FLX인 관계로 위 first point 의 reference 중 상황이 가장 유사한 논문이 바로 위 url. 일단 genome size 가 대략 3Mb, megaplasmid 가 있는거 빼곤 우리 상황이랑 비슷하다.
아.. 이 논문은 아닌거 같다. BMC microbiology에 나온건데.. 초창기 논문이라 그런지 아마도 FLX로 다가 transcriptome을 거의 처음 했다는 이유로.. rRNA depletion을 했는데도 read의 90 % 가 rRNA에 mapping되니. 그래서 아마도 논문의 방향을 novel gene finding으로 전환한듯. 여튼 패스..
third paper
http://www.sciencemag.org/content/326/5957/1268.short
좀 뭔가 의미 있는 내용을 보기 위해 그냥 선택한 논문. science니까. 첫번째 논문에서 인용도 많이 한거 같고. 음.. 읽어보니 확실히 사이언스다. 두번째 논문 봤을 때는 이거 일주일이면 하겠다고 생각했는데..
spotted array, tiling array, rna-seq (rna-seq 도 directional 한 방법을 이용) 모두 이용해서 operon의 boundary를 정한다 (expression이 급격히 떨어지는 region). 그리고 operon이 poly- | mono- cistronic 인지 확인한다 (rna-seq만 이용했을때 false positive가 얼마인지도 조사). operon을 정하고 나면 promoter region을 찾고 대략적인 TSS와 CDS와의 거리도 조사한다. 또한 trascriotion end site의 2차구조를 봐서 hairpin 구조가 transcription termination에 영향이 있는지 확인한다. polycistronic operon에 있는 gene들의 decay behavior도 관측한다. 여까지는 대략적인 transcriptome landscape라고 할까.
그 뒤 여러 다양한 조건에서의 expression 변화를 가지고 context-dependent modulation of operon structure involving repression or activation of operon internal or end-located genes (아.. 그러니까.. 음.. 하나의 operon 안에 여러 유전자가 위치에 따라 module화가 되어 (suboperon 마냥) 상황에 따라 오듈 단위로 다르게 expression 한다 뭐 이런.. 맞나..) 을 봤다. 또 이와 같은 이유는 eukaryote 에서 처럼 다양한 factor의 작용에 의한 것이 아닐까 추측 그리고 factor가 될만한 후보자들을 가지고 expression clustering. 해서 아.. factor가 많음 갑다라고 추측.
중요한건 the proteome organiztion is not explainable by the genome organizaion. 그리고 the expression heterogeneity within operon 이 아마도 생각했던것보다 bacteria의 transcriptional regulation이 eukaryote과 많이 유사하기 때문이지 않나 싶다는 것.
fourth paper
http://bioinformatics.oxfordjournals.org/content/early/2009/10/24/bioinformatics.btp612.full.pdf
다음은 분석 툴에 대한 논문이다. 정확히 이야기 하면 R package.
checklist
1. Segmentation algorithm : for identification of uncovered region in tiling array
2. Local convolution method : finding operon boundary
3. How do they decide polycistronic & monocystronic operon (maybe by DSSS)
4. In polycistronic how they divide genes in operon
5. Sigma 70 promoter region (TSS located within 60bp from CDS start site)
start point
http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3025319/
내가 분석해야 하는 대상이 미생물 균주, bacteria 이기 때문에 우선 위 논문을 시작으로 한다. 위 리뷰논문을 보면 관련 논문을 잘 정리해 놨다. 마지막 limitations에 관한 내용을 보면 RNA secondary structure, random hexamer priming, second strand synthesis, PCR amplication stage에 의해 문제가 유발되는데 이는 ion-catalyzed hydrolysis와 direct RNA sequencing으로 어느정도 해결 가능하다고 마무리.. 아 그리고 figure1 이 실험종류와 단계에 대한 정리를 잘해놨다(결론적으로 directional 이나 아니냐 둘로 나뉘는데.. 확실히 directional로 실험을 해야 맞는거 같은데.. 안타깝게도 우리 데이터는 아닌듯). 오른쪽 그림 참조second paper
http://www.biomedcentral.com/1471-2180/8/72
음.. 우리가 non-directional 로다가 실험을 했기에 또 기기가 FLX인 관계로 위 first point 의 reference 중 상황이 가장 유사한 논문이 바로 위 url. 일단 genome size 가 대략 3Mb, megaplasmid 가 있는거 빼곤 우리 상황이랑 비슷하다.
아.. 이 논문은 아닌거 같다. BMC microbiology에 나온건데.. 초창기 논문이라 그런지 아마도 FLX로 다가 transcriptome을 거의 처음 했다는 이유로.. rRNA depletion을 했는데도 read의 90 % 가 rRNA에 mapping되니. 그래서 아마도 논문의 방향을 novel gene finding으로 전환한듯. 여튼 패스..
third paper
http://www.sciencemag.org/content/326/5957/1268.short
좀 뭔가 의미 있는 내용을 보기 위해 그냥 선택한 논문. science니까. 첫번째 논문에서 인용도 많이 한거 같고. 음.. 읽어보니 확실히 사이언스다. 두번째 논문 봤을 때는 이거 일주일이면 하겠다고 생각했는데..
spotted array, tiling array, rna-seq (rna-seq 도 directional 한 방법을 이용) 모두 이용해서 operon의 boundary를 정한다 (expression이 급격히 떨어지는 region). 그리고 operon이 poly- | mono- cistronic 인지 확인한다 (rna-seq만 이용했을때 false positive가 얼마인지도 조사). operon을 정하고 나면 promoter region을 찾고 대략적인 TSS와 CDS와의 거리도 조사한다. 또한 trascriotion end site의 2차구조를 봐서 hairpin 구조가 transcription termination에 영향이 있는지 확인한다. polycistronic operon에 있는 gene들의 decay behavior도 관측한다. 여까지는 대략적인 transcriptome landscape라고 할까.
그 뒤 여러 다양한 조건에서의 expression 변화를 가지고 context-dependent modulation of operon structure involving repression or activation of operon internal or end-located genes (아.. 그러니까.. 음.. 하나의 operon 안에 여러 유전자가 위치에 따라 module화가 되어 (suboperon 마냥) 상황에 따라 오듈 단위로 다르게 expression 한다 뭐 이런.. 맞나..) 을 봤다. 또 이와 같은 이유는 eukaryote 에서 처럼 다양한 factor의 작용에 의한 것이 아닐까 추측 그리고 factor가 될만한 후보자들을 가지고 expression clustering. 해서 아.. factor가 많음 갑다라고 추측.
중요한건 the proteome organiztion is not explainable by the genome organizaion. 그리고 the expression heterogeneity within operon 이 아마도 생각했던것보다 bacteria의 transcriptional regulation이 eukaryote과 많이 유사하기 때문이지 않나 싶다는 것.
fourth paper
http://bioinformatics.oxfordjournals.org/content/early/2009/10/24/bioinformatics.btp612.full.pdf
다음은 분석 툴에 대한 논문이다. 정확히 이야기 하면 R package.
checklist
1. Segmentation algorithm : for identification of uncovered region in tiling array
2. Local convolution method : finding operon boundary
3. How do they decide polycistronic & monocystronic operon (maybe by DSSS)
4. In polycistronic how they divide genes in operon
5. Sigma 70 promoter region (TSS located within 60bp from CDS start site)
Subscribe to:
Posts (Atom)


