Thursday, June 2, 2011

cufflinks

음.. 꼭 해야 하고 봐야 하는건데.. 요즘 완전 좌절과 의욕 상실 모드다. 이게 다 cufflinks 논문 때문이다(논문의 대한 나의 review는 여기). FPKM 개념좀 제대로 이해할려고 cufflinks supplementary를 건들였다가 좌절의 연속으로 내 전문성은 바닥임을 느끼고.. 또한 setup 할려는게 broad institute 의 gene pattern에 이미 너무너무 잘되어 있다는 생각에.. 아.. 한 일주일 정도는 방황하는거 같네.. 아.. 아직도 어떻게 해야 할지 모르겠고 하고 싶은 의욕도 잃은 상태지만.. 가만히 있는건 해결책이 아니라서 cufflinks에 대해 설치 및 output 내용, 사용방법등 읽는 모든 것을 기록하기로 한다. 


<installation>
링크를 보면 source code와 binary code가 있는데 source code로 깔 때 compile error가 나면 화가 나니까 binary code 다운 받고 path만 잡아준다.
그담 테스트 파일 받아서 테스트 해본다. 

programming python

요즘 보고 있는책. 누구지.. 검색하다가 찾은 블로그 하나 있었는데.. 그 분은 완전 전산 일 하는거 같던데. 그 분이 단계별 추천한 책 중 중급(?)에 속하는 책이였던 걸로 기억한다. 예전에 빠르게 활용하는 python3 프로그래밍인가 하는 책을 한번 훑은적이 있었는데.. 그래서 이 책도 그정도 겠지란 생각에 안볼려가다 결국 본다. 사실 원서라 좀 꺼려지기도 했고.. 워낙 내용도 방대해서 너무 양도 많고.. 근데 결국은 봐야 겠단 생각에 하루에 한 sub-chapter만 읽어보자는 생각으로 읽기 시작했는데. 뭐 몇일 되지도 않았다. 이제 겨우 part 1봤나. sneak preview 라고 하는것 까지 봤다. sneak preview에서는 이 책의 전체적인 내용을 특정 mission을 가지고 간략하게 설명한다. 무슨 내용있는 책인지 알려준다. 음.. 꼭 다 읽어봐야 겠다는 생각이 든다.


책 좋은 거 같음.




<기억해야 할 것>


1.script 상단에 #!를 사용하여 direct하게 executable 하게 만들 때 python path를 적는 것보다 unix의 env를 이용하여 #!/usr/bin/env python이라고 하는게 좀 더 general 하다.
2.os.folk를 쓰지 않고 os.system()에서 실행문 뒤에 &를 붙이게 되면 parallel하게 작업을 수행할 수 있다.
3.spawned process는 모 process에서 환경변수를 상속 받기 때문에 os.environ의 환경변수를  process 간에 communication의 변수로 사용 가능하다. 이 변경된 환경 변수는 top-level process의 상위 레벨에서는 영향을 미치지 않는다. 곧 system shell에는영향이 없다. 
4.for line in open('something') 의 방식을 추천. 원래는 난 readline()을 많이 사용했는데. 같은 의미란다. 차이는 파일을 다읽었을때 return 하는 값. readline은 ''을 iterator는 exception을. 
5. 왜 built-in function인 open의 두번째 argument가 b이냐 아니냐가 unix 계열에서 다르지 않는지 설명한다.
6.built-in open 함수도 있지만 os.open 함수도 있다. 왜 있냐? low-level의 처리가 가능(다양한 mode; O_EXCL을 사용하면 synchronization도 가능).
7.parallel processing 방법으로 process forks 와 spawned thread가 있다. 근데 thread가 platform에 영향을 안받는다.
8.os.execlp를 써서 성공적으로 프로그램을 실행시키면 return이 없다. 거의 program replace라고 생각하면 됨.