Python 커맨드 라인 인자 받기 — sys.argv & argparse
·
BI&Programming-Tools/Python
스크립트를 실행할 때 터미널에서 직접 값을 넘겨주는 방법입니다.생물정보학에서는 입력 파일 경로, 파라미터 값 등을 스크립트에 넘길 때 자주 씁니다.python script.py input.fastq --threshold 30 --output result.txtsys.argv기본 개념sys.argv는 커맨드 라인 인자를 문자열 리스트로 받아옵니다.sys.argv[0] : 스크립트 파일명 자체입니다.sys.argv[1] 부터 : 실제 넘긴 인자입니다.import sysprint(sys.argv)python script.py hello 42# ['script.py', 'hello', '42']사용 예시import sysinput_file = sys.argv[1]output_file = sys.argv[2]pr..
[파이썬 기초] 차원 축소 (PCA, UMAP)
·
BI&Programming-Tools/Python
차원 축소는 특성(변수)이 많은 고차원 데이터를 더 적은 차원으로 줄이는 기법입니다. 시각화, 노이즈 제거, 연산량 감소에 사용되며,생물정보학에서는 유전자 발현 데이터나 단일 세포 데이터처럼 특성 수가 매우 많은 데이터를 다룰 때 자주 사용됩니다.pip install scikit-learn umap-learn 왜 차원 축소가 필요한지RNA-seq 발현량 데이터는 보통 수천~수만 개의 유전자(특성)를 가집니다.이런 고차원 데이터를 그대로 시각화하거나 분석하기는 어렵습니다.사람은 2~3차원까지만 직관적으로 시각화할 수 있음특성 수가 많을수록 차원의 저주(curse of dimensionality)로 거리 기반 분석이 왜곡됨많은 특성이 서로 상관되어 있어 정보가 중복됨차원 축소는 데이터의 핵심 구조와 패턴을 ..
[파이썬 기초] 데이터 전처리 심화 (결측값, 이상값, 정규화, 인코딩)
·
BI&Programming-Tools/Python
실제 데이터는 결측값, 이상값, 다양한 척도와 범주형 변수가 혼재합니다.머신러닝 모델은 이런 데이터를 그대로 받아들이지 못하는 경우가 많아, 전처리가 분석 품질을 좌우하는 핵심 단계가 됩니다.pip install numpy pandas scikit-learn결측값 처리결측값 확인import pandas as pdimport numpy as npdf = pd.DataFrame({ "sample_id": ["s01", "s02", "s03", "s04", "s05"], "coverage": [30.5, np.nan, 22.1, np.nan, 45.8], "gc_content":[0.51, 0.49, np.nan, 0.52, 0.48], "species": ["Homo sapiens..
[파이썬 기초] scikit-learn 기초 (분류, 회귀, 클러스터링)
·
BI&Programming-Tools/Python
scikit-learn은 파이썬 머신러닝의 표준 라이브러리입니다.분류, 회귀, 클러스터링, 차원 축소, 전처리, 모델 평가까지 일관된 API로 제공합니다.생물정보학에서는 유전자 발현 데이터 분류, 변이 우선순위 지정, 샘플 클러스터링 등에 활용됩니다.pip install scikit-learnscikit-learn의 공통 API 구조scikit-learn의 모든 모델은 동일한 인터페이스를 따릅니다.from sklearn.모듈 import 모델클래스model = 모델클래스(하이퍼파라미터) # 모델 생성model.fit(X_train, y_train) # 학습y_pred = model.predict(X_test) # 예측score = model.score(X_test, y_..
[파이썬 기초] argparse로 커맨드라인 도구 만들기
·
BI&Programming-Tools/Python
분석 스크립트를 작성할 때 파일 경로나 파라미터를 코드 안에 직접 하드코딩하면, 값을 바꿀 때마다 코드를 수정해야 합니다.argparse는 커맨드라인 인자를 파싱하는 파이썬 표준 라이브러리로, 스크립트를 유연하고 재사용 가능한 도구로 만들어줍니다.자동화 파이프라인에서도 필수적으로 사용됩니다.기본 사용법import argparseparser = argparse.ArgumentParser(description="샘플 분석 도구")# 인자 추가parser.add_argument("input", help="입력 파일 경로")parser.add_argument("output", help="출력 파일 경로")args = parser.parse_args()print(f"입력: {args.input}")print(f"..
[파이썬 기초] 통계 기초 (scipy)
·
BI&Programming-Tools/Python
SciPy는 과학 계산을 위한 파이썬 라이브러리입니다.그 중 scipy.stats 모듈은 통계 검정, 확률 분포, 상관 분석 등을 제공합니다.생물정보학에서는 발현량 차이 검정, p-value 계산, 다중 검정 보정 등에 자주 사용합니다.pip install scipy기술 통계분포의 기본적인 특성을 수치로 요약합니다.import numpy as npfrom scipy import statsnp.random.seed(42)coverage = np.random.normal(30, 8, 100)# 기본 기술 통계print(coverage.mean()) # 평균print(np.median(coverage)) # 중앙값print(coverage.std()) # 표준편차print(coverage..
[파이썬 기초] Matplotlib / Seaborn 시각화
·
BI&Programming-Tools/Python
데이터 분석에서 시각화는 데이터의 분포와 패턴을 직관적으로 파악하는 데 필수적입니다.Matplotlib은 파이썬 시각화의 기반 라이브러리이고, Seaborn은 Matplotlib을 기반으로 통계 시각화에 특화된 고수준 라이브러리입니다.pip install matplotlib seabornMatplotlib 기초Figure와 AxesMatplotlib의 구조를 이해하는 것이 먼저입니다.Figure: 전체 그림 영역 (캔버스)Axes: Figure 안의 실제 그래프가 그려지는 영역import matplotlib.pyplot as pltimport numpy as np# 방법 1: plt 인터페이스 (간단한 그래프)plt.plot([1, 2, 3, 4], [1, 4, 9, 16])plt.show()# 방법 2..
[파이썬 기초] NumPy & Pandas 기초
·
BI&Programming-Tools/Python
NumPy와 Pandas는 파이썬 데이터 분석의 핵심 라이브러리입니다.NumPy는 수치 계산과 배열 연산을, Pandas는 표 형태의 데이터 처리를 담당합니다.두 라이브러리 모두 내부적으로 C로 구현되어 있어 순수 파이썬보다 훨씬 빠릅니다.pip install numpy pandasNumPy배열 생성NumPy의 핵심 자료구조는 ndarray(n차원 배열)입니다.import numpy as np# 리스트로 배열 생성arr = np.array([1, 2, 3, 4, 5])print(arr) # [1 2 3 4 5]print(arr.dtype) # int64print(arr.shape) # (5,)# 2차원 배열matrix = np.array([[1, 2, 3], ..
[파이썬 기초] 클래스, 모듈, 예외처리
·
BI&Programming-Tools/Python
클래스 (Class)클래스는 데이터(속성)와 기능(메서드)을 하나로 묶는 틀입니다.관련 있는 데이터와 함수를 하나의 단위로 구조화할 때 사용합니다.클래스 정의와 인스턴스 생성class Sample: def __init__(self, sample_id, species, coverage): self.sample_id = sample_id # 인스턴스 속성 self.species = species self.coverage = coverage def describe(self): print(f"{self.sample_id} | {self.species} | {self.coverage}x") def is_high_coverage(self, th..
[파이썬 기초] 파일 형식 처리 (CSV, TSV, FASTA)
·
BI&Programming-Tools/Python
데이터 분석과 생물정보학에서 자주 다루는 파일 형식인 CSV, TSV, FASTA의 파싱 방법을 정리합니다.앞선 파일 읽기·쓰기 글에서 csv 모듈의 기본 사용법은 다뤘으므로, 이번 글에서는 실제 데이터를 다루는 패턴 위주로 정리합니다.CSV (Comma-Separated Values)쉼표로 필드를 구분하는 텍스트 형식입니다.sample_id,species,coverage,gc_contentsample_01,Homo sapiens,30.5,0.512sample_02,Mus musculus,22.1,0.488sample_03,Homo sapiens,45.8,0.521csv 모듈로 읽기import csv# 기본 읽기with open("samples.csv", "r") as f: reader = csv...
[파이썬 기초] 변수 범위와 파일 읽기·쓰기
·
BI&Programming-Tools/Python
변수 범위 (Scope)변수가 접근 가능한 범위를 스코프(scope)라고 합니다. 파이썬은 LEGB 규칙에 따라 변수를 탐색합니다.LEGB 규칙 범위설명Local현재 함수 안Enclosing감싸고 있는 함수 안 (중첩 함수에서)Global모듈 최상위 레벨Built-in파이썬 내장 이름 (len, print 등)변수를 참조할 때 Local → Enclosing → Global → Built-in 순서로 탐색하며, 가장 먼저 찾은 것을 사용합니다.로컬 변수와 글로벌 변수count = 100 # 글로벌 변수def process(): count = 10 # 로컬 변수 (글로벌 변수와 별개) print(count) # 10process()print(count) # 100 (글로벌 ..
[파이썬 기초] 정규표현식 (re 모듈)
·
BI&Programming-Tools/Python
정규표현식(regular expression)은 문자열에서 특정 패턴을 찾거나, 추출하거나, 치환할 때 사용하는 패턴 언어입니다.파이썬에서는 re 모듈로 정규표현식을 사용합니다. 생물정보학에서는 시퀀스 패턴 검색, 파일 파싱, 헤더 정보 추출 등에 자주 활용됩니다.기본 패턴 문자패턴의미예시.임의의 문자 한 개 (줄바꿈 제외)A.C → ABC, ATC^문자열의 시작^AT → AT로 시작$문자열의 끝CG$ → CG로 끝*앞 문자가 0개 이상AT* → A, AT, ATT+앞 문자가 1개 이상AT+ → AT, ATT?앞 문자가 0개 또는 1개AT? → A, AT{n}앞 문자가 정확히 n개A{3} → AAA{n,m}앞 문자가 n개 이상 m개 이하A{2,4} → AA, AAA, AAAA[]문자 클래스 (안의 문자 ..