fedora 만쓰다가 이번에 ubuntu를 설치 해보게 됐는데..
중간 중간 막혔던거 나중에 필요할 때 찾기 편하도록 정리 해 보련다.
일단 ubuntu 받아다가 구워서 깔면 되는데(생각보다 작다. 용량이 고작 600M)..
1.root 계정 비번 정하는게 첨에 안나온다. 따로 설정해야 하는데 여기를 참조.
2.그담에 네트워크를 설정해야 하는데 여기를 참조.
3.아.. 그 전에 vi 편집기가 이상한데 여기를 참조해서 vi 설정을 한다.
4.마지막으로 ssh를 이용하려는데 openssh-server를 설치해야 한다. 이때 apt-get을 사용하는데 첨에 apt-get openssh-server 하면 에러남.. apt-get update 후 앞의 명령어를 실행해야 한다.
일단은 여기까지 담에 disc mount 하는거랑 infiniband 설정하는거 추가 하겠음.
Tuesday, June 21, 2011
Tuesday, June 14, 2011
installation of assemblers & some tips(?)
< AllPaths-LG>
-installation-
denovo assembler 중에 한가지인 AllPaths-LG의 셋팅과 사용법에 대해 정리해보겠다. velvet이랑 newbler를 사용해 본적은 있는데 이건 어떨런지.. broad institute에서 나왔다니.. 왠지 메이져의 느낌이. 여튼 RNA-Seq도 다 못봤지만 박사님의 지시라. 보자.
논문에 대한 소개은 다음 포스팅에 있다. 여기선 설치와 사용 방법 결과 설명한 하도록 한다.
일단 AllPaths-LG의 사이트는 여기.
이거 설치는 위 사이트 download 탭에 pdf로 된 manual에 보면 나와있다.
기본적으로 셋팅 되어 있어야 하는게 있다. boost, graphviz, addr2line, picard.
boost : 그냥 다운 받아서 풀어 놓기만 한다. 그런데 ./bootstrap.sh, ./bjam install 이것도 해야 하는것 같네.
graphviz : ./configure --disable-swig, make, make install (dot 만 쓴다니까)
addr2line : 이건 깔려 있고 (man addr2line 쳐본다).
picard : 다운받아서 풀어서 path 잡아준다.
그담에 AllPaths-LG의 build는
./configure --with-boost=/path/to/boost
make
make install
test 파일을 다운받아서 실행해본다. test 폴더 안의 README를 읽고 prepare.sh 파일을 변경한 한다. 그리고 돌리기 전에 ulimit -s 100000을 해서 stack memory를 100MB까지 잡게 한다. 그리고 prepare.sh랑 assembly.sh 실행.
-output format-
test 파일을 돌리게 되면 reference/data/run/ASSEMBLIES/subdir 식의 폴더 구조가 생성된다. 상위폴더에 있는 데이터는 하위폴더에 중복되지 않는다.
reference는 organism 이다. 뭔소린가 하면 예를 들어 두개의 E.coli 를 reference로 assemble을 한다면(reference가 꼭 필요한건 아니지만 reference로 삼을 만한게 있으면 이용이 된단다) 일단은 E.coli라는 reference 폴더 안에 두개의 게놈과 데이터들이 존재하게 되는것.
data 폴더는 말그대로 데이터. assembly를 시도했던 read data를 담게 된다. data 폴더안에 여러개의 run 폴더가 존재 할수 있는데 이들 run 폴더간의 차이는 parameter setting이 다른 경우.
run 폴더는 final assembly stage를 위한 intermediate file이 들어 있는 폴더
ASSEMBLIES 폴더는 실제 assembly 가 있는 폴더인데 유일하게 폴더명이 ASSEMBLIES로 정해져 있다.
subdir 폴더는 음.. localized assembly가 생성된 폴더라는데..
-preparing data-
AllPaths의 input 파일이 완전 자기네들 스타일인데..
read data를 그들 형식으로 바꾸고 이 read data를 설명하는 metadata를 더해서 input 파일을 만든다. 그리고 reference 있으면 이것도 추가해야 한다.
일단 AllPaths는 paired end만 취급한다. 그리고 fragment library(180bp) 랑 jumping library(3-10kbp)가 반드시 있어야 한다. long jumping library는 option. 각 library마다 paired-end의 방향이 다르다. fragment, long jumping은 inward
data fold 안에는 반드시 library 마다 *.fastb(fasta binary), *.qualb(quality binary), *.pairs(read pair information) 파일과 ploidy 파일이 있어야 한다.
ploidy 파일은 1은 haploid, 2는 diploid genome을 의미. 나머지는 지원 안됨.
*.fastb, *.qualb, *.pairs 는 PrepareAllPathsInput.pl 으로 생성(.bam, .fastaq, .fasta, .fastab 파일 지원).
PrepareAllPathsInputs.pl의 input 파일로 in_groups.csv랑 in_libs.csv 가 필요.
*.fastq 을 변환하려면 paired read가 한 파일안에 존재 해야 한다. 그러니까 1pair의 1read record가 나오고 그 담에 바로 1pair의 2read record가 나오는 식으로.
quality score가 어떤식으로 encode됐는지 확인해서 PHRED_64 옵션으로 조정해야 한다.
in_group.csv 이랑 in_libs.csv 파일은 메뉴얼 보자
정리하자면
1. fastq 파일 합치고(read1, read2 를 하나의 파일로 합친다.)
2. in_libs.csv랑 in_group.csv 파일 만들고
3. PrepareAllPathsInputs.pl 돌려서 input 파일 만들고(IN_GROUPS_CSV, IN_LIBS_CSV, PHRED_64, PLOIDY,PICARD_TOOLS_DIR, DATA_DIR 파라미터 확인)
4. RunAllPathsLG 파이프 라인을 돌린다.
< SOAPdenovo>
-installation-
make
< Velvet>
-installation-
make (velvet manual 특히 for impatient people에 잘 되어 있음)
< Abyss>
-installation-
google sparsehash, pthread, openmp 설치
Google sparsehash 설치. 구글 코드 사이트에서 다운 받아서 설치
pthread 랑 openmp 서버에 있는거 같다. 찾아보니(c 코드로 #include랑 #include 넣고 짯을 때 에러 안나면 그 헤더 파일이 시스템에 잡혀 있는것)..
-installation-
denovo assembler 중에 한가지인 AllPaths-LG의 셋팅과 사용법에 대해 정리해보겠다. velvet이랑 newbler를 사용해 본적은 있는데 이건 어떨런지.. broad institute에서 나왔다니.. 왠지 메이져의 느낌이. 여튼 RNA-Seq도 다 못봤지만 박사님의 지시라. 보자.
논문에 대한 소개은 다음 포스팅에 있다. 여기선 설치와 사용 방법 결과 설명한 하도록 한다.
일단 AllPaths-LG의 사이트는 여기.
이거 설치는 위 사이트 download 탭에 pdf로 된 manual에 보면 나와있다.
기본적으로 셋팅 되어 있어야 하는게 있다. boost, graphviz, addr2line, picard.
boost : 그냥 다운 받아서 풀어 놓기만 한다. 그런데 ./bootstrap.sh, ./bjam install 이것도 해야 하는것 같네.
graphviz : ./configure --disable-swig, make, make install (dot 만 쓴다니까)
addr2line : 이건 깔려 있고 (man addr2line 쳐본다).
picard : 다운받아서 풀어서 path 잡아준다.
그담에 AllPaths-LG의 build는
./configure --with-boost=/path/to/boost
make
make install
test 파일을 다운받아서 실행해본다. test 폴더 안의 README를 읽고 prepare.sh 파일을 변경한 한다. 그리고 돌리기 전에 ulimit -s 100000을 해서 stack memory를 100MB까지 잡게 한다. 그리고 prepare.sh랑 assembly.sh 실행.
-output format-
test 파일을 돌리게 되면 reference/data/run/ASSEMBLIES/subdir 식의 폴더 구조가 생성된다. 상위폴더에 있는 데이터는 하위폴더에 중복되지 않는다.
reference는 organism 이다. 뭔소린가 하면 예를 들어 두개의 E.coli 를 reference로 assemble을 한다면(reference가 꼭 필요한건 아니지만 reference로 삼을 만한게 있으면 이용이 된단다) 일단은 E.coli라는 reference 폴더 안에 두개의 게놈과 데이터들이 존재하게 되는것.
data 폴더는 말그대로 데이터. assembly를 시도했던 read data를 담게 된다. data 폴더안에 여러개의 run 폴더가 존재 할수 있는데 이들 run 폴더간의 차이는 parameter setting이 다른 경우.
run 폴더는 final assembly stage를 위한 intermediate file이 들어 있는 폴더
ASSEMBLIES 폴더는 실제 assembly 가 있는 폴더인데 유일하게 폴더명이 ASSEMBLIES로 정해져 있다.
subdir 폴더는 음.. localized assembly가 생성된 폴더라는데..
-preparing data-
AllPaths의 input 파일이 완전 자기네들 스타일인데..
read data를 그들 형식으로 바꾸고 이 read data를 설명하는 metadata를 더해서 input 파일을 만든다. 그리고 reference 있으면 이것도 추가해야 한다.
일단 AllPaths는 paired end만 취급한다. 그리고 fragment library(180bp) 랑 jumping library(3-10kbp)가 반드시 있어야 한다. long jumping library는 option. 각 library마다 paired-end의 방향이 다르다. fragment, long jumping은 inward
data fold 안에는 반드시 library 마다 *.fastb(fasta binary), *.qualb(quality binary), *.pairs(read pair information) 파일과 ploidy 파일이 있어야 한다.
ploidy 파일은 1은 haploid, 2는 diploid genome을 의미. 나머지는 지원 안됨.
*.fastb, *.qualb, *.pairs 는 PrepareAllPathsInput.pl 으로 생성(.bam, .fastaq, .fasta, .fastab 파일 지원).
PrepareAllPathsInputs.pl의 input 파일로 in_groups.csv랑 in_libs.csv 가 필요.
*.fastq 을 변환하려면 paired read가 한 파일안에 존재 해야 한다. 그러니까 1pair의 1read record가 나오고 그 담에 바로 1pair의 2read record가 나오는 식으로.
quality score가 어떤식으로 encode됐는지 확인해서 PHRED_64 옵션으로 조정해야 한다.
in_group.csv 이랑 in_libs.csv 파일은 메뉴얼 보자
Example in_libs.cvs
나머진 manual 보자. 잘나왔다.
정리하자면
1. fastq 파일 합치고(read1, read2 를 하나의 파일로 합친다.)
2. in_libs.csv랑 in_group.csv 파일 만들고
3. PrepareAllPathsInputs.pl 돌려서 input 파일 만들고(IN_GROUPS_CSV, IN_LIBS_CSV, PHRED_64, PLOIDY,PICARD_TOOLS_DIR, DATA_DIR 파라미터 확인)
4. RunAllPathsLG 파이프 라인을 돌린다.
< SOAPdenovo>
-installation-
make
< Velvet>
-installation-
make (velvet manual 특히 for impatient people에 잘 되어 있음)
< Abyss>
-installation-
google sparsehash, pthread, openmp 설치
Google sparsehash 설치. 구글 코드 사이트에서 다운 받아서 설치
pthread 랑 openmp 서버에 있는거 같다. 찾아보니(c 코드로 #include
Tuesday, June 7, 2011
sequence data feature table
아.. 이거 찾느라.. 몇십분 고생했다. 왜 이걸 찾았냐? location example 때문에.. 예전에 언뜻 genbank 파일 보다가 gene내지는 CDS의 location coordinates 의 표기가 이해가 안가서 인터넷 뒤지다가 나왔는데... 이번 bacteriophage annotation하는데 이런 표기법을 사용할 수 있나 해서 다시 인터넷를 뒤지게 됐네.. 여튼..
그럼 여기서 드는 의문점 한가지.. location example에서 보면 1..>888 같은 표기법도 가능한데.. 이는 유전자가 1번 base부터 시작해서 888 번 base이상으로 계속 되어 진다는 거다.. 그런다면 stop codon의 정확한 위치는 나타내지 않는다는건데.. 어떻게 이런 표현이 가능한건지.. 이는 NCBI에서부터 답변이 오면 다시 포스팅 하도록 하겠다.
그럼 여기서 드는 의문점 한가지.. location example에서 보면 1..>888 같은 표기법도 가능한데.. 이는 유전자가 1번 base부터 시작해서 888 번 base이상으로 계속 되어 진다는 거다.. 그런다면 stop codon의 정확한 위치는 나타내지 않는다는건데.. 어떻게 이런 표현이 가능한건지.. 이는 NCBI에서부터 답변이 오면 다시 포스팅 하도록 하겠다.
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만 잡아준다.
그담 테스트 파일 받아서 테스트 해본다.
<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라고 생각하면 됨.
책 좋은 거 같음.
<기억해야 할 것>
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라고 생각하면 됨.
Monday, May 30, 2011
package in python
프로그램 짜면서 package화를 잘 안시켜봤다.. 사실.. 내가 짜는 프로그램이라고 해봤자.. 조각난 script 정도라서.. 여튼 package의 개념이 좀 없었는데.. 이번 De bruijn graph package보면서 함 봐봤다. __init__.py의 파일의 개념이 좀 이해가 안갔는데 첨에볼때.. 어떤 책에서는 마치 import * 할 때 package안의 어떤 모듈들이 import 되는지에 대한 list를 명시 하는 것처럼 설명하기도 하고.. 그런데 어떤 package를 보면 아예 __all__ 이란 내장 변수는 없고 그냥 코드만 있기도 하다.
<__init__.py>
이런 개념을 젤 잘 설명해주는 것이 여기. package도 모듈과 같이 사용될 수 있는데 그 걸 가능하게 해주는 파일이 __init__.py
<setuptools>
그리고 setuptools 이용하는 방법 : 여기
<eggtestinfo>
아.. 그리고.. 하나 더 이것땜에 이게 뭔가 찾느라 고생 많이 햇는데..
전에 de bruijn graph 포스팅 한거에서 파일 받아서 보면 setup.py 에 test_suite이라는 인자(?)가 있는데 이는 아무리 뒤져봐도 setuptools 패키지 설명에서는 찾아볼수가 없었다. 이건 여기에 설명.
<python egg>
아 이렇게 된 이상 python의 egg를 안 찾아 볼수가 없는데(항상 미뤄왔던 일..)
여기에 잘 나온다.
요약하자면..
python egg는 리눅스의 rpm 같은 것으로(perl의 cpan에 더 가까워 보인다) easy_install 이라는 프로그램(easy_install은 setuptool package의 한 부분으로 setuptools는 distutils를 기반으로 한다)으로 쉽게 install이 가능케 한다. easy_install 라고 하면(easy_install 도 가능) 알아서 pypi에서 그 package가 있는지 검색해서 install 해준다(구글에서 검색하면 pypi에 어떻게 package를 등록하는지도 나온다). 또 좋은건 dependency 해결해 준단다.
아.. classifiers 라는게 egg를 만든담에 pypi에 올렸을 때 제대로 된 카테고리에 올라가게 끔 하는거구나..
글구 pythonpaste에 대해서도 언급하는데 이건 다음에..
<setuptools>
그리고 setuptools 이용하는 방법 : 여기
<eggtestinfo>
아.. 그리고.. 하나 더 이것땜에 이게 뭔가 찾느라 고생 많이 햇는데..
전에 de bruijn graph 포스팅 한거에서 파일 받아서 보면 setup.py 에 test_suite이라는 인자(?)가 있는데 이는 아무리 뒤져봐도 setuptools 패키지 설명에서는 찾아볼수가 없었다. 이건 여기에 설명.
<python egg>
아 이렇게 된 이상 python의 egg를 안 찾아 볼수가 없는데(항상 미뤄왔던 일..)
여기에 잘 나온다.
요약하자면..
python egg는 리눅스의 rpm 같은 것으로(perl의 cpan에 더 가까워 보인다) easy_install 이라는 프로그램(easy_install은 setuptool package의 한 부분으로 setuptools는 distutils를 기반으로 한다)으로 쉽게 install이 가능케 한다. easy_install
아.. classifiers 라는게 egg를 만든담에 pypi에 올렸을 때 제대로 된 카테고리에 올라가게 끔 하는거구나..
글구 pythonpaste에 대해서도 언급하는데 이건 다음에..
Thursday, May 26, 2011
RNA-seq 에 관한 이것 저것
<expression unit>
RPKM : reads per kilobase of transcript per million of sequenced read
FPKM : expected fragments per kilobase of transcript per million fragments sequenced
음.. 정확한 개념은 ERANGE 논문과 Cufflinks 논문을 참조하면 된다.
간단한 intro는 Cufflinks 논문 intro에 잘 나와있는데.. RPKM이라는 개념이 gene 단위 레벨에서의 expression unit으로 생각한다면 FPKM은 transcript 단위에서의(하나의 gene에서도 여러 isoform의 transcript가 존재 가능) expression unit으로 생각하면 된다.
내가 여기서 이해가 안갔던 단어가 fragment인데.. 이건 뭐냐면 RPKM은 read 하나하나에 의미를 두는데 반해 FPKM은 paired-read의 한 쌍이 fragment를 의미한다 (별거 아닌건데..).
자세한 내용은 cufflinks 논문의 supplementary 데이터에 나오는데.. 이해 되면 다시 정리 하도록 하련다.
참고로 KOBIC에서도 NEUMA 라고 NAR에 논문을 낸게 있는데 이것도 보면 좋을듯. 이것 역시 정리되면 다시 올린기로 한다.
<bias>
EMBL의 자료를 보면 strand를 정보를 살리기 위한 두가지 방법과 그냥 strand를 안살리고 한거랑 tiling array로 비교한 그림이 있는데 bias가 상당하다. random hexamer bias도 있고.. 관련 자료를 좀 훑어봐야 할듯.
RPKM : reads per kilobase of transcript per million of sequenced read
FPKM : expected fragments per kilobase of transcript per million fragments sequenced
음.. 정확한 개념은 ERANGE 논문과 Cufflinks 논문을 참조하면 된다.
간단한 intro는 Cufflinks 논문 intro에 잘 나와있는데.. RPKM이라는 개념이 gene 단위 레벨에서의 expression unit으로 생각한다면 FPKM은 transcript 단위에서의(하나의 gene에서도 여러 isoform의 transcript가 존재 가능) expression unit으로 생각하면 된다.
내가 여기서 이해가 안갔던 단어가 fragment인데.. 이건 뭐냐면 RPKM은 read 하나하나에 의미를 두는데 반해 FPKM은 paired-read의 한 쌍이 fragment를 의미한다 (별거 아닌건데..).
자세한 내용은 cufflinks 논문의 supplementary 데이터에 나오는데.. 이해 되면 다시 정리 하도록 하련다.
참고로 KOBIC에서도 NEUMA 라고 NAR에 논문을 낸게 있는데 이것도 보면 좋을듯. 이것 역시 정리되면 다시 올린기로 한다.
<bias>
EMBL의 자료를 보면 strand를 정보를 살리기 위한 두가지 방법과 그냥 strand를 안살리고 한거랑 tiling array로 비교한 그림이 있는데 bias가 상당하다. random hexamer bias도 있고.. 관련 자료를 좀 훑어봐야 할듯.
Subscribe to:
Posts (Atom)




