|| (<-) ||.||BioPythonTutorial || [BioPythonTutorial/QuickStart] || (->) || '''Chap.1 Introduction''' <> == 1.1 Biopython 이란? == BioPython 프로젝트는 자유롭게 사용가능한 [[Python]]을 이용하여 ComputationalMolecularBiology에 활용할 수 있는 툴을 만들고자 조직된 국제적 개발자 모임이다. 웹사이트 http://www.biopython.org 에서는 모듈, 스크립트에 대한 자원들을 제공하며, 생명과학 연구를 위한 웹 링크들을 제공한다. 기본적으로, [[Python]] 프로그래밍을 좋아하며, [[Python]]을 이용하여, 질높고, 재사용가능한 모듈 및 스크립트로 생물정보학을 위한 툴을 쉽게 만들기를 원한다. === 1.1.1 Biopython 패키지에는 무엇무엇이 있는가? === Biopython은 다음과 같은 다양한 기능들을 포함하고 있다. * 생물정보학용 파일들(flat file)들을 파싱하여 [[Python]]에서 이용가능한 데이타구조 형태로 만들며, 다음의 포맷들을 지원한다. * BLAST output : StandAloneBlast and WwwBlast * Clustalw * FASTA * GenBank * PubMed and Medline * Expasy files, like Enzyme, Prodoc, Prosite * SCOP, including 'dom' and 'lin' files * Rebase * UniGene * SwissProt * 지원되는 포맷의 파일에 대해 사전(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와 함께 시작하고 싶다면, 다음의 세가지 방법이 있다. 1. Release Code : 안정화된 release와 개발중인 release를 모두 http://www.biopython.org/download/ 에서 구할 수 있다. 안정화버젼은 테스트되어있는 데에 비해 개발버젼은 CVS (ConcurrentVersionsSystems)과 유사한 형태로 배포된다. 소소, RPMs, Windows installer형태 모두 배포된다. 1. 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는 잠깐사이에 설치를 끝낼 수 있다. 그럼 설치를 시작해보자. 1. 우선 배포본의 압출을 해제한다. CVS버젼을 갖고 있다면 이단계를 넘어간다. 유닉스머신에서는 tag.gz 형태로 배포되며 다음과 같은 형태로 압축을 풀 수 있다. {{{ $ tar -xzvpf biopython-X.X.tar.gz }}} 1. biopython* 디렉토리로 이동한다. CVS버젼은 그냥 biopython디렉토리이며 패키지를 다운 받은 사람은 biopython-X.X 디렉토리일 것이다. 1. {{{ # python setup.py install }}} 명령으로 원스텝 설치를 할 수 있다. 이것은 디폴트 옵션으로, site-package 디렉토리에 설치한다. 이작업을 위해서는 해당디렉토리에 쓰기권한이 있어야 한다. 1. 이 설치를 위해 [[Python]]소스가 필요하다. /usr/local/include/pythonX.X같은 디렉토리에서 Python.h 과 config.h 파일이 있는지 점검해 봐야 한다. 1. Distutils 셋업유틸리티는 당신이 설치 옵션을 변경할 수 있도록 한다. 설치와 관련된 옵션은 http://www.python.org/sigs/distutils-sig/doc/inst/inst.html 페이지의 Alternative installation 섹션을 참고하기 바란다. 1. 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를 지원하는 다른 컴파일러도 사용 가능하다. (다른 컴파일러로 작업했다면 알려주길 바란다.) 1. 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 문제들을 고쳤습니다. 만약 어떤 테스트라도 실패한다면 알려주시기 바랍니다.