(<-) |
. |
(->) |
Chap.1 Introduction
Contents
1.1 Biopython 이란?
BioPython 프로젝트는 자유롭게 사용가능한 Python을 이용하여 ComputationalMolecularBiology에 활용할 수 있는 툴을 만들고자 조직된 국제적 개발자 모임이다. 웹사이트 http://www.biopython.org 에서는 모듈, 스크립트에 대한 자원들을 제공하며, 생명과학 연구를 위한 웹 링크들을 제공한다.
기본적으로, Python 프로그래밍을 좋아하며, Python을 이용하여, 질높고, 재사용가능한 모듈 및 스크립트로 생물정보학을 위한 툴을 쉽게 만들기를 원한다.
1.1.1 Biopython 패키지에는 무엇무엇이 있는가?
Biopython은 다음과 같은 다양한 기능들을 포함하고 있다.
생물정보학용 파일들(flat file)들을 파싱하여 Python에서 이용가능한 데이타구조 형태로 만들며, 다음의 포맷들을 지원한다.
- 지원되는 포맷의 파일에 대해 사전(Dictionary) 인터페이스를 통한 인덱싱, 엑세스 및 반복 작업이 가능하다.
- 유명한 온라인 생물정보학 자원을 이용할 수 있다.
NCBI - BLAST, Entrez and PubMed services
- Expasy - Prodoc and Prosite entries
- 일반적인 생물정보학 프로그램을 위한 인터페이스를 제공한다.
NCBI의 StandAloneBlast
- Clustalw alignment program
- 서열(sequence)을 다루고, 서열의 ID, Feature를 다루는 표준 서열 클래스
- 서열을 가지고 수행할 수 있는 일반적인 기능들, 전사(Transcription), 번역(Translation), 가중치계산(Weight calculation).
kNearestNeighbors, NaiveBayes 알고리즘을 이용한 자료군집화(classification)수행, 벡터머신 지원
SubstitutionMatrix를 다루며, 만드는 과정을 포함한 SequenceAlignment를 다루는 기능
- 병렬화할 수 있는 테스크의 프로세스를 분기하는 기능
- 서열을 조작할 수 있는 GUI기반의 인터페이스. translations, BLASTing, etc. (앗... 이런거 본적 없는데..)
- 확장 문서화 : 파일을 포함하는 모듈사용법, 온라인 위키문서들, 웹사이트, 메일링리스트
BioCorba를 이용한 다른 언어들 (BioPerl, BioJava...)과의 통합 ( biopython-corba 모듈이 있다.)
이것들이 당신의 BioPython이용에 커다란 이유가 되기를 바란다!
1.2 Biopython 구하기
BioPython 홈페이지인 http://www.biopython.org 에서 구할 수 있다. 이곳은 Biopython을 시작하기에 앞서 둘러보기에 괜찮은 곳이다. BioPythonCodeAnalysis와 함께 시작하고 싶다면, 다음의 세가지 방법이 있다.
Release Code : 안정화된 release와 개발중인 release를 모두 http://www.biopython.org/download/ 에서 구할 수 있다. 안정화버젼은 테스트되어있는 데에 비해 개발버젼은 CVS (ConcurrentVersionsSystems)과 유사한 형태로 배포된다. 소소, RPMs, Windows installer형태 모두 배포된다.
CVS : 현재 개발중인 카피는 CVS를 통해 얻을 수 있다. http://www.cvshome.org 간결한 설명서는 http://cvs.biopython.org에서 얻는다.
패키지를 어떻게 구하든 다음의 설치과정 중 하나를 따라야 한다. 자신에게 맞는 설치과정을 읽기 바란다.
1.3 Biopython 설치
1.3.1 소스로 부터 유닉스에 설치하기
BioPython은 Python 표준 설치패키지인 Distutils를 사용한다. Distutils의 카피는 http://www.python.org/sigs/distutils-sig/download.html 에서 구할 수 있으며, Python 1.6 부터는 배포판에 포함된다. Distutils는 잠깐사이에 설치를 끝낼 수 있다. 그럼 설치를 시작해보자.
- 우선 배포본의 압출을 해제한다. CVS버젼을 갖고 있다면 이단계를 넘어간다. 유닉스머신에서는 tag.gz 형태로 배포되며 다음과 같은 형태로 압축을 풀 수 있다.
$ tar -xzvpf biopython-X.X.tar.gz
- biopython* 디렉토리로 이동한다. CVS버젼은 그냥 biopython디렉토리이며 패키지를 다운 받은 사람은 biopython-X.X 디렉토리일 것이다.
# python setup.py install 명령으로 원스텝 설치를 할 수 있다. 이것은 디폴트 옵션으로, site-package 디렉토리에 설치한다. 이작업을 위해서는 해당디렉토리에 쓰기권한이 있어야 한다.
이 설치를 위해 Python소스가 필요하다. /usr/local/include/pythonX.X같은 디렉토리에서 Python.h 과 config.h 파일이 있는지 점검해 봐야 한다.
Distutils 셋업유틸리티는 당신이 설치 옵션을 변경할 수 있도록 한다. 설치와 관련된 옵션은 http://www.python.org/sigs/distutils-sig/doc/inst/inst.html 페이지의 Alternative installation 섹션을 참고하기 바란다.
BioPython이 설치되었다. 쉽지않냐? 그럼 바로 1.4절에 가서 제대로 동작하나 확인하기 바란다.
1.3.1.1 FreeBSD에 설치
Johann Visagie가 FreeBSD용 Biopython 포트(port)를 만들었다. 멋진 포트 시스템에 감사할 따름이다. 여러분은 FreeBSD에서 root권한으로 다음을 실행하기만 하면 된다.
# cd /usr/ports/biology/py-biopython # make install
이상으로 설치가 완료됐다.
FreeBSD에 관심이 있으면, Johann이 작성한 EMBOSS port 프라이머를 참고하기 바란다. 포트 패키지를 작성하고 유지하는 방법을 배울 수 있다. FreeBSD에 처음이라면 꼭 참고하길 바란다. ftp://ftp.no.embnet.org/pub/EMBOSS-extras/EMBOSS-FreeBSD-HOWTO.txt
1.3.2 소스로 부터 윈도우에 설치하기
이 섹션에서는 소스(CVS 혹은 소스 zip파일)를 MS-윈도우 시스템에 설치하는 방법을 설명한다. 1.3.1절의 유닉스설치내용을 미리 읽으면 도움이 될것이다. 주의할점은 이 문서를 내가(Brad) 작성 할 때 윈도우 환경에서 많은 경험이 없는 상태에서 했다는 것이다. 만약 여러분이 윈도우즈를 잘 안다면 이 섹션을 추가/수정 해주길 바란다.
Borland의 공짜 C++ 컴파일러( http://www.inprise.com/bcppbuilder/freecompiler/ 에서 구할 수 있다.)로 Distutils를 이용한 Biopython 컴파일을 성공했다. Distutils를 지원하는 다른 컴파일러도 사용 가능하다. (다른 컴파일러로 작업했다면 알려주길 바란다.)
- Borland C++ 컴파일러
- 먼저 Borland C++ 컴파일러를 설치한다. Borland 문서와 웹페이지를 참고한다.
다음으로 Borland로 컴파일 된 확장 라이브러리를 사용할 수 있는 (MS 컴파일러로 컴파일 된)Python을 구해야한다. Gordon Williams가 관련 문서( http://www.cyberus.ca/~g_will/pyExtenDL.shtml )를 작성했다. 나 역시 이 문서의 내용이 내가 아는 전부이다. 간단하게 Borland에서 제공하는 COFF2OMF라는 도구를 python20.lib 파일에 대해 실행해준다. COFF2OMF python20.lib python20-borland.lib 그 후에 distutils에서 링크가 가능하도록 python20.lib을 python20-orig.lib으로, python20-borland.lib을 python20.lib으로 바꿔준다.
- 이제 모든 준비가 끝났다. 다음을 실행해준다.
> python setup.py build --compiler=bcpp > python setup.py install
설치가 끝났다!
그럼 바로 1.4절에 가서 제대로 동작하나 확인하기 바란다.
1.3.3 RPMs를 이용한 설치
*주의* 현재 biopython RPM은 만들지 않는다. (RPM 시스템을 더이상 쓰지 않기 때문이다.) 혹시 RPM에 관심이 많거나 관리를 원하면 연락주길 바란다.
RPM기반의 시스템을 사용하는 사람들은 C 컴파일러 없이도 RPM 시스템을 통해 biopython을 설치할 수 있다.
다른 RPM과 마찬가지로 biopython RPM도 같은 설치방법을 따르며, RPM 시스템에 관심이 있는 사람은 다음 사이트를 참고하길 바란다. http://www.rpm.org
설치하기 위해서는 다음 명령을 한다.
rpm -i your_biopython.rpm
1.3.4 Windows Installer를 이용한 설치
1.3.5 Macintosh에 설치
1.4 제대로 돌아가나 확인하기
우선, Python을 확인하기 위해서 간단한 테스트를 할 것이다.가장 중요한 일은 Python이 BioPython 설치를 확인할 수 있는냐 하는 것이다. BioPython은 모두 Bio 디렉토리에 설치되며 이 디렉토리가 당신의 $PYTHONPATH 환경변수에 지정이 되어있는지 확인해야 한다. 만약 기본 설치를 하였다면 문제가 되지 않을 것이다.그러나 그러지 않았다면 당신은 export PYTHONPATH = $PYTHONPATH':/directory/where/you/put/Biopython' (on UNIX)와 같은 식으로 PYTHONPATH를 설정해야 할 것이다. 이제 모두 준비되었으면 Python 인터프리터를 실행시키고 다음과 같은 코드를 기입한다.
[chapmanb@taxus chapmanb]$ python Python 1.6a2 (#1, Jul 31 2000, 09:04:26) [GCC 2.95.2 19991024 (release/franzo)] on linux2 Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam >>> from Bio.Seq import Seq >>> new_seq = Seq('GATC') >>> new_seq[0:2] Seq('GA', Alphabet())
제대로 작동한다면 BioPython은 Python이 인식할 수 있는 즐거운 장소에 있는 것이다. 따라서 좀 더 엄밀한 테스트를 할 수 있다. 배포판에 있는 Tests 디렉토리에는 BioPython의 모든 다른 부분을 확인할 수 있는 수 많은 테스트들이 들어 있다. 이들은 단지 python test_WhateverTheTestIs.py로 실행시킬수 있다. 또한 PyUnit에 의해 지원 받는 훌륭한 그래픽 인터페이스를 사용하여 모든 테스트를 실행시킬 수 있다. 이를 위해서 단지 설치 디렉토리에서 다음과 같이 기입하면 된다.
python setup.py test
이것은 테스트들을 실행할 수 있는 Tk를 기반으로 하는 [GUI], 또는 [Tkinter] 가 설치가 되어 있지 않다면 기본으로 명령어 라인을 시작할 것이다. Tests 디렉토리에서 python run_tests.py라고 기입하여 실행시킬 수도 있다. 이제, BioPython을 설치하고 실행할 수 있게 되었으며 이를 이용해서 작업을 할 수 있게 되었다. 계속 읽어 나가기를...
1.5 FAQ
1. 나는 code가 있는 디렉토리를 찾았었는데 찾을수가 없었습니다. 어디에 있나요?
code를 init.py 화일에 넣는다는 것을 알아야 합니다. 당신이 이 화일에서 code를 찾지 않았다면 혼동되었을 수도 있습니다. 이렇게 한 이유는 사용자들이 import를 더 쉽게 할 수 있게 하기 위해서 입니다. 예를 들면 from Bio.GenBank import GenBank와 같이 "반복적인" import를 해야하는 대신에 당신은 단지 from Bio import GenBank와 같이 import하면 됩니다.
2. br_regrtest.py의 regression test에서 무슨 변화가 있는 건가요?
우리는 PyUnit를 사용하기 위해서 regression testing framework을 업데이트 시켰고 또한 newline 문제들을 고쳤습니다. br_regrtest.py은 아직도 있는데 거의 모든 기능들은 run_tests.py로 (그냥, 복사와 붙여넣기를 통해서) 옮겨졌습니다.
3. 왜 몇가지 테스트들은 regression test시 다음과 같은 출력을 내고 실패를 합니까? : Writing: '\012', expected: '\015'
그것은 이제는 더이상 일어나지 않을 것입니다. 우리는 RegressionTest suite가 PyUnit를 사용하도록 업데이트 했으며 바라건데 newline 문제들을 고쳤습니다. 만약 어떤 테스트라도 실패한다면 알려주시기 바랍니다.