음.. 꼭 해야 하고 봐야 하는건데.. 요즘 완전 좌절과 의욕 상실 모드다. 이게 다 cufflinks 논문 때문이다(논문의 대한 나의 review는 여기). FPKM 개념좀 제대로 이해할려고 cufflinks supplementary를 건들였다가 좌절의 연속으로 내 전문성은 바닥임을 느끼고.. 또한 setup 할려는게 broad institute 의 gene pattern에 이미 너무너무 잘되어 있다는 생각에.. 아.. 한 일주일 정도는 방황하는거 같네.. 아.. 아직도 어떻게 해야 할지 모르겠고 하고 싶은 의욕도 잃은 상태지만.. 가만히 있는건 해결책이 아니라서 cufflinks에 대해 설치 및 output 내용, 사용방법등 읽는 모든 것을 기록하기로 한다.
<installation>
링크를 보면 source code와 binary code가 있는데 source code로 깔 때 compile error가 나면 화가 나니까 binary code 다운 받고 path만 잡아준다.
그담 테스트 파일 받아서 테스트 해본다.
Thursday, June 2, 2011
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라고 생각하면 됨.
책 좋은 거 같음.
<기억해야 할 것>
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라고 생각하면 됨.
Subscribe to:
Posts (Atom)