
[2] Linear Epitope Prediction
Linear Epitope: 항체가 직접 결합하는 최소 아미노산 서열, 보통 길이는 8~25aa로 해당 범위만으로도 항체 결합 가능성 평가 가능

BUT 실제 항원 epitope는 고립된 상태가 아님 (i.e. 노출도 surface accessibility, 유연성 flexibility, 국소 구조 local conformation)
1. Epitope 노출 여부 - epitope 서열이 좋아도 주변이 소수성/조밀하면 항체가 접근하지 못함
2. Proteasome 및 processing 영향 - 인접 서열이 cleavage site를 만들거나 epitope를 잘리게 하면 안정화시킴
3. 면역원성 (immunogenicity) - 같은 linear epitope라도 flanking region에 따라 항체 반응 세기가 달라짐
∴ Epitope + flanking residues (± X aa) = XXXXXX ( epitope [core] epitope )XXXXXX
Note
Although linear epitopes are defined as continuous amino acid sequences, adjacent residues significantly influence antibody recognition by modulating epitope exposure and local structural flexibility.
Feature 설계 전략
- Core-only feature (직접 결합)
- amino acid composition, k-mer, BLOSUM / AA index, hydrophilicity, antigenicity score
- Flanking-aware feature (백신/면역원성 핵심)
- Surface accessibility proxy - 평균 hydrophilicity, flexible residue 비율, charged residue density
- Sturctural tendency - secondary structure propensity, disorder score (IUPred 계열), beta-turn propensity
- Processing stability - cleavage-prone motif 존재 여부, flanking aa polarity 차이
| Setting | Window = 8-25 aa (1) Epitope core ≈ 5–15 aa (2) Flank ≈ ± 3–10 aa |
assay-conditional negative, label noise + bias 존재
Negative ([label] = 0) 정의: “해당 assay 조건에서 항체 반응이 관측되지 않음”
입력 feature: assay / method (one-hot or embedding)
a. Assay-aware modeling - sequence window feature로 같은 어떤 조건에서 epitope로 관측될 가능성이 높은지 분석함
b. Assay-stratifed model - assay 별로 모델을 따로 학습해 성능을 비교하지만 데이터가 적은 assay는 불리함
c. Pairwise (assay-fixed) - 같은 assay 안에서만 pair을 생성해 assay bias를 제거하고 서열 신호만 남김
| 문제 설명 | solution.py |
| #114 N개의 마을로 이루어진 나라가 있습니다. 이 나라의 각 마을에는 1부터 N까지의 번호가 각각 하나씩 부여되어 있습니다. 각 마을은 양방향으로 통행할 수 있는 도로로 연결되어 있는데, 서로 다른 마을 간에 이동할 때는 이 도로를 지나야 합니다. 도로를 지날 때 걸리는 시간은 도로별로 다릅니다. 현재 1번 마을에 있는 음식점에서 각 마을로 음식 배달을 하려고 합니다. 각 마을로부터 음식 주문을 받으려고 하는데, N개의 마을 중에서 K 시간 이하로 배달이 가능한 마을에서만 주문을 받으려고 합니다. 마을의 개수 N, 각 마을을 연결하는 도로의 정보 road, 음식 배달이 가능한 시간 K가 매개변수로 주어질 때, 음식 주문을 받을 수 있는 마을의 개수를 return 하도록 solution 함수를 완성해주세요. |
import sys
def solution(N, road, K):
visited = [False] * (N + 1)
D = [sys.maxsize] * (N + 1) r = [[(None, None)]] + [[] for _ in range(N)] for e in road:
r[e[0]].append((e[1],e[2]))
r[e[1]].append((e[0],e[2]))
D[1] = 0
for _ in range(1, N + 1):
min_ = sys.maxsize
for i in range(1, N + 1):
if not visited[i] and D[i] < min_:
min_ = D[i]
m = i
visited[m] = True
for w, wt in r[m]:
if D[m] + wt < D[w]:
D[w] = D[m] + wt
return len([d for d in D if d <= K])
|
'내일배움캠프 QAQC 3기 > 최종 프로젝트' 카테고리의 다른 글
| 최종 프로젝트 9일차: [4] 모델링 파이프라인 (0) | 2026.01.09 |
|---|---|
| 최종 프로젝트 6일차: [3] EDA + Sliding Window (0) | 2026.01.06 |
| 최종 프로젝트 4일차: 고장 데이터 분석과 수명 예측 (0) | 2026.01.02 |
| 최종 프로젝트 3일차: 개인 데이터 기반 챗봇 구현, 신뢰성 분석 기초 (0) | 2025.12.31 |
| 최종 프로젝트 2일차: [1] 프로젝트 개요 및 데이터 전처리 (0) | 2025.12.30 |