WIPIVERSE

바이오파이썬

바이오파이썬 (Biopython)

개요

바이오파이썬(Biopython)은 계산생물학(computational biology) 및 생물정보학(bioinformatics)을 위한 오픈소스 파이썬(Python) 모듈 모음이다. 국제 개발자 커뮤니티에 의해 개발·유지되며, 생물정보학 분야의 현재 및 미래의 요구를 충족시키는 파이썬 라이브러리와 애플리케이션을 제공하는 것을 목표로 한다. 소스 코드는 BSD 3-조항 라이선스와 실질적으로 동등한 바이오파이썬 라이선스(Biopython License) 하에 배포되며, 이는 거의 모든 소프트웨어 라이선스와 호환될 정도로 관대한 조건을 갖는다. 바이오파이썬은 오픈 바이오인포매틱스 재단(Open Bioinformatics Foundation, OBF)의 회원 프로젝트이다.

역사

바이오파이썬의 개발은 1999년에 시작되었으며, 2000년 7월에 최초 릴리스가 이루어졌다. 최초의 "반완성(semi-complete)" 릴리스는 2001년 3월, "반안정(semi-stable)" 릴리스는 2002년 12월에 발표되었다. 바이오파이썬은 BioPerl, BioRuby, BioJava 등 각 프로그래밍 언어에 생물정보학 기능을 추가한 유사 프로젝트들과 비슷한 시기에 유사한 목표를 가지고 개발되었다. 초기 개발자로는 Jeff Chang, Andrew Dalke, Brad Chapman 등이 있으며, 현재까지 100명 이상의 기여자가 프로젝트에 참여하였다. 2026년 3월 30일 기준 최신 안정 버전은 1.87이다. 버전 1.77부터 파이썬 2 지원이 중단되었으며, 현재는 파이썬 3만 지원하고 NumPy에 의존한다.

설계 및 구조

바이오파이썬은 파이썬 사용자에게 친숙한 관례를 따르도록 설계되었다. 예를 들어 Seq 및 SeqRecord 객체는 파이썬의 문자열·리스트와 유사한 방식으로 슬라이싱(slicing)을 통해 조작할 수 있다. 또한 BioPerl 등 다른 Bio* 프로젝트와 기능적으로 유사하도록 설계되었다. 바이오파이썬은 모듈형 하위 패키지로 구성되며, 주요 모듈은 다음과 같다.

모듈 기능
Bio.Seq 생물학적 서열(sequence) 처리
Bio.Align 서열 정렬(alignment)
Bio.PDB 거대분자 3차원 구조 분석
Bio.Entrez NCBI 데이터베이스 접근
Bio.Phylo 계통수(phylogenetic tree) 분석 및 시각화
Bio.PopGen 집단유전학(population genetics) 분석
GenomeDiagram 유전체 다이어그램 시각화

주요 기능

파일 입출력 및 서열 처리

바이오파이썬은 FASTA, FASTQ, GenBank, EMBL 등 다양한 서열 형식과 Clustal, BLAST, PHYLIP, NEXUS 등 정렬 형식, 그리고 PDB, mmCIF 등 구조 형식의 파서(parser)를 제공한다. Seq 클래스는 생물학적 서열을 표현하는 핵심 개념으로, 파이썬 문자열과 유사하게 슬라이싱·연결(concatenation)이 가능하며 불변(immutable) 객체이다. SeqRecord 클래스는 서열에 이름·설명·특징(feature) 정보를 부가하여 기술한다.

온라인 데이터베이스 접근

Bio.Entrez 모듈을 통해 NCBI 데이터베이스에서 생물학적 데이터를 검색하고 다운로드할 수 있다. Entrez 검색 엔진이 제공하는 각 기능이 이 모듈의 함수로 제공된다.

계통분석

Bio.Phylo 모듈은 Newick, NEXUS, phyloXML 등 다양한 계통수 파일 형식을 지원하며, Tree 및 Clade 객체를 통해 트리 조작 및 순회(traversal)를 수행할 수 있다. matplotlib 또는 Graphviz를 이용한 계통수 시각화도 가능하다.

거대분자 구조 분석

Bio.PDB 모듈은 PDB 및 mmCIF 파일로부터 분자 구조를 로드하며, Structure → Model → Chain → Residue → Atom의 계층적 구조로 데이터를 구성한다. 원자 간 거리·각도 측정, 잔기(residue) 비교, 잔기 깊이 계산 등 일반적인 분석이 가능하다.

집단유전학

Bio.PopGen 모듈은 Genepop 소프트웨어와의 연동을 통해 하디-바인베르크 평형(Hardy–Weinberg equilibrium), 연관불평형(linkage disequilibrium) 등 집단의 대립유전자 빈도(allele frequency) 분석을 지원하며, fastsimcoal2 프로그램을 이용한 집단유전학 시뮬레이션도 가능하다.

같이 보기

  • BioPerl: 펄(Perl) 기반 생물정보학 라이브러리
  • BioRuby: 루비(Ruby) 기반 생물정보학 라이브러리
  • BioJava: 자바(Java) 기반 생물정보학 라이브러리
  • PyCogent: 2007년에 설립된 유사 목적의 파이썬 기반 생물정보학 프로젝트

참고문헌

  • Cock PA, Antao T, Chang JT, Chapman BA, Cox CJ, Dalke A, Friedberg I, Hamelryck T, Kauff F, Wilczynski B, de Hoon MJL (2009). "Biopython: freely available Python tools for computational molecular biology and bioinformatics." Bioinformatics, 25(11), 1422–1423.
  • Chapman B, Chang J (2000). "Biopython: Python tools for computational biology." ACM SIGBIO Newsletter, 20(2), 15–19.
  • 공식 웹사이트: https://biopython.org
  • GitHub 저장소: https://github.com/biopython
둘러보기

더 찾아볼 만한 주제

    전체 문서 보기