생물정보학을 위한 파이썬

도서명:생물정보학을 위한 파이썬
저자/출판사:켄 유엔스 클락/에이콘출판
쪽수:576쪽
출판일:2023-11-29
ISBN:9791161758022
목차
1부. Rosalind.info 챌린지
1장. 테트라뉴클레오타이드 빈도: 빈도수 계산
__시작하기
____new.py를 사용해 새 프로그램 만들기
____argparse 사용하기
____코드의 오류를 찾기 위한 개발 툴
____명명된 튜플 소개
____명명된 튜플에 타입 추가하기
____NamedTuple로 인수 표현하기
____커맨드 라인 또는 파일에서 입력값 읽기
____프로그램 테스트하기
____출력 테스트하기 위해 프로그램 실행하기
__솔루션
____솔루션 1: 문자열의 문자 반복과 계산
____뉴클레오타이드 계산하기
____솔루션 작성 및 검증
__추가적인 솔루션
____솔루션 2: count() 함수 생성과 단위 테스트 추가하기
____솔루션 3: str.count() 사용하기
____솔루션 4: 딕셔너리를 사용해 모든 문자 계산하기
____솔루션 5: 원하는 염기만 계산하기
____솔루션 6: collections.defaultdict() 사용하기
____솔루션 7: collections.Counter() 사용하기
__더 나아가기
__요점 정리
2장. DNA를 mRNA로 변환: 문자열 변경, 파일 읽기와 쓰기
__시작하기
____프로그램의 매개 변수 정의
____선택적 매개 변수 정의
____하나 이상의 필수 위치 매개 변수 정의하기
____nargs를 사용해 인수의 수 정의하기
____argparse.FileType()을 사용해 파일 인수의 유효성 검사하기
____Args 클래스 정의하기
____의사 코드를 사용한 프로그램 개요
____입력 파일 반복
____출력 파일 이름 생성하기
____출력 파일 열기
____출력 염기 서열 쓰기
____상태 보고서 출력하기
____테스트 모음 사용하기
__솔루션
____솔루션 1: str.replace() 사용하기
____솔루션 2: re.sub() 사용하기
__벤치마킹하기
__더 나아가기
__요점 정리
3장. DNA 역상보체: 문자열 조작
__시작하기
____역문자열을 반복하기
____의사결정 트리 만들기
____리팩토링하기
__솔루션
____솔루션 1: for 루프와 의사결정 트리 사용하기
____솔루션 2: 딕셔너리 검색 사용하기
____솔루션 3: 리스트 컴프리헨션 사용하기
____솔루션 4: str.translate() 사용하기
____솔루션 5: Bio.Seq 사용하기
__요점 정리
4장. 피보나치 수열 만들기: 알고리듬 작성, 테스트, 벤치마킹하기
__시작하기
__명령적 접근법
__솔루션
____솔루션 1: 리스트를 스택으로 사용하는 명령적 솔루션
____솔루션 2: 생성자 함수 만들기
____솔루션 3: 재귀 및 메모이제이션 사용하기
__솔루션 벤치마킹하기
__좋은 테스트, 나쁜 테스트, 못생긴 테스트
__모든 솔루션에서 테스트 모음집 실행하기
__더 나아가기
__요점 정리
5장. GC 함량 계산하기: FASTA 파싱하고 염기 서열 분석하기
__시작하기
____바이오파이썬을 사용해 FASTA 구문 분석하기
____루프를 사용해 염기 서열 반복하기
__솔루션
____솔루션 1: 리스트 사용하기
____솔루션 2: 타입 주석과 단위 테스트
____솔루션 3: 실행 중인 최대 변수 유지하기
____솔루션 4: 리스트 컴프리헨션인 Guard를 사용하기
____솔루션 5: filter() 함수 사용하기
____솔루션 6: map() 함수와 합산 부울 사용하기
____솔루션 7: 정규식을 사용해서 패턴 찾기
____솔루션 8: 더 복잡한 find_gc() 함수
__벤치마킹하기
__더 나아가기
__요점 정리
6장. 해밍 거리 찾기: 점 돌연변이 계산하기
__시작하기
____두 문자열의 문자 반복
__솔루션
____솔루션 1: 반복과 계산
____솔루션 2: 단위 테스트 작성하기
____솔루션 3: zip() 함수 사용하기
____솔루션 4: zip_longest() 함수 사용하기
____솔루션 5: 리스트 컴프리헨션 사용하기
____솔루션 6: filter() 함수 사용하기
____솔루션 7: zip_longest()와 map() 함수 사용하기
____솔루션 8: starmap() 함수와 operator.ne() 함수 사용하기
__더 나아가기
__요점 정리
7장. mRNA를 단백질로 변환하기: 더 많은 함수형 프로그래밍
__시작하기
____K-mer와 코돈
____코돈 번역
__솔루션
____솔루션 1: for 루프 사용하기
____솔루션 2: 단위 테스트 추가하기
____솔루션 3: 또 다른 함수와 리스트 컴프리헨션
____솔루션 4: map(), partial(), takewhile() 함수를 사용한 함수형 프로그래밍
____솔루션 5: Bio.Seq.translate() 사용하기
__벤치마킹하기
__더 나아가기
__요점 정리
8장. DNA에서 모티프 찾기: 염기 서열 유사성 탐색하기
__시작하기
____부분 염기 서열 찾기
__솔루션
____솔루션 1: str.find() 메서드 사용하기
____솔루션 2: str.index() 메서드 사용하기
____솔루션 3: 순수한 기능적 접근 방식
____솔루션 4: k-mer 사용하기
____솔루션 5: 정규식을 사용해 겹치는 패턴 찾기
__벤치마킹하기
__더 나아가기
__요점 정리
9장. 중첩 그래프: 공유 K-mer를 사용한 염기 서열 조립
__시작하기
____STDOUT, STDERR, 로깅을 사용한 런타임 메시지 관리하기
____중첩 찾기
____중첩된 염기 서열 그룹화하기
__솔루션
____솔루션 1: 교차로 설정을 사용해 중복 찾기
____솔루션 2: 그래프를 사용해서 모든 경로 찾기
__더 나아가기
__요점 정리
10장. 가장 긴 공유 부분 염기 서열 찾기: k-mer 찾기, 함수 작성, 이진 탐색 사용
__시작하기
____FASTA 파일에서 가장 짧은 염기 서열 찾기
____염기 서열에서 k-mer 추출하기
__솔루션
____솔루션 1: k-mer의 빈도수 세기
____솔루션 2: 이진 탐색으로 속도 향상시키기
__더 나아가기
__요점 정리
11장. 단백질 모티프 찾기: 데이터 가져오기 및 정규식 사용하기
__시작하기
____커맨드 라인에서 염기 서열 파일 다운로드
____파이썬으로 염기 서열 파일 다운로드하기
____모티프를 찾기 위한 정규 표현식 작성하기
__솔루션
____솔루션 1: 정규식 사용
____솔루션 2: 수동 솔루션 작성하기
__더 나아가기
__요점 정리
12장. 단백질에서 mRNA 유추하기: 리스트의 곱셈과 리스트 줄이기
__시작하기
____리스트의 곱 만들기
____나머지 연산 곱셈으로 오버플로 방지하기
__솔루션
____솔루션 1: RNA 코돈 테이블 딕셔너리 사용하기
____솔루션 2: 비트 전환
____솔루션 3: 최소 정보 인코딩하기
__더 나아가기
__요점 정리
13장. 위치 제한 부위: 코드 사용, 코드 테스트, 코드 공유
__시작하기
____k-mer를 사용한 모든 부분 염기 서열 찾기
____모든 역상보체 찾기
____모든 것을 합치기
__솔루션
____솔루션 1: zip()과 enumerate() 함수 사용하기
____솔루션 2: operator.eq() 함수를 사용하기
____솔루션 3: revp() 함수 작성하기
__프로그램 테스트하기
__더 나아가기
__요점 정리
14장. 열린 번역 프레임 찾기
__시작하기
____각 프레임 내부의 단백질 번역
____단백질 서열에서 ORF 찾기
__솔루션
____솔루션 1: str.index() 함수 사용하기
____솔루션 2: str.partition() 함수 사용하기
____솔루션 3: 정규식 사용하기
__더 나아가기
__요점 정리
2부. 다른 프로그램
15장. Seqmagique: 보고서 생성과 형식 지정
__Seqmagick을 사용해서 염기 서열 파일 분석하기
__MD5 해시를 사용해서 파일 확인하기
__시작하기
____tabulate()를 사용해서 텍스트 테이블 서식 지정하기
__솔루션
____솔루션 1: tabulate()로 형식 지정하기
____솔루션 2: rich로 형식 지정하기
__더 나아가기
__요점 정리
16장. FASTX grep: 염기 서열을 선택하기 위한 유틸리티 프로그램 만들기
__grep을 사용해서 파일에서 줄 찾기
__FASTQ 레코드의 구조
__시작하기
____파일 형식 추측하기
__솔루션
____파일 확장명에서 파일 형식 추측하기
____계획이 함께 올 때가 좋다
____정규식 검색 플래그 결합하기
____부울 값 줄이기
__더 나아가기
__요점 정리
17장. DNA 합성기: 마르코프 체인으로 합성 데이터 생성하기
__마르코프 체인의 이해
__시작하기
____무작위 시드 이해하기
____훈련 파일 읽기
____염기 서열 생성하기
____프로그램 구조화
__솔루션
__더 나아가기
__요점 정리
18장. FASTX 샘플러: 염기 서열 파일 무작위 서브샘플링
__시작하기
____프로그램 매개 변수 검토하기
____매개 변수 정의하기
____비결정적 샘플링하기
____프로그램 구성하기
__솔루션
____솔루션 1: 일반 파일 읽기
____솔루션 2: 많은 압축 파일 읽기
__더 나아가기
__요점 정리
19장. Blastomatic: 구분된 텍스트 파일 구문 분석
__BLAST 소개
__csvkit과 csvchk 사용하기
__시작하기
____인수 정의
____csv 모듈을 사용해서 구분된 텍스트 파일 구문 분석
____pandas 모듈을 사용해서 구분된 텍스트 파일 구문 분석
__솔루션
____솔루션 1: 딕셔너리를 사용해서 수동으로 테이블 조인하기
____솔루션 2: csv.DictWriter()를 사용해서 출력 파일 쓰기
____솔루션 3: pandas를 사용해서 파일 읽기와 쓰기
____솔루션 4: pandas를 사용해서 파일 조인하기
__더 나아가기
__요점 정리
부록 A. make를 사용해서 명령 문서화와 워크플로 생성하기
부록 B. $PATH 이해하고 커맨드 라인 프로그램 설치하기