바이오피톤
Biopython| 원본 작성자 | 채프먼 B, 장제이[1] |
|---|---|
| 초기 릴리즈 | 2000[1] |
| 안정적 해제 | 1.79[2] / 2021년 6월 3일; 전 |
| 리포지토리 | https://github.com/biopython/biopython |
| 기록 위치 | 파이톤과 C |
| 플랫폼 | 크로스 플랫폼 |
| 유형 | 생물정보학 |
| 면허증 | 바이오피톤 라이선스 |
| 웹사이트 | biopython |
바이오피톤 프로젝트는 국제 개발자 협회가 만든 컴퓨터 생물학 및 생물정보학을 위한 비상업적 파이톤 도구의 오픈소스 모음입니다.[1][3][4] 생물학적 시퀀스와 시퀀스 주석을 나타내는 클래스를 포함하고 있으며, 다양한 파일 형식을 읽고 쓸 수 있다. 그것은 또한 NCBI와 같은 생물학적 정보의 온라인 데이터베이스에 접근하는 프로그램적인 수단을 허용한다. 별도의 모듈은 바이오피슨의 기능을 시퀀스 정렬, 단백질 구조, 인구 유전학, 유전학, 시퀀스 모티브, 머신러닝 등으로 확장한다. 바이오피톤은 컴퓨터 생물학에서 코드 복제를 줄이기 위해 고안된 다수의 바이오* 프로젝트 중 하나이다.[5]
역사
바이오피톤 개발은 1999년에 시작되었고 2000년 7월에 처음 출시되었다.[6] 그것은 비슷한 기간 동안 개발되었고, BioPerl, BioRuby, BioJava 등 각각의 프로그래밍 언어에 생물정보학 기능을 추가한 다른 프로젝트들과 유사한 목표를 가지고 개발되었다. 이 프로젝트의 초기 개발자들은 제프 창, 앤드류 달크, 브래드 채프먼을 포함했지만 지금까지 100명 이상의 사람들이 기여했다.[7] 2007년에는 유사한 파이썬 프로젝트, 즉 파이코젠트가 설립되었다.[8]
Biopython의 초기 범위는 생물학적 시퀀스 파일에 접근, 색인화 및 처리를 포함했다. 이것이 여전히 주요 초점이지만, 이후 몇 년 동안 추가된 모듈들은 생물학의 추가 영역을 다루도록 그것의 기능을 확장시켰다(주요 특징과 예시 참조).
버전 1.77을 기준으로 바이오피톤은 더 이상 파이썬 2를 지원하지 않는다.[9]
디자인
가능하면 바이오피톤은 파이톤 프로그래밍 언어가 사용하는 규약을 준수하여 파이톤에 익숙한 사용자들이 쉽게 사용할 수 있도록 한다. 예를 들어, Seq 그리고 SeqRecord 물체는 슬라이싱을 통해 Python의 끈과 목록과 유사한 방식으로 조작될 수 있다. 또한 바이오펄과 같은 다른 바이오* 프로젝트와 기능적으로 유사하도록 설계되었다.[6]
바이오피톤은 기능 영역별로 가장 일반적인 파일 형식을 읽고 쓸 수 있으며, 라이선스는 다른 대부분의 소프트웨어 라이센스와 호환이 가능하고 다양한 소프트웨어 프로젝트에서 바이오피톤을 사용할 수 있다.[4]
주요 특징 및 예
시퀀스
바이오피톤에서 핵심 개념은 생물학적 수열이며, 이것은 생물학적 수열로 표현된다. Seq 수업.[10] A 바이오피톤 Seq 물체는 많은 면에서 파이톤 문자열과 유사하다: 그것은 파이톤 슬라이스 표기법을 지지하고 다른 시퀀스와 결합될 수 있으며 불변하다. 또한 시퀀스별 방법을 포함하며 사용되는 특정 생물학적 알파벳을 명시한다.
>>> # 이 스크립트는 DNA 염기서열을 만들고 전형적인 조작을 수행한다. >>> 로부터 바이오.세크 수입하다 Seq >>> dna_dna = Seq('AGGCTTCTCGTA', IUPAC.명확하지 않은_불확실한) >>> dna_dna Seq('AGGGCTTCTCGTA', IUPACUnambigDNA() >>> dna_dna[2:7] Seq('GCTTC', IUPACUnambigudDNA() >>> dna_dna.reverse_properties() Seq('TACGAGAGAGCCT', IUPACUnambigDNA() >>> rna_sna = dna_dna.필사하다() >>> rna_sna Seq('AGGCUUCUCUCGUA', IUPACUnambigruriousRNA()) >>> rna_sna.번역하다() Seq('RLV', IUPACProtein()) 시퀀스 주석
그 SeqRecord 클래스는 이름, 설명 및 특징과 같은 정보와 함께 시퀀스를 설명한다. SeqFeature 물건들 각각의 SeqFeature 객체는 형상의 유형과 형상의 위치를 지정한다. 형상 종류는 'gene', 'CDS'(코딩 시퀀스), 'repeat_region', 'mobile_element' 등이 될 수 있으며, 시퀀스에서 형상의 위치는 정확하거나 근사할 수 있다.
>>> # 이 스크립트는 파일에서 주석 처리된 시퀀스를 로드하고 일부 내용을 본다. >>> 로부터 생물학 수입하다 세키오 >>> seq_record = 세키오.읽다('pTC2.gb', '겐뱅크') >>> seq_record.이름을 붙이다 'NC_019375' >>> seq_record.설명 '프로비덴시아 스튜어티 플라스미드 pTC2, 시퀀스 완료' >>> seq_record.특징들[14] SeqFeature(FeatureLocation(ExactPosition, 4516), 정확한 위치(5336), strand=1), 유형='mobile_element') >>> seq_record.Seq. Seq('GGATTGATAGTAGTAGTGTCGTCGTCAGC...GCC', IUPAACAmbiguousDNA() 입출력
바이오피톤은 FASTA, FASTQ, GenBank, Clustal, PHYLIP, NEXX를 포함한 다수의 공통 시퀀스 형식을 읽고 쓸 수 있다. 파일을 읽을 때 파일의 설명 정보를 사용하여 다음과 같은 Biopython 클래스의 멤버를 채운다. SeqRecord하나의 파일 형식의 레코드를 다른 형식으로 변환할 수 있다.
매우 큰 시퀀스 파일은 컴퓨터의 메모리 자원을 초과할 수 있기 때문에, 바이오피톤은 대용량 파일의 레코드에 접근하기 위한 다양한 옵션을 제공한다. 그것들은 목록이나 사전과 같은 파이톤 데이터 구조에서 메모리에 전적으로 로드될 수 있으며, 메모리 사용 비용으로 빠른 액세스를 제공한다. 또는, 성능은 느리지만 메모리 요구 사항은 낮은 디스크에서 파일을 읽을 수 있다.
>>> # 이 스크립트는 여러 시퀀스를 포함하는 파일을 로드하여 각각 다른 형식으로 저장한다. >>> 로부터 생물학 수입하다 세키오 >>> 게놈 = 세키오.파스를 치다('salmonella.gb', '겐뱅크') >>> 을 위해 게놈 에 게놈: ... 세키오.글씨를 쓰다(게놈, 게놈.id + '.fasta', '파스타') 온라인 데이터베이스 액세스
바이오를 통해서.엔트레스 모듈, 바이오피톤 사용자는 NCBI 데이터베이스에서 생물학적 데이터를 다운로드할 수 있다. 엔트레스 검색엔진이 제공하는 각각의 기능은 기록 검색 및 다운로드를 포함하여 이 모듈의 기능을 통해 이용할 수 있다.
>>> # 이 스크립트는 NCBI 뉴클레오티드 데이터베이스에서 게놈을 다운로드하여 FASTA 파일에 저장한다. >>> 로부터 생물학 수입하다 엔트레스 >>> 로부터 생물학 수입하다 세키오 >>> output_file = 개방된('all_lights., "w") >>> 엔트레스.이메일을 보내다 = 'my_email@example.com' >>> records_to_properties = ['FO834906.1', 'FO203501.'1'] >>> 을 위해 record_id 에 records_to_properties: ... 다루다 = 엔트레스.에페치(db='nucleotide', id=record_id, 리타입하다='gb') ... seqRecord = 세키오.읽다(다루다, 형식을 갖추다='gb') ... 다루다.가까운.() ... output_file.글씨를 쓰다(seqRecord.형식을 갖추다('파스타')) 필로제니
더 바이오.필로 모듈은 계통생성 나무와 함께 작업하고 시각화하는 도구를 제공한다. 뉴익, NEXX, 필로XML 등 읽기 및 쓰기에 다양한 파일 형식이 지원되며, 일반 트리 조작 및 트래버설이 지원된다. Tree 그리고 Clade 물건들 예를 들어 트리 파일 변환 및 데이터 정렬, 트리에서 하위 집합 추출, 트리의 루트 변경, 길이 또는 점수 같은 분기 기능 분석 등이 있다.[12]
루트 트리는 ASCII로 그리거나 매트릭리브(그림 1 참조), 그래프비즈 라이브러리를 사용하여 루트 없는 레이아웃을 만들 수 있다(그림 2 참조).
게놈도
게놈다이아그램 모듈은 바이오피톤 내에서 시퀀스를 시각화하는 방법을 제공한다.[14] 시퀀스는 선형 또는 원형 형태로 그릴 수 있으며(그림 3 참조), PDF, PNG를 포함한 많은 출력 형식이 지원된다. 도표는 트랙을 만든 다음 해당 트랙에 시퀀스 기능을 추가함으로써 생성된다. 시퀀스의 특징을 반복하고 그 속성을 사용하여 다이어그램의 트랙에 추가되는지 여부와 방법을 결정함으로써 최종 다이어그램의 외관을 크게 제어할 수 있다. 서로 다른 트랙 사이에 교차 링크를 그릴 수 있어 하나의 다이어그램에서 여러 시퀀스를 비교할 수 있다.
고분자 구조
더 바이오.PDB 모듈은 PDB 및 mmCIF 파일에서 분자 구조를 로드할 수 있으며, 2003년에 Biopython에 추가되었다.[15] 그 Structure 물체는 이 모듈의 중심이며, 그것은 고분자 구조를 계층적 방식으로 조직한다. Structure 물체는 다음을 포함한다. Model 을 포함하는 사물. Chain 을 포함하는 사물. Residue 을 포함하는 사물. Atom 물건들 무질서한 잔여물과 원자는 그들만의 계급이 있고 DisorderedResidue 그리고 DisorderedAtom그것은 그들의 불확실한 위치를 묘사한다.
바이오 사용.PDB는 단백질의 각 원자를 검사하는 것과 같은 고분자 구조 파일의 개별 구성요소를 탐색할 수 있다. 거리 또는 각도 측정, 잔류물 비교, 잔류물 깊이 계산 등 공통 분석을 수행할 수 있다.
인구유전학
더 바이오.PopGen 모듈은 인구유전학의 통계적 분석을 위한 소프트웨어 패키지인 Genepop을 위한 바이오피톤에 지원을 추가한다.[16] 이것은 Hardy-Weinberg 평형, 연관성 불균형 및 모집단 알레르기의 다른 특징에 대한 분석을 가능하게 한다.
이 모듈은 또한 고속석탄2 프로그램과 결합 이론을 이용한 인구 유전자 시뮬레이션을 수행할 수 있다.[17]
명령줄 도구의 래퍼
바이오피톤의 많은 모듈에는 일반적으로 사용되는 도구에 대한 명령행 포장지가 포함되어 있어 바이오피톤 내에서 이러한 도구를 사용할 수 있다. 이 포장지에는 블라스트, 클러스터, PhyML, EMBOSS, SAMtools가 포함되어 있다. 사용자는 일반 래퍼 클래스를 하위 분류하여 다른 명령줄 도구에 대한 지원을 추가할 수 있다.
참고 항목
참조
- ^ a b c Chapman, Brad; Chang, Jeff (August 2000). "Biopython: Python tools for computational biology". ACM SIGBIO Newsletter. 20 (2): 15–19. doi:10.1145/360262.360268. S2CID 9417766.
- ^ "Biopython 1.79 released". Open Bioinformatics Foundation. 3 June 2021.
- ^ Cock, Peter JA; Antao, Tiago; Chang, Jeffery T; Chapman, Brad A; Cox, Cymon J; Dalke, Andrew; Friedberg, Iddo; Hamelryck, Thomas; Kauff, Frank; Wilczynski, Bartek; de Hoon, Michiel JL (20 March 2009). "Biopython: freely available Python tools for computational molecular biology and bioinformatics". Bioinformatics. 25 (11): 1422–3. doi:10.1093/bioinformatics/btp163. PMC 2682512. PMID 19304878.
- ^ a b Biopython 웹사이트에서 Biopython에 대해 설명하는 다른 논문과 Biopython을 사용하거나 코팅을 하는 100개 이상의 출판물 목록을 참조하십시오.
- ^ Mangalam, Harry (September 2002). "The Bio* toolkits—a brief overview". Briefings in Bioinformatics. 3 (3): 296–302. doi:10.1093/bib/3.3.296. PMID 12230038.
- ^ a b Chapman, Brad (11 March 2004), The Biopython Project: Philosophy, functionality and facts (PDF), retrieved 11 September 2014
- ^ List of Biopython contributors, archived from the original on 11 September 2014, retrieved 11 September 2014
- ^ Knight, R; Maxwell, P; Birmingham, A; Carnes, J; Caporaso, J. G.; Easton, B. C.; Eaton, M; Hamady, M; Lindsay, H; Liu, Z; Lozupone, C; McDonald, D; Robeson, M; Sammut, R; Smit, S; Wakefield, M. J.; Widmann, J; Wikman, S; Wilson, S; Ying, H; Huttley, G. A. (2007). "Py Cogent: A toolkit for making sense from sequence". Genome Biology. 8 (8): R171. doi:10.1186/gb-2007-8-8-r171. PMC 2375001. PMID 17708774.
- ^ Daley, Chris, Biopython 1.77 released, retrieved 6 October 2021
- ^ Chang, Jeff; Chapman, Brad; Friedberg, Iddo; Hamelryck, Thomas; de Hoon, Michiel; Cock, Peter; Antao, Tiago; Talevich, Eric; Wilczynski, Bartek (29 May 2014), Biopython Tutorial and Cookbook, retrieved 28 August 2014
- ^ Zmasek, Christian M; Zhang, Qing; Ye, Yuzhen; Godzik, Adam (24 October 2007). "Surprising complexity of the ancestral apoptosis network". Genome Biology. 8 (10): R226. doi:10.1186/gb-2007-8-10-r226. PMC 2246300. PMID 17958905. Archived from the original on 10 October 2014. Retrieved 9 September 2014.
- ^ Talevich, Eric; Invergo, Brandon M; Cock, Peter JA; Chapman, Brad A (21 August 2012). "Bio.Phylo: A unified toolkit for processing, analyzing and visualizing phylogenetic trees in Biopython". BMC Bioinformatics. 13 (209): 209. doi:10.1186/1471-2105-13-209. PMC 3468381. PMID 22909249.
- ^ "Klebsiella pneumoniae strain KPS77 plasmid pKPS77, complete sequence". NCBI. Retrieved 10 September 2014.
- ^ Pritchard, Leighton; White, Jennifer A; Birch, Paul RJ; Toth, Ian K (March 2006). "GenomeDiagram: a python package for the visualization of large-scale genomic data". Bioinformatics. 22 (5): 616–617. doi:10.1093/bioinformatics/btk021. PMID 16377612.
- ^ Hamelryck, Thomas; Manderick, Bernard (10 May 2003). "PDB file parser and structure class implemented in Python". Bioinformatics. 19 (17): 2308–2310. doi:10.1093/bioinformatics/btg299. PMID 14630660.
- ^ Rousset, François (January 2008). "GENEPOP'007: a complete re-implementation of the GENEPOP software for Windows and Linux". Molecular Ecology Resources. 8 (1): 103–106. doi:10.1111/j.1471-8286.2007.01931.x. PMID 21585727. S2CID 25776992.
- ^ Excoffier, Laurent; Foll, Matthieu (1 March 2011). "fastsimcoal: a continuous-time coalescent simulator of genomic diversity under arbitrarily complex evolutionary scenarios". Bioinformatics. 27 (9): 1332–1334. doi:10.1093/bioinformatics/btr124. PMID 21398675.