어디에서나 쓰일 수 있는 API의 개념과 python의 requests 모듈,
바이오 도메인에서 많이 쓰이는 NCBI E-utilities와 Biopython,
Python을 활용해 데이터 및 AI 프로젝트를 하게 되면서 많이 접하게 되는 Pydantic과
LLM을 편리하게 이용할 수 있게 해주는 Huggingface까지,
AI와 바이오 분야에 관심 있는 분들을 위한 패키지들을 총망라한 과정입니다.
이 저장소는 GitHub Codespaces에서 바로 실행할 수 있도록 구성되어 있습니다.
환경 구성 내용:
- uv 패키지 매니저를 사용한 환경 설정
- Python 개발에 필요한 VS Code 확장
- Jupyter Lab 및 노트북 지원
- 생물정보학 라이브러리 포함
파일: Classes_and_Objects/21_classes_and_objects.md
Python 객체지향 프로그래밍의 핵심 개념을 다룹니다:
- 클래스 정의와 객체 생성
- 속성과 메서드
- 상속, 캡슐화, 다형성
- 특수 메서드 (
__init__,__str__,__repr__) - 클래스 변수 vs 인스턴스 변수
- 정적 메서드와 클래스 메서드
- 프로퍼티와 게터/세터
파일: API/API.md
Python으로 API를 다루는 방법을 학습합니다:
- HTTP 요청의 기본 개념 (GET, POST, PUT, DELETE)
- requests 라이브러리 사용법
- JSON 데이터 처리
- 인증과 헤더 관리
- 에러 처리와 재시도 로직
- REST API 설계 원칙
파일: Pydantic/1_pydantic_practice.ipynb, Pydantic/2_huggingface_practice.ipynb
현대적인 데이터 검증과 파싱을 학습합니다:
1_pydantic_practice.ipynb:
- BaseModel을 사용한 데이터 모델 정의
- 타입 힌트와 자동 검증
- Field를 사용한 제약 조건 설정
- 중첩된 모델과 복잡한 데이터 구조
- 커스텀 검증기 작성
- JSON 직렬화/역직렬화
- 생물정보학 데이터 모델링 실습 (RNA-seq 데이터)
2_huggingface_practice.ipynb:
- HuggingFace API와 Pydantic 통합
- 머신러닝 모델 응답 데이터 검증
- API 응답 구조화
파일: API/1_NCBI_Eutilities_HandsOn.ipynb
HTTP 요청을 통한 NCBI 데이터베이스 직접 접근:
- E-utilities API 엔드포인트
- requests 라이브러리를 사용한 HTTP 요청
- XML 및 JSON 형태의 응답 처리
- 검색 쿼리 최적화
파일: API/2_Biopython_HandsOn.ipynb
Biopython의 Entrez 모듈을 사용한 생물의학 데이터 수집:
- NCBI E-utilities API 개요
- Bio.Entrez 모듈 설정 (이메일, API 키)
- einfo: 데이터베이스 메타데이터 조회
- esearch: 검색어로 ID 목록 획득
- efetch: 상세 레코드 가져오기
- PubMed, PMC, ClinVar 데이터베이스 활용
- XML 응답 파싱과 데이터 구조화
- 대용량 데이터셋 생성 실습
- 브라우저에서 바로 실행 가능
- 모든 의존성 자동 설치
- uv 패키지 매니저로 환경 구성
# uv 설치
curl -LsSf https://astral.sh/uv/install.sh | sh
# 가상환경 생성 및 의존성 설치
uv venv
source .venv/bin/activate # Linux/Mac
# 또는 .venv\Scripts\activate # Windows
uv pip install -r requirements.txt핵심 라이브러리:
- huggingface: LLM 이용
- pydantic: 데이터 검증
생물정보학:
- biopython: 생물학적 데이터 처리
웹/API:
- requests: HTTP 요청
- httpx: 비동기 HTTP 클라이언트
- python-dotenv: 환경변수 관리
개발 도구:
- jupyter: 노트북 환경
- Python 기초 지식 (변수, 데이터 타입, 제어문)
- Python 3.12 이상
- 명령줄 기본 사용법
NCBI E-utilities 사용을 위한 환경변수 설정:
# .env 파일 생성
EUTILS_EMAIL=your.email@example.com
EUTILS_API_KEY=your_ncbi_api_key_here # 선택사항
EUTILS_TOOL=python-bioinformatics-course