요즘 회사에서 서버구축에 신경을 많이쓴다. human genome같은 경우에 assemble할려면 200기가 이상의 램이 필요하고... 뭐시기 뭐시기.. 하드웨어적인 감이 전혀 없는 별나라 이야기 같아서.. 이래선 안된다란 생각에 조금씩이라도 읽고 긁어보아보자라는 생각에 관련 링크 및 정보 정리를 한다.
우선은 클러스터 제작과정의 블로그 :
http://blog.neosgen.net/84
위 사이트에서 나오는 노드 컴퓨터에 하드 디스크 없이 사용하는 네트워크 방법 NFS :
http://hanyjuny.blog.me/40106543467
NFS이 간략한 정의 :
리눅스를 비롯한 유닉스 운영체제 등 동일한 운영체제 상호 간에 파일을 공유하고자 할때 사용되는 서비스이다. NFS는 서버에 의해서 파일 시스템이 마운트되는 것이 아니라, 클라이언트에 의해서 서버의 파일 시스템이 마운트되어 클라이언트가 서버의 파일 시스템을 자신의 파일 시스템처럼 사용하는 것이 특징이다.
==> 쉽게 말하면 NFS(network file system)서버가 NFS 서비스에 필요한 패키지를 깔고 관련된 데몬을 띄운다음 /etc/exports 파일에다가 클라이언트에게 공유할 디렉토리명과 클라이언트 주소 그리고 관련 옵션을 적어주면 exports 파일에 적힌 내용대로 클라이언트들이 서버의 자원을 자신의 파일 시스템인 것 마냥 쓸 수 있게 해주는 것.
Thursday, November 4, 2010
Tuesday, November 2, 2010
contrasting chromatin organization of CpG islands and exons in the human genome
최박사님이 올해 낸 논문.
음. 대단하다. 항상 그의 생물학적 지식에 놀란다. 이야기를 만들어 내는 스킬과 함께.
사실 네이쳐 급에 나오는 데이터 생산의 의미에 논문보다 솔직히 난 이런 논문이 더 어렵다고 생각한다. 이미 있는 데이터를 가지고 재조명한다는 것은 인용한 논문이 이미 누구나 쉽게 관찰할 수 있는 내용은 다 한번 들쳐 본것이기 때문에 더 주의 깊은 관찰력 내지는 좀 더 넓은 시야를 요구한다. 어떻게 보면 요즘같이 넘쳐나는 데이터 속에 필요한 생물학자가 아닌가 싶다.
그래서 그런지 논문의 초점이 데이터 프레젠테이션에 있는 것이 아니라 논리 전개에 있다. CGI를 들여봄으로 시작해서 promoter 부위와 genebody 부위로의 확장 결국 CGI에의한 exon position effect와 functional effect 가지고 exon의 methylation에 대한 설명을 이어간다(전개를 이해하는데 상당히 오랜 시간이 걸렸다. 흐름을 못잡는 바람에). 더욱 RNA-splicing과 연관 시키기 위해서 exon들을 inclusiveness 에따라 분류하고 nucleosome과 CpG methylation의 패턴을 확인한다. 그리고 이런 패턴이 H3K36me3 에도 나타나는것을 확인한뒤 그럼 왜 이 세가지 요인(nucleosome occupancy, DNA methylation, H3K36me3) 가 얽혀 있을까란 생각을 한다. 그래서 expression 양에 따라
아 아직도 잘 정리가 안되네..
내 언제쯤 이 정도 될까싶다.
아마도 집중력 차이다. 한 문제에 대해 오래 생각할 수 있는.. 숙성일 수도 있고
이번 epigenomic 저널 클럽 발표 논문이다.
ppt
음. 대단하다. 항상 그의 생물학적 지식에 놀란다. 이야기를 만들어 내는 스킬과 함께.
사실 네이쳐 급에 나오는 데이터 생산의 의미에 논문보다 솔직히 난 이런 논문이 더 어렵다고 생각한다. 이미 있는 데이터를 가지고 재조명한다는 것은 인용한 논문이 이미 누구나 쉽게 관찰할 수 있는 내용은 다 한번 들쳐 본것이기 때문에 더 주의 깊은 관찰력 내지는 좀 더 넓은 시야를 요구한다. 어떻게 보면 요즘같이 넘쳐나는 데이터 속에 필요한 생물학자가 아닌가 싶다.
그래서 그런지 논문의 초점이 데이터 프레젠테이션에 있는 것이 아니라 논리 전개에 있다. CGI를 들여봄으로 시작해서 promoter 부위와 genebody 부위로의 확장 결국 CGI에의한 exon position effect와 functional effect 가지고 exon의 methylation에 대한 설명을 이어간다(전개를 이해하는데 상당히 오랜 시간이 걸렸다. 흐름을 못잡는 바람에). 더욱 RNA-splicing과 연관 시키기 위해서 exon들을 inclusiveness 에따라 분류하고 nucleosome과 CpG methylation의 패턴을 확인한다. 그리고 이런 패턴이 H3K36me3 에도 나타나는것을 확인한뒤 그럼 왜 이 세가지 요인(nucleosome occupancy, DNA methylation, H3K36me3) 가 얽혀 있을까란 생각을 한다. 그래서 expression 양에 따라
아 아직도 잘 정리가 안되네..
내 언제쯤 이 정도 될까싶다.
아마도 집중력 차이다. 한 문제에 대해 오래 생각할 수 있는.. 숙성일 수도 있고
이번 epigenomic 저널 클럽 발표 논문이다.
ppt
Monday, November 1, 2010
각종 non-coding RNA
요즘 논문을 보면 각종 RNA에 대한 논문들이 많은데.. 그래서 이러한 각종 RNA에 대해 정리를 해야 한다는 생각이 들어 단순히 wiki를 링크 걸어본다. 읽어보고 정리는 언제 할지 미지수지만.. 시작이 반이라고..
non-coding RNA : http://en.wikipedia.org/wiki/Non-coding_RNA
miRNA : http://en.wikipedia.org/wiki/MicroRNA
piRNA : http://en.wikipedia.org/wiki/Piwi-interacting_RNA
snoRNA : http://en.wikipedia.org/wiki/SnoRNA
snRNA: http://en.wikipedia.org/wiki/Small_nuclear_RNA
lincRNA : http://en.wikipedia.org/wiki/Long_non-coding_RNA
lincRNA는 large intergenic non coding RNA 의 준말인데.. 음 long non coding RNA의 한 종류이겠지...
non-coding RNA : http://en.wikipedia.org/wiki/Non-coding_RNA
miRNA : http://en.wikipedia.org/wiki/MicroRNA
piRNA : http://en.wikipedia.org/wiki/Piwi-interacting_RNA
snoRNA : http://en.wikipedia.org/wiki/SnoRNA
snRNA: http://en.wikipedia.org/wiki/Small_nuclear_RNA
lincRNA : http://en.wikipedia.org/wiki/Long_non-coding_RNA
lincRNA는 large intergenic non coding RNA 의 준말인데.. 음 long non coding RNA의 한 종류이겠지...
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
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의 값에 접근.
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의 값에 접근.
Thursday, October 28, 2010
circos

circos는 comparative genomics 데이터를 visualization하기 좋은 툴이다. 물론 개발자는 여러다른 예를 들지만..
처음에 메뉴얼 찾는데 웹페이지를 막 뒤지고 다운 받을 수 있는 모든 pdf를 다운 받고 훓어본 결과...
http://mkweb.bcgsc.ca/circos/tutorials/course/ 로 가서 개발자가 여러 컨퍼런스에서 강연했던 자료인 handout이랑 slide에 대한 ppt를 다운 받고 handout은 글이 많으므로 slide만 보면 대충 내용이 파악된다.
xml 처럼(이런게 xml 형식인가?.. 여튼) 그리고자 하는 결과의 component들을 인풋 파일로 정의해주고 이를 태그로 나타내주면 그려주는 형식이다.
개발자의 홈피를 가면 재밌는게 많은거 같은데.. 이 사람.. 색다르다. CSH 에서 나오는 저널중에 하나의 표지도 이사람이 만들었다는데(DNA sequence를 GC content로 색깔을 나타내고 sequence fragment repeat frequency로 curve를 만들어서 그렸는데 보면 무슨 virus를 형광 다이로 염색한 듯한 모습이다).. visualization에 매력을 느끼게 한다.
Saturday, October 23, 2010
python 개발 환경 구축
요즘 보는 있는 python 책들 어디서나 IDE(intergrated development enviroment)로 eclipse와 PyDev를 추천한다. 해서 미루다 미루다 미루다 오늘 한번 새로운 IDE로 이를 써볼려고 install 중이다.
1.eclipse + PyDev install
의외로 간단하다. eclipse 홈피 가서 eclipse 다운받고(난 classic 버젼으로 다운 받음) 그뒤 eclipse 압축 풀고 그담에 실행 시키고 help 메뉴로 가서 install new software을 선택한 뒤에 work with란에 http://pydev.org/updates 라고 넣어준다음에 pydev를 클릭해서 인스톨한다.
그뒤 다시 eclipse를 재실행 시킨후 window 메뉴에서 preferences 메뉴를 선택한뒤 PyDev 트리 마이템을 펼쳐 Interpreter에 python을 선택한다. 그리고 나타나는 대화상자 상단에 python interpreter 섹션에 new 버튼을 클린한뒤에 browser에서 python실행 파일을 선택하고 open 버튼을 누르고 나면 선택한 인터프린터를 위한 라이브러리 리스트를 보여주는 대화상자가 나타나는데 ok 버튼을 누르면 설정이 끝나게 된다.
http://pydev.org/manual_101_install.html
2.동적 라이브러리란?
ctypes 이라는 python의 모듈이 있는데 C언어와 호완이 가능하게 하는 모듈로 동적 라이브러리는 가져다가 쓸수 있게 한다. 그런데 동적 라이브러리란 무엇인가. C 언어 include 설명때 본적이 있는것 같은데.. 그래서 링크를 걸어본다.
http://blog.naver.com/ddrkcodz?Redirect=Log&logNo=10069875361
3.gcc 설명 및 옵션
http://blog.naver.com/alan100?Redirect=Log&logNo=60045179899
3.동적 라이브러리 만들기
opcode (*.o)에서 프로그램에서 바로 동적 라이브러리 생성: http://adnoctum.tistory.com/231
정적 라이브러리 생성 후 이를 가지고 동적 라이브러리 생성 : http://blog.naver.com/mklife?Redirect=Log&logNo=150024128340
4.동적 라이브러리의 장점
http://blog.naver.com/no1rogue?Redirect=Log&logNo=30094944212
In conclusion
정리를 해보면.. 결국 ctypes 모듈로 C 언어로 된 라이브러리(동적 라이브러리) 를 사용하려면
C 언어로 된 프로그램을 동적 라이브러리로 생성.
오른쪽과 같은 libhello.c 프로그램이 있을때
gcc -fPIC -c libhello.c #컴파일을 하되 링크까지는 수행하지 않고 오브젝트 파일 까지만 생성한다.
gcc -shared -fPIC -o libhello.so libhello.o #shared 옵션을 이용해서 공유(동적) 라이브러리 생성
오른쪽 그림과 같이 동적 라이브러리를 사용한 python 프로그램 생성
끝...
동적 라이브러리를 이용하는 C 언어 프로그램을 만들시에는 사용하는 동적 라이브러리가 /usr/lib64에 있어야 한다. (주의 : *.so 파일을 옮긴 뒤에 ldconfig를 해야 한다)
1.eclipse + PyDev install
의외로 간단하다. eclipse 홈피 가서 eclipse 다운받고(난 classic 버젼으로 다운 받음) 그뒤 eclipse 압축 풀고 그담에 실행 시키고 help 메뉴로 가서 install new software을 선택한 뒤에 work with란에 http://pydev.org/updates 라고 넣어준다음에 pydev를 클릭해서 인스톨한다.
그뒤 다시 eclipse를 재실행 시킨후 window 메뉴에서 preferences 메뉴를 선택한뒤 PyDev 트리 마이템을 펼쳐 Interpreter에 python을 선택한다. 그리고 나타나는 대화상자 상단에 python interpreter 섹션에 new 버튼을 클린한뒤에 browser에서 python실행 파일을 선택하고 open 버튼을 누르고 나면 선택한 인터프린터를 위한 라이브러리 리스트를 보여주는 대화상자가 나타나는데 ok 버튼을 누르면 설정이 끝나게 된다.
http://pydev.org/manual_101_install.html
2.동적 라이브러리란?
ctypes 이라는 python의 모듈이 있는데 C언어와 호완이 가능하게 하는 모듈로 동적 라이브러리는 가져다가 쓸수 있게 한다. 그런데 동적 라이브러리란 무엇인가. C 언어 include 설명때 본적이 있는것 같은데.. 그래서 링크를 걸어본다.
http://blog.naver.com/ddrkcodz?Redirect=Log&logNo=10069875361
3.gcc 설명 및 옵션
http://blog.naver.com/alan100?Redirect=Log&logNo=60045179899
3.동적 라이브러리 만들기
opcode (*.o)에서 프로그램에서 바로 동적 라이브러리 생성: http://adnoctum.tistory.com/231
정적 라이브러리 생성 후 이를 가지고 동적 라이브러리 생성 : http://blog.naver.com/mklife?Redirect=Log&logNo=150024128340
4.동적 라이브러리의 장점
http://blog.naver.com/no1rogue?Redirect=Log&logNo=30094944212
In conclusion

C 언어로 된 프로그램을 동적 라이브러리로 생성.
오른쪽과 같은 libhello.c 프로그램이 있을때
gcc -fPIC -c libhello.c #컴파일을 하되 링크까지는 수행하지 않고 오브젝트 파일 까지만 생성한다.
gcc -shared -fPIC -o libhello.so libhello.o #shared 옵션을 이용해서 공유(동적) 라이브러리 생성
오른쪽 그림과 같이 동적 라이브러리를 사용한 python 프로그램 생성
끝...
동적 라이브러리를 이용하는 C 언어 프로그램을 만들시에는 사용하는 동적 라이브러리가 /usr/lib64에 있어야 한다. (주의 : *.so 파일을 옮긴 뒤에 ldconfig를 해야 한다)
Subscribe to:
Posts (Atom)