140 likes | 298 Views
D o I t Y ourself. bio INFORMATICS. 권병천 , 배우리 , 이태선 , 박태준. Overview. Objective BioInformatics 를 쉽고 편리하게 개발할 수 있는 방법 제시 Approach BioInformatics 사례를 통한 프로그램 개발 방법 설명 : Profile/Secondary Structure/Solvent Accessibility 를 이용한 sequence-alignment 프로그램 개발절차와 구현 예 제시
E N D
DoItYourself bioINFORMATICS 권병천, 배우리, 이태선, 박태준
Overview • Objective • BioInformatics를 쉽고 편리하게 개발할 수 있는 방법 제시 • Approach • BioInformatics 사례를 통한 프로그램 개발 방법 설명 : Profile/Secondary Structure/Solvent Accessibility 를 이용한 sequence-alignment 프로그램 • 개발절차와 구현 예 제시 • BioJava, Apache Commons 툴 소개 • BioInformatics 개발 방법 제시
CASE : P.S.S. pairwise sequence alignment • 겨울 학교를 통해 배웠던 alignment 방법 • PAM/BLOSUM을 이용한 linear/affine gap penalty alignment • Substitution Matrix는 Amino Acid간 치환 확률 기반 • 만약, 2개의 sequence를 정렬할 때, • 해당 sequence의 • Profile • Secondary structure • Solvent accessibility • 특징을 이용하여 substitution matrix를 구성 • Match되는 amino acid간 profile/secondary/solvent 특성을 반영한 match score를 계산할 수 있음 • 향상된 alignment 결과를 기대할 수 있음 Yellow : Secondary Structure Green : Solvent Accessibility
CASE : P.S.S. pairwise sequence alignment • BioInformatics 실험 절차 • Structure를 알고 있는 하나의 PDB를 target으로 선정하고, 나머지 PDB파일과 TM-Align을 사용해 structure-structure alignment • Sequence identity가 높은순대로 protein 정렬 • 선정된 target은 structure를 모른다고 가정 : PSS sequence alignment 통한 결과와 위 TM-Align결과의 유사도 계산 목적 • Target과 template 의 profile/secondary structure/solvent accessibility 수치 생성
CASE : P.S.S. pairwise sequence alignment • BioInformatics 실험 절차(계속) • Profile/Secondary/Solvent 각각의 correlationship matrix 생성 • 각 matrix에 서로 다른 가중치를 곱하여 통합된 PSS substitution matrix 생성 • Terminal gap/gap open/gap extend penalty값 설정 • Pairwise alignment 실행하여 score 계산 • 모든 대상 template의 score를 정렬하여 structure alignment한 결과와 유사성을 계산 • 가중치를 변화하여 유사성이 높은 가중치 패턴 검색 Profile Correlation Matrix Secondary Structure Correlation Matrix Solvent Accessibility Correlation Matrix Weight(I) Weight(II) Weight(III) PSS Substitution Matrix
Methods : P.S.S. pairwise sequence alignment • 각종 tools 실행 • PsiBlast, PsiPred, DSSP, AccPro, TM-Align, PDP → Python 스크립트 • PDB파일에서 sequence 추출 • Template PDB파일인 경우 • PsiBlast에서는 Sequence • DSSP에서는 Structure coordinates정보를 사용 • 하지만, 모든 sequence의 coordinates가 PDB에 있지는 않음 • 방법은 직접 PDB를 읽어 coordinates 정보가 있는 amino acid만 추출 • 혹은 BioJava를 이용 • PSS substitution matrix를 이용한 Pairwise sequence alignment • 직접 dynamic program작성 • 혹은 BioJava를 이용 • Score 비교 및 정렬을 위한 자료구조 정의 • 직접 자료구조 정의 및 정렬 알고리즘 작성 • 혹은 Java Library(Apache Commons)이용
BioJava, Java Library • BioJava – http://www.biojava.org • BioInformatics를 위해 잘 만들어진 open source 프레임워크 • BioJava 뿐만 아니라 BioPython, BioPerl도 있음 • Java Library(Apache Commons) – http://commons.apache.org • 프로그래밍에서 자주 쓰이고 구현이 까다로운 기능을 미리 구현해 놓아 재 사용 가능한 open source 프레임워크 • Pros • 시간 및 비용 절약 • 작고 빠른 속도 보장 • 오류 가능성 매우 적음 • 소스 공개로 인한 응용 가능 • Cons • 학습 소요 시간 높음 • 간단/일회성 프로그램에서 필요 없음
And one more thing – IDE tool • IDE(Integrated Development Environment) • IDE는 프로그램 생산성을 극도로 높이기 위해 코딩, 디버그, 컴파일, 배포 등 프로그램 개발에 관련된 모든 작업을 하나의 프로그램 안에서 처리하는 환경을 제공하는 소프트웨어 • Java뿐만 아니라 c/c++/python/fortran 지원 • Pros • 시간 및 비용 절약 • 프로젝트 표준 준수 용이 • 프로젝트 관리 용이 • Cons • 학습 소요 시간 높음 • 복잡한 IDE의 기능은 초보프로그래머에게 적합하지 않음 • 프로그램 성능이나 효율성과는 무관 No more printf
Conclusion • 중요한 것은 idea와 이를 효과적인 algorithm 으로 설계 • 설계한 algorithm을 구현하기 위해서는 • 기존 훌륭한 개발자/연구자들이 설계한 코드를 이용할 수 있어야 함 • 프로그래밍 언어는 하나의 도구일 뿐 자체가 중요한 개념은 아님 • 프로그램 작성 시간보다는 오류를 찾고 수정하는 시간이 훨씬 많이 걸림 • 따라서 이를 쉽고 잘 할 수 있는 도구를 선택하는 것도 중요
첨부 1) CASE : P.S.S. pairwise sequence alignment Profile Correlation Matrix
첨부 2) CASE : P.S.S. pairwise sequence alignment 1Z2U PsiPred result Secondary Structure Correlation Matrix DSSP CODE H = alpha helix B = residue in isolated beta-bridge E = extended strand, participates in beta ladder G = 3-helix (3/10 helix) I = 5 helix (pi helix) T = hydrogen bonded turn S = bend 2ESK DSSP result
첨부 3) CASE : P.S.S. pairwise sequence alignment Solvent Accessibility Correlation Matrix 1Z2U AccPro result 2ESK DSSP result