생명정보학 알고리즘 [파이썬으로 구현하는 생명정보학 알고리즘]
- 원서명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/AcornPublishing/bioinformatics-algorithms
요약
인간의 게놈 프로젝트가 완료된 후 세계 유수의 과학자들은 유전체 데이터를 활용해 개인 맞춤 유전체 의학의 시대를 열어가고 있다. 정밀의학의 기반은 데이터다. 대량의 데이터를 다루기 위해서 그 어느 때보다 알고리즘이 두각을 드러내고 있다. 이 책은 크게 세 가지의 카테고리로 나뉜다. 먼저 기본적인 파이썬과 분자생물학 배경지식을 다룬 후, 친절한 파이썬 스크립트와 함께 서열 분석 알고리즘을 다룬다. 마지막으로 그래프 기반의 고급 알고리즘을 다룬다. 각 장의 끝에는 연습 문제와 프로그래밍 프로젝트도 제공한다. 생명정보학을 더 깊게 이해하고 싶은 독자들에게 추천한다.
주요 특징
■ 컴퓨터 프로그래밍 관련 지식이 없는 학생도 이해할 수 있는 서술 방식
■ 저자들이 12년 이상 강의에 활용했던 교육 자료에 바탕을 둔 내용 구성
■ 다운로드할 수 있는 코드와 실행 가능한 예제 제공
이 책의 구성
이 책은 큰 주제에 따라 네 부분으로 나뉜다. 각 주제는 특정 주제를 다루는 각각의 장으로 구분된다.
첫 번째 부분은 1장에서 3장으로, 1장에서는 생명정보학 분야를 소개하고 관련 개념과 정의를 제공한다. 2장에서는 알고리즘과 파이썬(Python) 프로그래밍 언어의 기본적인 사항을 알아본다. 3장에서는 이 책에서 배우는 알고리즘을 이해하는 데 필요한 생물학적 배경 지식을 소개한다.
두 번째 부분에서는 서열 분석과 관련된 여러 가지 문제를 해결하고 알고리즘을 소개하며 파이썬 함수를 사용해 해결하는 프로그램을 작성한다. 생명정보학의 주된 과제인 기본적인 서열 처리 및 분석에 관련된 전사 및 번역(4장), 서열에서 패턴을 찾는 알고리즘(5장), 다중 서열 정렬 알고리즘(6장, 8장)을 다룬다. 7장에서는 데이터 베이스에서 호몰로지(homology) 서열을 검색하는 방법을 소개하고, 9장에서는 계통 발생학적 분석 알고리즘을 다루며, 10장과 11장에서는 결정론적, 확률적 알고리즘으로 생물학적 모티프를 찾는 방법을 살펴본다. 마지막으로 12장에서는 은닉 마르코프 모델을 생명정보학에 응용하는 방법을 배운다.
세 번째 부분에서는 차세대 서열 분석 데이터 분석을 위해 그래프 기반의 데이터 구조를 사용해 대규모 서열 분석을 수행하는 방법을 배운다. 이 부분은 데이터 구조와 알고리즘(13장)에 대한 소개를 시작으로 그래프(14장)를 사용해 생물학적 네트워크의 구축 및 탐색법을 다루고, NGS 데이터를 처리하는 알고리즘에 중점을 둔다. 15장에서는 리드(read)로 전체 게놈을 어셈블리하는 작업을 처리하고, 16장에서는 참조 게놈과 정렬해본다.
네 번째 부분에서는 유익한 생명정보학 책과 온라인 강좌 자료를 제공한다. 17장에서는 앞으로 생명정보학을 공부하는 데 도움이 될 만한 자료를 정리했다.
각 장의 끝부분에서는 연습 문제와 프로그래밍 프로젝트도 제공한다. 해당 연습 문제의 해답은 저자의 웹사이트에서 찾을 수 있다.
목차
목차
- 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 온라인 교육 자료