Friday, October 29, 2010

miRNA-seq

miRNA seq에 대한 분석을 리뷰 하기위해.. 다음과 같은 논문을 정리한다.


1.discovering microRNAs from deep sequencing data using miRDeep (Nature computational biology 2008)
2.Current tools for the identification of miRNA genes and their targets (Nucleic Acids Research 2009)
3.miRTRAP, a computational method for the systematic identification of miRNAs from high throughput sequencing data (2010 Genome Biology)
4.DSAP: deep-sequencing small RNA analysis pipeline (2010 Nucleic Acids Research)


위의 1번 논문은 거의 NGS 데어터를 이용한 miRNA 분석의 초창기 논문으로 볼수 있으며
2번 논문의 경우 거의 computational prediction에 가까운 논문이고 3번은 전혀 들여가 보지 않았으며 4번의 경우 web-server로 최근에 나온 논문.


다른건 모르겠는데.. isomiRs를 찾기위한(?) alignment 및 multiple alignment에 대한 공부가 필요한 것 같다(한때 BSA 책 공부 할때 바짝 up 됐었는데...).




PPT

bit 연산자

-사례 1
context.Dr7 |= 1 << (available * 2)
"파이썬 해킹 프로그래밍"이라는 책을 보고 있는데 하드포인트브레이크를 설정할때 위와 같은 구절이 나온다. 도대체 |= 는 뭔가? 평소에 잘 보지 않은 연산자로 보아 비트 연산자 일거고.. 사실 위의 구절이 하려는 의도(디버그 레지스터인 Dr7는 0~3까지 디버그 레지스터인 Dr0~3까지의스위치 역할을 하기에 0~3번째 위치의 bit 를 on 해주기 위한 것)를 이미 알기에 대략 추측을 햇지만.. << 는 비트를 왼쪽으로 미는것일거고 |=는 다양한 시도 끝에.. 아 bitwise or인 | 를 실행 시키고 그 결과를 대입 연산자 = 를 통해 다시 context.Dr7에 넣는구나라는 것을 깨달았다.


available 이 1이라고 가정하고 bin(context.Dr7) =  0b1010이라고 하면 1<< (1*2) 이므로 bin(1<<(available*2)) = 0b100 이 될 것이기에 0b1010과 0b100을 bitwise or로 하면 0b1110이 될것이고 그 값이 Dr7에 들어 가게 된다.


결과적으로 변수의 특정 위치(그러니까 그 변수의 특정 포지션의 bit)에 특정값을 밀어 넣는다고 생각하면 된다.


 -사례 2
전에 포스팅한 reference free short read validation의 논문의 quarc인가 하는 프로그램을 들여다 보면 K-mer 를 int 형 배열에 넣는데, K-mer에 K를 2라고 가정하면 종류가 최대 4**2=16가지의 K-mer 가 생성되기때문에 
_base2int = int[16]
d_base = {'A':0, 'G':1, 'C':2, 'T':3} 으로 해서 "AC" 라는 K-mer가 있으면 value= 0 으로 초기화 한뒤 value += d_base['A'] ; value = value << 2; value += d_base['C'] 식으로 각 K-mer의 index value를 만드뒤 이 값을 이용해서 _base2int의 값에 접근.