Top

생명정보학 알고리즘 [파이썬으로 구현하는 생명정보학 알고리즘]

  • 원서명Bioinformatics Algorithms: Design and Implementation in Python (ISBN 9780128125205)
  • 지은이미겔 로샤(Miguel Rocha), 페드로 페헤이라(Pedro G. Ferreira)
  • 옮긴이한주현, 김태윤
  • ISBN : 9791161754765
  • 40,000원
  • 2020년 10월 29일 펴냄
  • 페이퍼백 | 424쪽 | 188*235mm
  • 시리즈 : 데이터 과학

책 소개

연습 문제와 프로그래밍 프로젝트는 여기에서 내려 받으실 수 있습니다.
https://github.com/miguelfrocha/BioinformaticsAlgorithmsBook

요약

인간의 게놈 프로젝트가 완료된 후 세계 유수의 과학자들은 유전체 데이터를 활용해 개인 맞춤 유전체 의학의 시대를 열어가고 있다. 정밀의학의 기반은 데이터다. 대량의 데이터를 다루기 위해서 그 어느 때보다 알고리즘이 두각을 드러내고 있다. 이 책은 크게 세 가지의 카테고리로 나뉜다. 먼저 기본적인 파이썬과 분자생물학 배경지식을 다룬 후, 친절한 파이썬 스크립트와 함께 서열 분석 알고리즘을 다룬다. 마지막으로 그래프 기반의 고급 알고리즘을 다룬다. 각 장의 끝에는 연습 문제와 프로그래밍 프로젝트도 제공한다. 생명정보학을 더 깊게 이해하고 싶은 독자들에게 추천한다.

주요 특징

■ 컴퓨터 프로그래밍 관련 지식이 없는 학생도 이해할 수 있는 서술 방식
■ 저자들이 12년 이상 강의에 활용했던 교육 자료에 바탕을 둔 내용 구성
■ 다운로드할 수 있는 코드와 실행 가능한 예제 제공

이 책의 구성

이 책은 큰 주제에 따라 네 부분으로 나뉜다. 각 주제는 특정 주제를 다루는 각각의 장으로 구분된다.
첫 번째 부분은 1장에서 3장으로, 1장에서는 생명정보학 분야를 소개하고 관련 개념과 정의를 제공한다. 2장에서는 알고리즘과 파이썬(Python) 프로그래밍 언어의 기본적인 사항을 알아본다. 3장에서는 이 책에서 배우는 알고리즘을 이해하는 데 필요한 생물학적 배경 지식을 소개한다.
두 번째 부분에서는 서열 분석과 관련된 여러 가지 문제를 해결하고 알고리즘을 소개하며 파이썬 함수를 사용해 해결하는 프로그램을 작성한다. 생명정보학의 주된 과제인 기본적인 서열 처리 및 분석에 관련된 전사 및 번역(4장), 서열에서 패턴을 찾는 알고리즘(5장), 다중 서열 정렬 알고리즘(6장, 8장)을 다룬다. 7장에서는 데이터 베이스에서 호몰로지(homology) 서열을 검색하는 방법을 소개하고, 9장에서는 계통 발생학적 분석 알고리즘을 다루며, 10장과 11장에서는 결정론적, 확률적 알고리즘으로 생물학적 모티프를 찾는 방법을 살펴본다. 마지막으로 12장에서는 은닉 마르코프 모델을 생명정보학에 응용하는 방법을 배운다.
세 번째 부분에서는 차세대 서열 분석 데이터 분석을 위해 그래프 기반의 데이터 구조를 사용해 대규모 서열 분석을 수행하는 방법을 배운다. 이 부분은 데이터 구조와 알고리즘(13장)에 대한 소개를 시작으로 그래프(14장)를 사용해 생물학적 네트워크의 구축 및 탐색법을 다루고, NGS 데이터를 처리하는 알고리즘에 중점을 둔다. 15장에서는 리드(read)로 전체 게놈을 어셈블리하는 작업을 처리하고, 16장에서는 참조 게놈과 정렬해본다.
네 번째 부분에서는 유익한 생명정보학 책과 온라인 강좌 자료를 제공한다. 17장에서는 앞으로 생명정보학을 공부하는 데 도움이 될 만한 자료를 정리했다.
각 장의 끝부분에서는 연습 문제와 프로그래밍 프로젝트도 제공한다. 해당 연습 문제의 해답은 저자의 웹사이트에서 찾을 수 있다.

저자/역자 소개

지은이의 말

지난 수십 년 동안 생명공학 및 생물의학 분야에서 이뤄진 중요한 발견은 모두 실험 기술의 발전 덕분이다. 논란의 여지는 있지만, 가장 잘 알려진 예는 1990년대에 있었던 간 게놈 프로젝트(Human Genome Project)다. 게놈 프로젝트가 성공할 수 있었던 것은 40년간 이어진 서열 분석 기술의 발전 덕분이다.
또한 세포에서 유전자 발현, 단백질 또는 화합물 농도를 측정하기 위해 개발된 고처리량(high-throughput) 분석 기술은 생물의학적 연구에서 실질적인 혁명을 일으켰다. 이런 모든 기술은 현재 생명과학 분야의 건강 관리, 생명공학 및 관련 분야에 많은 데이터를 생성해 연구를 장려하고 새로운 기술 개발을 촉진하고 있다.
그중 대표적인 두 가지 예시로 맞춤형 의학과 생명 공학 산업의 발전을 들 수 있다.
첫 번째로 정밀 의학이 발전함에 따라 환자 개인의 특성을 고려한 맞춤 치료가 가능해졌다. 정밀 의학은 특정 환자에 대한 게놈, 후성유전학(epigenomic), 유전자 발현과 기타 형의 데이터를 이용해 특정 질병에 대한 환자의 위험성을 판단하거나 게놈, 후성유전학의 패턴을 사용해 차별화된 치료를 할 수 있게 해줬다. 또한 유전자 발현 데이터를 기반으로 정확한 진단 및 치료법을 찾을 수 있다. 데이비드 캐머런(David Cameron) 영국 총리가 2012년에 시작한 10만 건의 게놈 프로젝트(https://www.genomicsengland.co.uk/the-100000-genomes-project), 2015년에 버락 오바마 미국 대통령이 발표했던 정밀 의학의 출범과 유사한 프로젝트들이 향후 몇 년 동안 계속 등장할 것이다.
최근 암 연구에도 서열 분석법으로 큰 진전이 이뤄졌다. 게놈 데이터 커먼즈(https://gdc.cancer.gov) 또는 국제 암 게놈 컨소시엄(ICGC, http://icgc.org/)과 같은 프로젝트들이 암을 일으키는 돌연변이에 대한 포괄적 종양의 정보를 모은 데이터베이스를 만들고 있다.
국제 컨소시엄의 주도하에 처리량이 많은 분석 기술은 전례 없는 규모로 데이터를 생성하고 있으며, 나아가 분자생물학에 대한 관점을 바꾸고 있다. 그중 주목할 만한 것은 다음과 같다. 먼저 1,000명의 게놈 프로젝트(www.internationalgenome.org/)와 같이 전 세계 인구에 걸친 인간 유전자 변이를 조사하는 프로젝트다. DNA 요소 백과 사전(ENCODE, https://www.encodeproject.org/)은 기능이 알려진 인간 게놈의 요소들로 지도를 만들고 있다. 후성유전학 지도(http://www.roadmapepigenomics.org/)는 주요 인간 조직 및 세포의 후생적인 유전자형 발현에 대한 프로젝트다. 유전자형 조직 발현 프로젝트(GTEx, https://www.gtexportal.org/)는 50개 이상의 인간 조직으로부터의 유전자 발현 및 정량적 특성을 조사한다.
두 번째로 대사 공학은 바이오 연료, 플라스틱, 제약, 식품, 식품 성분과 기타 중요한 화합물을 생산하기 위해 산업 생명공학 공정에 사용되는 특정 미생물 품종과 관련돼 있다. 숙주 미생물을 개선하는 데 사용되는 전략에는 유전자 결실(deletion) 또는 불활성화(inactivation), 관련 유전자 과발현(overexpression), 외부 유전자 도입 또는 효소 공학을 통한 경쟁 경로(pathway) 차단이 포함된다.
두 가지 경우 모두 사용 가능한 데이터의 양이 크게 늘어났으며, 동시에 과학 발전과 기술 개발을 위한 새로운 길을 열었다. 그러나 이로 인해 복잡하고 많은 양의 데이터를 관리하고 분석하는 데 상당한 어려움이 발생했다. 생물학적 연구는 여러 측면에서 매우 데이터 지향적이 됐으며, 새로운 지식을 생성하려면 방대한 양의 데이터를 처리할 수 있는 능력이 필요하다. 플로리안 마르코베츠(Florian Markowetz)가 “모든 생물학은 전산생물학이다.”라고 말했듯이 데이터 처리 및 분석을 해결하기 위해 정교한 계산 도구를 개발하는 것은 필수불가결하다.
이 책은 컴퓨터를 사용해 생물학적 데이터를 처리하고 원시(raw) 데이터에서 새로운 지식을 발굴하는 것을 목표로 하는 생명정보학을 다룬다.

지은이 소개

미겔 로샤(Miguel Rocha)

포르투갈 민호대학교(University of Minho)의 부교수로, 정보학과(Informatics Department)에서 강의하며 생명공학 센터 선임 연구원으로 근무하고 있다. 2007년부터 생명정보학 알고리즘 및 도구, 데이터 분석, 머신러닝 관련 과목을 가르쳐왔으며 생명정보학 석사 프로그램의 책임자다. 주 연구 분야는 대사 모델링과 오믹스 데이터 분석(omics data analysis)을 위한 도구와 알고리즘의 개발이다.

페드로 페헤이라(Pedro G. Ferreira)

스타트업 회사인 i3S(포르투갈)의 연구원이다. 컴퓨터 생물학에 관한 연구를 맡고 있으며, 특히 암 유전체학과 인구 유전체학 분야에 집중하고 있다. 여러 연구 그룹과 협력해서 ICGCCLL, GEUVADIS, GTEx 등과 같은 다양한 국제 컨소시엄에 참여했으며, 유전체학 스타트업 환경에서 풍부한 생명정보학 관련 지식을 쌓으면서 데이터 해석을 위한 시스템의 개발을 경험했다.

옮긴이의 말

바야흐로 ‘바이오의 시대’다. 2019년 말에 발생한 COVID-19는 전 세계를 강타했으며, 전염성이 강한 바이러스의 특성으로 인해 속수무책으로 감염자가 증가했다. 팬데믹(pandemic)이 돼버린 시대에 세계의 과학자들은 2003년 인간 게놈 프로젝트가 완료된 이후 탄탄하게 쌓아왔던 생명정보학 기술력을 바탕으로 앞다퉈서 바이러스의 전적 비밀을 밝혀내고 있다. 이러한 생명정보학 분석 기술의 원천이 되는 것이 바로 알고리즘이다.
이 책은 기본적인 파이썬 문법과 분자 생물학의 기초를 소개하는 것으로 시작해 단순한 서열을 다루는 알고리즘에서 그래프 알고리즘과 같은 고급 알고리즘까지 다룬다. 각 장마다 친절히 파이썬 스크립트를 제시할 뿐 아니라 깨알 같은 연습 문제로 알고리즘을 학습할 수 있게 해주는 점은 이 책의 큰 장점이다. 특히 각 장의 내용에 맞게 바이오 파이썬 라이브러리를 활용해 알고리즘을 설명했다는 점도 흥미롭다. 이 책이 생명정보학을 더 깊게 이해하고자 하는 독자들에게 도움이 되길 바란다.

옮긴이 소개

한주현

마크로젠 데이터분석부에서 근무했으며, 현재는 희귀질환 진단 솔루션 서비스를 제공하는 쓰리빌리언에서 생명정보학 엔지니어로 근무하고 있다. 공역서로 『니콜라스 볼커 이야기』(MID, 2016)가 있고, 저서로는 『바이오파이썬으로 만나는 생물정보학』(비제이퍼블릭, 2019)이 있다. ‘포스트게놈 다부처 유전체사업’ 유전체 분석 예비전문가 과정에서 파이썬 프로그래밍을 강의하고 있으며, ‘생물정보학자의 블로그’(https://korbillgates.tistory.com)를 운영하면서 온라인과 오프라인에서 생명정보학을 알리고자 노력 중이다.

김태윤

제약회사 연구소에서 연구원으로 근무하고 있으며, 생물학 실험과 프로그래밍에 관심이 많은 자칭 바이오해커다. 다양한 과정에서 얻은 경험을 공유하는 블로그(https://partrita.github.io)를 운영하고 있다. 최근에는 신약 개발에서 빅데이터, 머신러닝 등과 같은 다양한 분석 기술을 응용하고자 노력하고 있다. 그리고 언젠가 사이언스 판타지 소설을 써보고 싶다는 꿈을 갖고 있다.

목차

목차
  • 1장. 서문
  • 1.1 들어가며
  • 1.2 생명정보학이란?
  • 1.3 책의 구성

  • 2장. 파이썬 소개
  • 2.1 파이썬의 특징
  • 2.2 변수와 미리 정의된 함수
  • 2.3 파이썬 코드 작성하기
  • 2.4 파이썬 프로그램 개발
  • 2.5 객체지향 프로그래밍
  • 2.6 사전 정의된 클래스 및 메서드
  • 참고 문헌과 추가 자료
  • 연습 문제와 프로그래밍 프로젝트

  • 3장. 세포 및 분자생물학의 기초
  • 3.1 세포: 생명의 기본 단위
  • 3.2 유전자 정보: 핵산
  • 3.3 유전자: 유전 정보의 이산 단위
  • 3.4 인간 유전체
  • 3.5 생물 자원 및 데이터베이스
  • 참고 문헌과 추가 자료
  • 연습 문제

  • 4장. 생물학적 서열의 기본적 처리
  • 4.1 생물학적 서열: 표현과 기본 알고리즘
  • 4.2 전사와 역상보
  • 4.3 번역
  • 4.4 가능성 있는 유전자 찾기: 오픈 리딩 프레임
  • 4.5 하나로 합체
  • 4.6 생물학 서열의 클래스
  • 4.7 바이오파이썬으로 서열 처리
  • 4.8 바이오파이썬의 서열 주석 객체
  • 연습 문제와 프로그래밍 프로젝트

  • 5장. 서열 데이터에서 패턴 찾기
  • 5.1 소개: 생명정보학에서 패턴 찾기의 중요성
  • 5.2 고정된 패턴을 찾는 단순한 알고리즘
  • 5.3 휴리스틱 알고리즘: 보이어-무어
  • 5.4 결정적 유한 오토마타
  • 5.5 정규표현식으로 유연한 패턴 찾기
  • 참고 문헌과 추가 자료
  • 연습 문제와 프로그래밍 프로젝트

  • 6장. 쌍 서열 정렬
  • 6.1 소개: 서열 비교와 서열 정렬
  • 6.2 시각화 정렬: 점 도표
  • 6.3 서열 정렬의 최적화 문제
  • 6.4 전역 정렬을 위한 동적 프로그래밍 알고리즘
  • 6.5 지역 정렬을 위한 동적 프로그래밍 알고리즘
  • 6.6 서열 정렬의 특별한 경우
  • 6.7 바이오파이썬을 활용한 쌍 서열 정렬
  • 참고 문헌과 추가 자료
  • 연습 문제와 프로그래밍 프로젝트

  • 7장. 데이터베이스에서 유사한 서열 찾기
  • 7.1 소개
  • 7.2 BLAST 알고리즘과 프로그램
  • 7.3 구현한 BLAST 이식
  • 7.4 바이오파이썬을 통한 BLAST 사용
  • 참고 문헌과 추가 자료
  • 연습 문제와 프로그래밍 프로젝트

  • 8장. 다중 서열 정렬
  • 8.1 소개: 문제 정의와 복잡도
  • 8.2 다중 서열 정렬의 알고리즘 최적화 클래스
  • 8.3 점진적 정렬을 파이썬에서 구현
  • 8.4 바이오파이썬으로 정렬 다루기
  • 참고 문헌과 추가 자료
  • 연습 문제와 프로그래밍 프로젝트

  • 9장. 계통학 분석
  • 9.1 소개: 문제 정의 및 연관성
  • 9.2 계통학적 분석을 위한 알고리즘 클래스
  • 9.3 파이썬으로 거리 기반 알고리즘 구현
  • 9.4 계통학 분석을 위한 바이오파이썬
  • 참고 문헌과 추가 자료
  • 연습 문제와 프로그래밍 프로젝트

  • 10장. 모티프 발견 알고리즘
  • 10.1 소개: 문제 정의와 관련성
  • 10.2 브루트 포스 알고리즘: 완전 탐색
  • 10.3 분기 및 경계 알고리즘
  • 10.4 휴리스틱 알고리즘
  • 참고 문헌과 추가 자료
  • 연습 문제와 프로그래밍 프로젝트

  • 11장. 확률적 모티프와 알고리즘
  • 11.1 확률 모티프 표현 및 검색
  • 11.2 확률 알고리즘: 기댓값 최대화
  • 11.3 모티프 발견을 위한 깁스 샘플링
  • 11.4 바이오파이썬의 확률 모티프
  • 참고 문헌과 추가 자료
  • 연습 문제와 프로그래밍 프로젝트

  • 12장. 은닉 마르코프 모델
  • 12.1 소개: 은닉 마르코프 모델이란 무엇인가?
  • 12.2 파이썬으로 알고리즘 구현
  • 12.3 데이터베이스 검색을 위한 은닉 마르코프 모델
  • 참고 문헌과 추가 자료
  • 연습 문제와 프로그래밍 프로젝트

  • 13장. 그래프: 개념과 알고리즘
  • 13.1 그래프: 정의와 표현
  • 13.2 파이썬 클래스 그래프
  • 13.3 인접 노드와 차수
  • 13.4 경로, 탐색, 거리
  • 13.5 사이클
  • 참고 문헌과 추가 자료
  • 연습 문제와 프로그래밍 프로젝트

  • 14장. 그래프와 생물학적 네트워크
  • 14.1 소개
  • 14.2 네트워크를 그래프로 표현
  • 14.3 네트워크 위상 분석
  • 14.4 대사작용 가능성 평가
  • 참고 문헌과 추가 자료
  • 연습 문제와 프로그래밍 프로젝트

  • 15장. 게놈으로 리드 어셈블리: 그래프 기반 알고리즘
  • 15.1 게놈 어셈블리 소개 및 관련한 도전들
  • 15.2 오버랩 그래프와 해밀턴 사이클
  • 15.3 드브루인 그래프와 오일러 경로
  • 15.4 실제 게놈 어셈블리
  • 참고 문헌과 추가 자료
  • 연습 문제와 프로그래밍 프로젝트

  • 16장. 참조 유전자 서열에 리드 어셈블리
  • 16.1 소개: 서열 일치 문제의 정의와 응용법
  • 16.2 패턴 전처리: 트라이
  • 16.3 서열의 전처리: 접미사 트리
  • 16.4 버로우즈 휠러 변환
  • 참고 문헌과 추가 자료
  • 연습 문제와 프로그래밍 프로젝트

  • 17장. 더 읽을거리
  • 17.1 추천하는 생명정보학 서적
  • 17.2 논문 및 학회
  • 17.3 정규 교육 과정
  • 17.4 온라인 교육 자료

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안