제5장
면역계가 치료용 단백질에 어떻게 반응하는지, 단백질이 바이알 안에서 어떻게 변해 가는지, 그리고 제형이 이 둘을 어떻게 잇는지를 WIA-BIO-016 §6–7, 부록 A.3, 이를 구현한 SDK 함수를 따라 살펴본다.
치료용 단백질은 어느 수준에서든 외래 단백질이거나 변형된 단백질이며, 면역계는 그런 차이를 알아채는 데 매우 능하다. 의약품 개발에서 문제가 되는 반응은 항약물항체(anti-drug antibody, ADA)의 생성이다. 제4장은 바이오의약품을 해리상수, 청소율, 분포용적을 가진 분자로 다루었다. 이 장은 여기에 한 가지 변수를 더한다. 환자가 약에 대한 항체를 만들어 그 숫자들을 바꿀 수 있다는 점이다.
ADA는 한 종류가 아니다. WIA-BIO-016 §6.1.2는 기능에 따라 두 부류를 구분하며, 이 구분이 이후 거의 모든 판단을 좌우한다.
가장 심각한 결과는 내인성 단백질과의 교차반응이다. 천연 단백질의 재조합 버전이 만든 항체가 몸 자체의 분자까지 중화하면, 환자는 치료 전에 갖고 있던 기능을 잃을 수 있다. 가장 잘 알려진 사례는 2000년대 초 특정 에포에틴 알파 제품에서 보고된 순수적혈구무형성증(pure red cell aplasia) 집단 발생으로, 조사 결과 단백질 서열이 아니라 제형 변경과 용기·마개 요인이 원인으로 지목되었다. 이 장이 면역원성, 안정성, 제형을 한데 묶어 다루는 이유가 여기에 있다. 제제학적 세부 사항처럼 보이는 변경이 면역학적 사건이 될 수 있다.
면역원성은 여러 요인이 얽혀 결정된다. 요인을 세 묶음으로 나누어 보면 유용한데, 묶음마다 이를 통제하는 조직이 다르기 때문이다.
| 구분 | 예 | 통제 주체 |
|---|---|---|
| 제품 관련 | 비인간 서열, T세포 에피토프, 응집체와 미세입자, 비인간형 당쇄, 숙주세포 단백질 불순물, 산화·탈아미드화 산물 | 후보 발굴, 공정 개발, CMC 분석 |
| 투여 관련 | 투여 경로(피하 투여가 정맥 투여보다 면역원성이 높은 편으로 여겨진다), 용량, 투여 간격, 치료 기간, 간헐적·연속적 노출, 면역억제제 병용 | 임상 개발 |
| 환자 관련 | 기저 질환과 면역 상태, 유전적 배경(예: HLA 형), 기존 항체, 유사 제품 투여 이력 | 임상 개발, 약물감시 |
완전 인간 서열은 제품 관련 요인 하나를 줄일 뿐 나머지는 그대로 남긴다. 인간 라이브러리나 형질전환 동물에서 얻은 항체도 일부 환자에서는 ADA를 유발한다. 가변 영역은 어느 항체든 고유하고, 응집체와 제형이 면역관용을 깨뜨릴 수 있기 때문이다. 면역원성을 하나의 변수로 예측할 수는 없다는 사실은 5.3절에서 단일 점수를 다룰 때 다시 떠올릴 필요가 있다.
규제기관은 ADA를 밸리데이션된 다단계 생체분석 전략으로 측정할 것을 기대한다. 그 논리는 항약물항체 검출 분석법의 개발·밸리데이션에 관한 FDA 가이던스와 치료용 단백질의 면역원성 평가에 관한 EMA 가이드라인에 정리되어 있다. WIA-BIO-016 §6.1.1에는 가장 널리 기억되는 두 가지, 즉 선별 컷포인트 식과 분석 감도 목표만 적혀 있다. 전체 흐름은 다음과 같다.
환자 혈청 검체
|
v
+--------------------+ 선별 컷포인트 미만 +--------------+
| 1단계: 선별 | ---------------------------------> | ADA 음성 보고 |
| (예: 브리징 | +--------------+
| 면역분석) |
+--------------------+
| 컷포인트 초과("잠정 양성")
v
+--------------------+ 과량 약물로 신호가 억제되지 않음
| 2단계: 확인 | ---------------------------------> ADA 음성
| 비표지 약물을 |
| 과량 첨가 |
+--------------------+
| 확인 컷포인트 이상으로 신호 억제
v
+--------------------+
| 3단계: 역가 | 신호 < 컷포인트가 될 때까지 연속 희석
| (크기) | 역가 = 여전히 양성인 최고 희석배수
+--------------------+
|
v
+--------------------+
| 4단계: 중화능 | 세포 기반 또는 경쟁적 리간드 결합 분석
| (기능) | 질문: 이 ADA가 활성을 막는가?
+--------------------+
|
v
PK(트러프, 청소율), PD, 유효성, 안전성과 연관 분석
선별 컷포인트는 약물에 노출된 적 없는 검체 가운데 정해진 비율이 양성으로 선별되도록 설정한다. 명세서는 이를 다음과 같이 적는다.
컷포인트 = 음성군 평균 + 1.645 × 음성군 표준편차
상수 1.645는 표준정규분포의 단측 95백분위수다. 음성군 신호가 대략 정규분포를 따른다면(흔히 로그 변환과 이상치 제거 후), 실제 음성 검체의 약 5%가 컷포인트를 넘는다. 이 위양성률은 의도된 것이다. 선별 단계는 일부러 넉넉하게 걸러내고 확인 단계가 진양성과 위양성을 가르도록 설계하며, 선별 결과가 깔끔한 것보다 위음성이 적은 편이 훨씬 중요하다. 확인 단계는 보통 과량 약물에 의한 억제율을 기준으로 더 엄격한 컷포인트를 쓴다.
여기서 실무상 주의할 점이 세 가지 나온다. 첫째, 음성군은 시험 대상 집단과 닮아야 한다. 대상 질환 환자의 혈청은 건강한 공여자와 기저 신호가 다를 수 있으므로, 건강인 자원자만으로 정한 컷포인트는 환자를 잘못 분류할 수 있다. 둘째, 정규성 가정을 반드시 확인해야 한다. 분포가 치우쳐 있다면 비모수 백분위수를 쓰는 것이 정직한 대안이다. 셋째, 컷포인트는 분석법과 핵심 시약 로트의 속성이므로, 이것이 바뀌면 다시 검증해야 한다.
§6.1.1은 분석 감도 목표를 100 ng/mL 미만으로 제시하는데, 이는 선별·확인 분석에 대해 FDA 권고에서 흔히 인용되는 값과 일치한다. 감도는 보통 친화 정제한 항체나 단일클론 항약물항체 같은 대리 양성대조로 측정하므로, 실제 환자의 다클론 ADA에 대한 성능은 근사치일 뿐이다. 짝을 이루는 지표가 약물 내성(drug tolerance)이다. 혈중에 남아 있는 약물이 ADA와 결합해 분석에서 가려 버리기 때문이다. 반감기가 길고 트러프 농도가 높은 단일클론항체에서는 명목 감도보다 약물 내성이 검출을 더 제한하는 경우가 많다. 트러프 시점 채혈, 산 해리 전처리, 투약 종료 후 휴약기 검체가 표준적인 설계로 자리 잡은 이유다.
WIA-BIO-016은 임상 면역원성 결과를 types.ts의 ADAData 인터페이스에 저장한다.
| 필드 | 타입 | 의미와 실무 메모 |
|---|---|---|
incidenceRate | number, 0–1 | 평가 가능한 대상자 중 ADA 양성 비율. 분모는 타입에 없으므로 따로 기록해야 한다. |
titer | number, 선택 | 반응의 크기. 희석 체계와 분석법이 함께 있어야 의미가 있다. |
neutralizing | boolean | NAb 검출 여부. 시험 단위의 불리언으로는 “일부 환자에서 NAb”를 표현할 수 없으므로 대상자별 기록이 필요하다. |
timeToADA | number(일), 선택 | 발현 시점. 일시적 ADA와 지속적 ADA를 구분하지 않는다. |
clinicalImpact | 'none' | 'minimal' | 'moderate' | 'severe' | PK, 유효성, 안전성에 미친 영향에 대한 개발사의 정성적 판단. |
이 인터페이스는 후보 물질 자료집이나 포트폴리오 대시보드에 쓰기 좋은 요약 레코드다. 생체분석 데이터 형식은 아니다. 검체 식별자, 방문 시점, 분석법 버전, 컷포인트 값, 치료 후 발생(treatment-emergent) 여부가 없다. 실제 ADA 시험을 관리하는 시스템은 이런 원자료를 별도로 보관하고 ADAData는 거기서 파생시켜야 한다.
WIA-BIO-016 §6.2는 초기 분류(triage)를 위해 면역원성 위험을 하나의 숫자로 요약하는 식을 도입한다.
IRS = (ADA_rate × Severity × Duration) / Tolerance
ADA_rate ADA 발생률, 0–1
Severity 임상적 영향, 1–10
Duration 치료 기간 계수 (척도 정의 없음)
Tolerance 환자 내약 계수 (척도 정의 없음)
명세서는 이 점수를 10 미만 낮음, 10–30 중간, 30–60 높음, 60 초과 매우 높음으로 구간화한다. 이 구성물의 성격은 분명히 해 둘 필요가 있다. 면역원성 위험 점수(IRS)는 WIA의 분류용 휴리스틱이다. ICH, FDA, EMA 가이던스 어디에도 나오지 않고, 임상 결과에 대해 보정된 적도 없으며, 명세서 표의 조치 열(60 초과 시 “금기”)을 임상 지침으로 읽어서는 안 된다. 이 점수가 할 수 있는 일은, ADA가 얼마나 자주 생기는지, 그 결과가 얼마나 나쁜지, 환자가 얼마나 오래 노출되는지를 팀이 일관된 형식으로 적게 만드는 것이다. 숫자를 검증된 예측으로 오인하지만 않는다면 데이터 표준으로서 합당한 목적이다.
ADA_rate = 0.4, Severity = 8, Duration = 6, Tolerance = 0.5이면 점수는 38.4이고, 내약 계수를 0.1로 낮추면 192가 된다.명세서 부록 A.3은 ADA 발생률 0.15, 중증도 5, 만성 투여를 뜻하는 기간 계수 2, 내약 계수 0.5를 쓴다. 계산은 (0.15 × 5 × 2) / 0.5 = 1.5 / 0.5 = 3.0이며 낮음 구간에 든다. SDK도 같은 값을 낸다.
import { assessImmunogenicity } from './src/index';
const risk = assessImmunogenicity({
adaRate: 0.15, // 대상자의 15 %가 ADA 양성
severity: 5, // 1–10 척도, "중간"
durationFactor: 2, // 개발사 관례: 만성 투여
toleranceFactor: 0.5, // 개발사 관례: 낮은 내약성
});
console.log(JSON.stringify(risk, null, 2));
함수의 반환값은 다음과 같다.
{
"riskScore": 3,
"riskLevel": "low",
"predictedADA": 0.1545,
"monitoringFrequency": "standard",
"mitigationStrategies": [],
"recommendations": [
"Monitor ADA levels standardly during treatment"
]
}
이 출력에서 짚을 점이 세 가지다. 첫째, predictedADA = 0.1545는 adaRate × (1 + riskScore / 100)를 1로 상한 처리한 값이다. 위험 점수 자체가 adaRate로 만들어지므로, 이 “예측”은 입력을 단조롭게 다시 척도화한 것에 불과하다. 새로 더해진 정보가 없으므로 사용자에게 전망치처럼 보여 주면 안 된다. 둘째, 권고 문구는 모니터링 빈도 문자열 뒤에 “ly”를 붙여 만들기 때문에 “standardly”라는 어색한 영어가 나온다. 응용 프로그램은 이 문자열을 그대로 표시하지 말고 열거값을 자체 문구로 매핑해야 한다. 셋째, 완화 전략 목록은 고정 임계값으로 채워진다(점수 20 초과 시 서열 최적화와 T세포 에피토프 제거, 40 초과 시 대체 포맷과 면역억제 프로토콜, ADA 발생률 0.3 초과 시 병용요법). 이는 논의를 위한 일반적 화두일 뿐, 도구가 임상의에게 제시할 권고가 아니다.
assessImmunogenicity()는 adaRate가 0–1을 벗어나거나 severity가 1–10을 벗어나면 BIO007(INVALID_PARAMETERS)을 던진다. 나머지 두 인자는 검사하지 않으며, 그 결과는 쉽게 확인된다.
| 입력 | SDK 동작 | 적합한 래퍼가 해야 할 일 |
|---|---|---|
toleranceFactor: 0, adaRate > 0 | 점수 Infinity, 등급 very-high, predictedADA 1 | BIO007로 거부 |
toleranceFactor: 0, adaRate: 0 | 점수 NaN. 모든 비교가 거짓이 되어 등급이 very-high로 떨어지고 predictedADA도 NaN | BIO007로 거부 |
음수 durationFactor | 음수 점수가 low로 분류됨 | BIO007로 거부 |
| 100 초과 점수 | 경고 없이 수용 | 수용하되 문서화된 범위 밖임을 표시 |
셸 도구는 조금 다르게 동작한다. wia-bio-016 immunogenicity --ada-rate 0.15 --severity 5는 부록 A.3과 같은 기본값(기간 2, 내약 0.5)을 써서 IRS 3.00과 예측 발생률 15.4%를 출력한다(SDK의 0.1545가 15.45보다 아주 조금 작은 이진수 값이어서 printf가 15.4로 반올림한다). 범위 검사는 전혀 하지 않고, 높은 ADA 발생률에 대한 병용요법 문구도 내지 않으며, 매우 높음 구간을 “Intensive + Consider alternatives”로 표시한다. --tolerance 0을 주면 내부 bc 호출이 0으로 나누기 오류를 내고, 빈 결과가 “IRS 0.00”으로 출력되며, 이어지는 비교문은 구문 오류를 뱉는다. 첫 줄 숫자만 읽는 스크립트라면 잘못된 입력에 대해 안심되는 점수를 기록하게 된다. CLI와 SDK의 결과가 다르면 TypeScript 구현을 기준으로 삼고 CLI는 편의용 전면 도구로 취급한다.
ImmunogenicityRisk.riskLevel은 'very-high'를 포함한 네 값을 갖지만, 제6장의 후보 검증에 쓰이는 DrugCandidate.immunogenicityRisk는 'low' | 'moderate' | 'high'만 받는다. 한쪽 값을 다른 쪽으로 넘기는 코드에는 명시적 매핑이 필요하며, 가장 자연스러운 선택인 very-high를 high로 합치는 방식은 정보를 잃는다. 마찬가지로 ADAData.clinicalImpact의 4단계 정성 척도는 점수에 쓰이는 1–10의 수치 severity와 정해진 관계가 없다. 표준의 다음 개정은 이 어휘들을 맞추거나 매핑을 문서화해야 한다. 그때까지 구현자는 자신이 택한 매핑을 데이터와 함께 기록해야 한다.
WIA-BIO-016 §6.3은 서열 수준의 전략 두 가지를 제시한다. 각각에 대해 감소율을 백분율로 적고 있지만, 출처가 없는 수치이고 실제 효과는 분자와 환자 집단에 따라 크게 달라지므로 여기서는 옮기지 않는다.
역사적으로 항체 의약품은 마우스 항체에서 키메라 항체(마우스 가변 도메인 + 인간 불변 영역)로, 다시 인간화 항체(마우스 상보성 결정 부위를 인간 골격에 이식하고, 친화도 회복을 위해 골격 일부를 역돌연변이)로, 그리고 파지 디스플레이나 형질전환 동물에서 얻은 완전 인간 항체로 발전해 왔다. 단계마다 외래 서열은 줄었다. 그러나 어느 단계도 면역원성을 없애지는 못했다. 어떤 항체든 상보성 결정 부위는 환자의 면역계에 처음 보는 서열이며, 5.1절의 다른 위험 요인도 그대로 남기 때문이다.
오래 지속되고 클래스 전환된 ADA 반응에는 대체로 T세포의 도움이 필요하고, 이를 위해서는 약물 유래 펩타이드가 MHC 클래스 II 분자에 제시되어야 한다. 탈면역화는 in silico MHC 결합 예측과 이어지는 인간 면역세포 기반 in vitro 분석으로 후보 T세포 에피토프를 찾아내고, 보존적 치환으로 이를 제거한다. 에피토프는 구조적으로 중요한 부위에 놓인 경우가 많으므로, 치환 하나하나를 결합 친화도(제4장), 안정성, 발현량에 비추어 확인해야 한다. 명세서의 요약인 “T세포 에피토프를 제거하되 결합 친화도는 유지한다”가 바로 이 절충을 가리킨다.
세 번째 수단은 §6.3에 없지만 못지않게 중요하다. 제2장에서 측정한 제품 관련 요인을 통제하는 일이다. 응집체, 특히 크거나 고도로 정렬된 응집체는 반복된 에피토프를 제시해 단량체보다 효율적으로 B세포를 활성화할 수 있다. 산화·탈아미드화 변이체, 일부 발현 시스템에서 생기는 비인간형 당쇄 구조, 숙주세포 단백질 불순물도 위험을 더한다. 제2장의 응집체 한도와 SEC 데이터가 동시에 면역원성 관리 수단이고, 유효기간 동안 응집체 증가를 추적하는 안정성 프로그램이 부분적으로는 면역원성 프로그램인 이유가 여기에 있다.
안정성 연구는 분자를 일부러 손상시키는 데서 시작한다. 가혹 분해 시험(forced degradation study)은 보관 중에 겪을 조건보다 가혹한 조건에 제품을 노출시켜 두 가지 질문에 답한다. 어떤 분해 경로가 존재하는가, 그리고 분석법이 그것을 볼 수 있는가. 분해 산물을 분리·정량할 수 있는 분석법을 안정성 지시(stability-indicating) 분석법이라 하며, 이 성질을 입증하는 것이 가혹 분해 시험의 주된 산출물이다.
WIA-BIO-016 §7.1은 고전적인 스트레스 조건을 나열한다. 아래 표는 이를 주요 분해 경로, 그리고 그 경로를 흔히 드러내는 분석법과 함께 정리한 것이다. 온도와 농도는 명세서가 든 예시 조건이며 요구사항이 아니다.
| 스트레스 | 명세서 예시 조건 | 주요 경로 | 이를 드러내는 분석법 |
|---|---|---|---|
| 열 | 40, 50, 60 °C, 수일~수개월 | 언폴딩, 응집, 절편화(힌지 절단), 탈아미드화 | SEC, CE-SDS, DSF/Tm, 펩타이드 매핑 |
| pH | pH 3–9, 24–48시간 | 탈아미드화(고 pH에서 촉진), 아스파르트산 이성질화, 산 유도 응집·절편화 | IEX/cIEF, 펩타이드 매핑, SEC |
| 산화 | 저농도 과산화수소, 수시간 | 메티오닌·트립토판 산화. IgG에서는 FcRn 결합 부위 근처 Fc 메티오닌이 민감 | LC-MS 펩타이드 매핑, FcRn 결합 분석 |
| 빛 | ICH Q1B 광안정성 설계에 따름 | 트립토판·히스티딘 광산화, 가교, 변색 | 펩타이드 매핑, SEC, 성상 |
| 기계적·동결-해동 | 교반, 반복 동결 | 계면 유도 응집, 미세입자 | SEC, 광차폐법, 유동 이미징 |
명세서는 열 스트레스에 “회수율 ≥90%”, pH 스트레스에 “회수율 ≥85%”라는 허용 기준을 붙여 두었다. 여기서는 일부러 뺐다. 가혹 분해 시험은 제품의 합격·불합격 시험이 아니다. 목적은 측정 가능하고 해석 가능한 분해를 일으키는 것이다. 아무것도 분해되지 않은 시험은 아무것도 배우지 못한 것이고, 분자를 완전히 파괴한 시험은 실제 보관과 무관한 2차 산물만 만든 것이다. 따라서 스트레스 강도는 유익한 수준의 변화를 내도록 조정하며, 결과물은 판정이 아니라 분해 경로의 지도다.
산화에 대해서는 한 가지를 덧붙인다. 세 장을 잇는 고리이기 때문이다. Fc 메티오닌이 산화되면 IgG를 재순환시켜 항체에 긴 반감기를 주는 수용체인 FcRn과의 결합이 약해질 수 있다(제4장). 여기서 찾은 분해 경로가 약동학 변화로 이어질 수 있고, 산화된 물질은 면역원성 위험도 지닐 수 있다. 가혹 분해 시험에서 민감한 잔기가 발견되면 그 결과는 자료집의 세 곳, 즉 CQA 목록, 안정성 지시 분석법 설명, 위험 평가에 모두 나타나야 한다.
생명공학 제품의 정식 안정성 시험은 ICH Q5C를 따르며, 일반적인 안정성 설계는 ICH Q1A(R2), 광안정성은 ICH Q1B가 뒷받침한다. 냉장 제품의 장기 보존 조건은 5 ± 3 °C이고, ICH Q1A(R2)는 이러한 제품의 가속 조건으로 습도를 관리한 25 °C를 쓴다. ICH Q5C의 중요한 원칙은 바이오의약품의 유효기간을 의도한 보관 조건에서의 실시간 데이터로 정한다는 것이다. 가속·가혹 데이터는 전체 그림을 보완하고 경로를 드러내며 온도 이탈을 평가하는 데 쓰이지만, 그것만으로 사용기한을 정당화하지는 못한다.
WIA-BIO-016 §7.2.1은 전형적인 설계를 세 행으로 요약하며, 이는 StabilityConditions.type 열거형과 바로 대응한다.
| 조건(명세서 §7.2.1) | 온도 | 명세서상 기간 | 목적 | type 값 |
|---|---|---|---|---|
| 장기 보존 | 2–8 °C | 24–36개월 | 유효기간 설정 | 'long-term' |
| 가속 | 25 °C | 6개월 | 보완 자료, 이탈 평가, 추세 예측 | 'accelerated' |
| 가혹 | 40 °C | 3개월 | 분해 경로 | 'stress' |
| (표에 없음) | 표시 조건 | 지속 | 상업 로트의 실시간 확인 | 'real-time' |
열거형의 네 번째 값 'real-time'은 'long-term'과 겹친다. 냉장 제품에서는 장기 보존이 곧 실시간 보존이기 때문이다. 실무적인 관례는 'long-term'을 초기 유효기간을 뒷받침하는 허가용 시험에, 'real-time'을 허가 후 상업 로트의 지속 모니터링에 쓰는 것이다. 어떤 관례를 택하든 문서로 남겨야 한다. 타입 자체는 아무것도 말해 주지 않는다.
한 시점의 시험 결과 하나는 StabilityConditions를 품은 StabilityResult로 표현한다. 가상의 IgG1 완제품에 대한 12개월 결과를 예시로 들면 다음과 같다(모든 값은 예시다).
{
"conditions": {
"temperature": 5,
"duration": 12,
"type": "long-term",
"lightExposed": false
},
"potency": 98.0,
"monomerContent": 98.9,
"aggregates": 0.9,
"pH": 6.0,
"appearance": "clear",
"passesSpec": true
}
실험실 시스템이 이런 레코드를 만들 때 중요한 모델링 세부 사항이 네 가지다.
duration의 뜻이 모호하다. 주석은 “개월 단위 기간”이라고만 한다. 결과 레코드에서 쓸모 있는 해석은 시험의 계획 기간이 아니라 경과 시점(예시의 12개월)이다. 구현 문서에 이 해석을 명시해야 한다.passesSpec은 파생값이다. 적용한 규격 한도를 함께 저장하지 않으면 규격이 바뀌었을 때 이 불리언을 다시 평가할 수 없다.화학 반응 속도는 온도가 오르면 빨라지며, 아레니우스 식이 이를 고전적으로 기술한다.
k = A × e^(−Ea / RT)
k 분해 속도상수
A 빈도 인자
Ea 활성화 에너지 (J/mol)
R 기체상수, 8.314 J/(mol·K)
T 절대온도 (K)
두 온도에서의 식을 나누면 A가 사라진다.
k2 = k1 × exp[ (Ea / R) × (1/T1 − 1/T2) ]
역가가 1차 반응으로 감소한다면 시간 t 후 남는 분율은 e−kt이고, 초기값의 90%에 이르는 시간은 t90 = −ln(0.90) / k = 0.1054 / k다. §7.2.2의 0.105는 여기서 나온 값이다. 이 식은 1차 감소에서만 정확하다. 응집은 고차 반응이거나 핵 형성에 의해 제한되는 경우가 많으므로, 같은 지름길을 응집체 증가에 쓰면 오해를 낳을 수 있다.
BiopharmaSDK.predictShelfLife(k25C, activationEnergy, targetTemp = 5)는 R = 8.314 J/(mol·K), 기준 온도 25 °C로 두 온도 형식을 구현한 뒤 t90을 개월로 환산한다. 단위 가정이 코드 속에 암묵적으로 들어 있으므로 호출하는 쪽이 지켜야 한다.
| 매개변수 / 단계 | 코드가 가정하는 단위 | 틀렸을 때의 결과 |
|---|---|---|
k25C | 초당(s−1) | 코드는 t90을 86,400초/일로 나눈다. 일당이나 월당 속도를 넣으면 유효기간이 86,400배 이상 틀린다. |
activationEnergy | J/mol | 100000(J) 대신 100(kJ)을 넣으면 온도 보정이 거의 사라져, 5 °C 예측 유효기간이 25 °C와 거의 같아진다. |
targetTemp | °C | 내부에서 273.15를 더해 환산한다. |
| 개월 환산 | 30일 = 1개월 | 달력 평균 월과 비교해 약 1.4%의 작고 체계적인 편향. 문서화하면 수용 가능하다. |
| 기체상수 | 8.314 J/(mol·K), 하드코딩 | BIOPHARMA_CONSTANTS.GAS_CONSTANT는 cal/(mol·K) 단위의 1.987이다. 이 상수를 J/mol 단위 활성화 에너지와 섞으면 지수가 약 4.18배 부풀려진다. |
예시로, 25 °C에서의 역가 감소를 1차 속도상수 2.0 × 10−9 s−1로 적합했고 겉보기 활성화 에너지가 100 kJ/mol이라고 하자. 두 숫자 모두 이 예를 위해 지어낸 값이다.
import { BiopharmaSDK } from './src/index';
const sdk = new BiopharmaSDK();
const k25 = 2.0e-9; // s^-1, 25 °C에서 적합 (예시)
const Ea = 100_000; // J/mol (예시)
console.log(sdk.predictShelfLife(k25, Ea, 25).toFixed(1)); // 20.3
console.log(sdk.predictShelfLife(k25, Ea, 5).toFixed(1)); // 368.4
console.log(sdk.predictShelfLife(k25, 100, 5).toFixed(1)); // 20.3 <- 실수로 Ea를 kJ로 넣음
손으로 계산해 보자. 25 °C에서 t90 = 0.105 / 2.0 × 10−9 = 5.25 × 107초로 약 608일, 30일 기준 20.3개월이다. 5 °C에서는 Ea/R = 12,028 K, 1/298.15 − 1/278.15 = −2.41 × 10−4 K−1이므로 속도는 e−2.90 ≈ 0.055배로 줄어 1.10 × 10−10 s−1가 된다. 예측 t90은 약 368개월, 대략 30년이다.
이 답은 산술적으로 옳지만 실무적으로는 쓸모가 없다. 그리고 그것이 이 절에서 가장 중요한 교훈이다. 단백질 분해가 20 °C 구간 전체에서 하나의 활성화 에너지를 가진 하나의 반응으로 지배되는 경우는 드물다. 부분 언폴딩, 속도 결정 경로의 전환, 동결·동결건조 기질의 유리전이, 그리고 온도와 거의 무관한 계면 과정이 온도대마다 번갈아 지배할 수 있다. 아레니우스 적합은 제형 순위 매기기, 온도 이탈 영향 추정, 실시간 추세가 가속 추세와 맞는지 확인하는 데 가치가 있다. 실시간 데이터를 대신하지는 못하며, ICH Q5C도 이를 허용하지 않는다. 응용 프로그램이 predictShelfLife()의 출력을 표시한다면 모델 추정치라고 밝히고 실시간 데이터를 옆에 보여 주어야 한다. 선택 필드인 StabilityResult.predictedShelfLife도 이런 이해 위에서만 채워야 한다.
제형은 단백질을 안정하게 유지하고 투여 가능하게 만드는 부형제, pH, 농도, 용기의 조합이다. 5.1절의 에포에틴 사례가 보여 주듯 면역원성 그림의 일부이기도 하다. WIA-BIO-016 §7.3은 완충제와 안정화제의 짧은 목록을 제시한다. 이 절은 그 목록 뒤의 논리를 설명하고, 규칙 하나를 바로잡는다.
완충제는 pKa로부터 대략 pH 1 단위 안에서 가장 잘 작동한다. §7.3.1에 나오는 세 완충제는 이 규칙에서 나온다. 이미다졸기의 pKa가 6 부근인 히스티딘은 pH 5.5–6.5 근처로 제형화하는 단일클론항체의 주력 완충제다. 여러 pKa가 산성 영역에 걸쳐 있는 시트르산은 더 낮은 pH를 맡는다. 두 번째 pKa가 7.2 부근인 인산은 중성 pH를 담당하지만, 염의 결정화 속도가 서로 달라 동결 시 pH가 크게 흔들린다.
명세서의 “최적 pH = pI ± 1”이라는 규칙은 방향이 거꾸로다. 등전점에서 단백질은 순전하가 0이므로 분자 사이의 정전기적 반발이 가장 약하고, 용해도는 대개 최소가 된다. 콜로이드 불안정과 침전이 가장 일어나기 쉬운 지점이다. 따라서 제형 설계자는 보통 pI에서 적어도 1–2 단위 떨어진 pH를, 그중에서도 5.5절의 화학적 분해 경로가 가장 느린 범위에서 고른다. pI가 염기성 영역에 있는 경우가 많은 IgG1 항체에서는 이 원칙이 약산성 제형으로 이어진다.
| 부류 | 예 | 작용 기전 | 주의점 |
|---|---|---|---|
| 당·폴리올 | 수크로스, 트레할로스, 소르비톨 | 용액에서는 선택적 배제로 접힌 상태를 안정화하고, 동결건조 제품에서는 물을 대신해 유리질 기질을 만든다 | 삼투압을 높인다. 환원당은 단백질을 당화시킬 수 있어 비환원당을 선호한다 |
| 아미노산 | 아르기닌, 글리신, 히스티딘, 프롤린 | 단백질 간 상호작용을 억제하고 고농도 용액의 점도를 낮추며, 동결건조품에서 부형 역할을 한다 | 효과가 분자 특이적이다. 아르기닌이 한 제품의 응집은 줄이고 다른 제품에서는 효과가 없을 수 있다 |
| 비이온성 계면활성제 | 폴리소르베이트 80, 폴리소르베이트 20, 폴록사머 188 | 기-액, 고-액 계면을 먼저 차지해 흔들림·펌핑·충전 중 단백질이 계면에서 풀리지 않게 한다 | 폴리소르베이트는 가수분해와 산화로 분해되며, 분해 산물은 입자를 만들고 과산화물은 단백질을 산화시킬 수 있다 |
| 염·등장화제 | 염화나트륨 | 등장성 조절, 전하 차폐 | 일부 분자에서는 콜로이드 안정성을 떨어뜨릴 수 있다 |
§7.3.2는 이 부형제들의 농도 범위(당 5–10%, 아미노산 50–200 mM, 폴리소르베이트 80 0.01–0.1%)를 제시한다. 목표치가 아니라 설계 공간의 윤곽으로 보아야 한다. 적정량은 실험으로 찾으며, 보통 5.5절의 안정성 지시 분석법을 판독값으로 삼는 실험계획법(DoE) 선별을 거친다.
피하 투여 항체 제품의 비중이 커지고 있다. 피하 투여는 주사 용량을 제한하므로 단백질 농도를 끌어올린다. 고농도에서는 점도와 자기회합이 주된 문제가 되며, 이는 제형의 pH와 부형제가 조절하는 약한 분자 간 상호작용이 좌우한다. 또한 피하 투여는 5.1절에서 든 투여 관련 면역원성 요인 가운데 하나다. 환자 편의를 위해 내린 제형 결정을 안정성 데이터와 면역원성 계획 양쪽에 비추어 다시 검토해야 하는 이유이며, 이 장이 줄곧 강조해 온 통합이 바로 이것이다.
면역원성, 안정성, 제형은 하나의 질문을 세 방향에서 본 것이다. 환자가 실제로 받는 것은 무엇이며, 몸은 그것에 어떻게 반응하는가. 이 답을 담는 WIA-BIO-016의 산출물은 다음과 같이 연결된다.
제2장 CQA (응집체, 산화, 당쇄, HCP)
| |
v v
가혹 분해 시험 (§7.1) 제형 (§7.3)
-> 안정성 지시 분석법 -> pI에서 떨어진 pH, 부형제
| |
+--------------+---------------+
v
안정성 프로그램 (ICH Q5C)
StabilityConditions / StabilityResult
predictShelfLife() -> 모델 추정치일 뿐
|
v
임상 로트 -> 단계별 ADA 분석 -> ADAData
|
v
assessImmunogenicity() -> IRS (WIA 분류용 휴리스틱)
|
v
DrugCandidate.immunogenicityRisk (제6장 관문;
'very-high'는 명시적으로 매핑)
이 영역에서 표준을 책임 있게 쓰는 방법은 세 규칙으로 요약된다. 첫째, IRS든 예측 유효기간이든 모든 파생 숫자 옆에 입력값을 함께 보고한다. 둘째, SDK가 검사하지 않는 매개변수, 특히 내약 계수와 아레니우스 입력의 단위를 직접 검증하고, 정의되지 않은 척도에 대해 택한 관례를 기록한다. 셋째, 모델 출력이 그것이 근사하는 측정을 대신하게 두지 않는다. 유효기간을 정하는 것은 실시간 안정성 데이터이고, 환자가 항체를 만드는지를 확정하는 것은 점수가 아니라 밸리데이션된 ADA 분석이다.
제6장은 이 출력들을 개발 프로토콜로 가져간다. 그곳에서 안정성 점수와 면역원성 등급은 후보 선정의 관문이 되고, 같은 분석 속성들이 대조약과 비교되어 바이오시밀러 유사성을 입증하는 근거가 된다.