제4장
탁한 수확액에서 농축되고 바이러스 안전성이 확보된 원료의약품까지 — 하류 공정의 단위 조작, WIA-BIO-015가 그 크기를 정하는 데 쓰는 식, 그리고 그 모든 단계가 지키려는 품질 속성을 다룬다.
생산 생물반응기의 운전이 끝난 시점에도 제품은 복잡한 액체 속의 소수 성분에 불과하다. CHO 유가식 배양의 수확액에는 항체 외에도 온전한 세포와 파괴된 세포, 숙주세포 단백질(HCP), 숙주 DNA, 지질, 소모된 배지 성분, 소포제가 섞여 있고, 경우에 따라 외래성 또는 내인성 바이러스 유사 입자도 들어 있을 수 있다. 하류 공정(DSP)은 제품 손실과 분자 손상을 최소화하면서 이러한 오염물을 차례로 제거하는 분리 단계의 연쇄이다. 모든 단계는 순도와 회수율을 맞바꾸며, 각 단계의 존재 이유는 그 단계가 무엇을 제거하는가로 정당화되어야 한다.
이 장은 전형적인 단일클론항체(mAb) 플랫폼 공정의 순서를 따라가며, 각 단계를 WIA-BIO-015 명세서 §5 및 참조 SDK의 ChromatographyStep, PurificationProtocol 타입과 연결한다. 명세서의 식에 보정이나 맥락이 필요한 경우에는 본문에서 이를 명시한다. 풀이 예제에 쓰인 공장 규모 수치는 모두 예시이며, 실제 공정은 자체 개발 데이터로 크기를 정해야 한다.
청징(clarification)은 제품이 들어 있는 액체를 세포와 세포 파편으로부터 분리하는 단계이다. 어려움은 입자 분포가 넓다는 데 있다. 온전한 CHO 세포의 지름은 대략 10~20 µm 수준인 반면, 용해된 세포에서 나온 파편은 서브마이크론 크기까지 내려간다. 유가식 배양 후반에 생존율이 떨어지면 미세 파편의 비율이 급격히 늘어나고, 그 결과 배치의 가치가 가장 높은 시점에 청징은 가장 어려워진다. 수확 시점 결정(제7장)과 청징 설계가 서로 묶인 의사결정인 이유가 여기에 있다.
명세서 §5.1.1은 점성 유체 속을 천천히 움직이는 작은 구형 입자의 침강을 스토크스 법칙으로 기술한다.
v = 2 · r² · (ρ_p − ρ_f) · g / (9 · η)
v 침강 속도 (m/s)
r 입자 반지름 (m)
ρ_p 입자 밀도, ρ_f 유체 밀도 (kg/m³)
g 9.81 m/s²
η 유체의 점도 (Pa·s)
이 식에서 가장 중요한 것은 r² 항이다. 예를 들어 반지름 7.5 µm, 밀도 차이 50 kg/m³인 세포가 점도 1×10⁻³ Pa·s의 배지 속에 있다고 하자. 식에 대입하면 침강 속도는 약 6×10⁻⁶ m/s, 즉 일반 중력하에서 시간당 약 2 cm이다. 같은 밀도 차이를 가진 반지름 0.5 µm의 파편은 225배 느리게, 시간당 약 0.1 mm로 가라앉는다. 따라서 생산 규모에서 미세 입자를 중력으로 가라앉히는 것은 불가능하며, 중력을 수천 배로 키우는 원심분리기조차 가장 작은 입자는 상등액에 남긴다.
원심장은 중력가속도의 배수인 상대 원심력(RCF)으로 나타낸다. 반지름 r을 cm, 회전 속도 N을 rpm으로 쓰면 명세서는 다음의 표준 실험실 관계식을 제시한다.
RCF = 1.118 × 10⁻⁵ · r · N² (r 단위 cm, N 단위 rpm)
예시: r = 10 cm, N = 4 000 rpm
RCF = 1.118e-5 × 10 × 1.6e7 ≈ 1 790 × g
RCF는 회전 속도의 제곱에 비례하므로 rpm을 두 배로 올리면 원심장은 네 배가 된다. 연속식 디스크 스택 원심분리기에서는 디스크 적층의 침강 면적까지 설계량에 포함되므로, 장비 비교와 규모 확대에는 RCF만이 아니라 등가 침강 면적을 쓰는 것이 일반적이다. 높은 RCF에는 대가가 따른다. 공급부의 전단력이 약해진 세포를 깨뜨려 새로운 미세 파편을 만들고, 그만큼 HCP와 DNA가 원심 상등액으로 더 풀려 나온다. 실무 목표는 "최대의 힘"이 아니라 "파편을 만들지 않으면서 세포를 제거할 만큼의 힘"이다.
심층 여과기(depth filter)는 셀룰로스 섬유, 여과 보조제, 하전 수지로 이루어진 두꺼운 여과층이다. 원심분리기가 남긴 미세 입자를 포집하고, 하전 성분이 DNA와 HCP 일부를 흡착하기도 한다. 소·중규모 수확에서는 원심분리 없이 심층 여과를 1차 청징으로 쓰는 경우가 많고, 대규모에서는 원심분리 뒤의 2차 청징으로 쓴 다음 포획 컬럼을 보호하는 멤브레인 필터를 이어 붙이는 구성이 흔하다.
명세서 §5.1.2는 V_capacity = A × Flux × t라는 간단한 부피 관계로 필터 크기를 정하고, 전형적인 플럭스로 50~200 L/m²/h를 든다. 식을 정리하면 배치당 필요 면적이 나온다. 예를 들어 2 000 L를 100 L/m²/h로 2시간 안에 여과하려면 2 000 / (100 × 2) = 10 m²의 필터 면적이 필요하다. 이 관계는 그 범위 안에서는 옳지만 수력학적 용량만 확인할 뿐이다. 실제 심층 여과기는 압력이 오르거나 탁도가 새어 나오기 전까지 고형물을 얼마나 붙잡을 수 있느냐로 한계가 정해지므로, 축소 모델 처리량 시험(압력 또는 탁도 종점까지 m²당 처리한 수확액 L 수)에 안전 계수를 곱해 크기를 정한다. 견고한 구현이라면 플럭스 식은 1차 추정치로 다루고, 측정된 처리량을 함께 저장해야 한다.
Protein A는 여러 IgG 아형의 Fc 영역에 높은 특이성으로 결합하는 세균 단백질로, 거의 모든 mAb 플랫폼에서 포획 단계를 맡는다. 단 한 번의 결합·용출 단계로 HCP, DNA, 배지 성분의 대부분을 제거하고 제품을 농축하며, 용출액에서는 대개 항체가 지배적인 성분이 된다. 명세서와 SDK가 모두 productType: 'antibody'의 기본 첫 단계로 Protein A를 두는 이유이다.
평형 상태에서 수지 부피당 결합한 항체량은 좋은 근사로 랭뮤어 등온식을 따른다(명세서 §5.2.1).
Q = Q_max · C / (K_d + C)
Q 결합 단백질량 (수지 L당 g, 즉 mg/mL)
Q_max 최대(포화) 용량
C 액상의 자유 단백질 농도 (g/L)
K_d 해리 상수 (g/L)
친화도가 높은 리간드에서는 K_d가 일반적인 공급 농도보다 훨씬 작으므로, 역가가 높지 않아도 수지는 포화에 가까워진다. 예시 값으로 Q_max = 50 g/L, K_d = 0.1 g/L를 두면, 2 g/L 공급액에서 Q = 50 × 2 / 2.1 ≈ 47.6 g/L로 이미 포화의 95 %에 이른다. 명세서는 Q_max를 30~50 g/L로 제시하는데, 이는 명세서가 든 예시 범위로 읽어야 한다. 수지 기술은 이후 발전하여 현재 많은 Protein A 수지가 더 높은 용량을 내세우므로, 의미 있는 값은 실제 설치된 수지에 대해 측정한 값이다.
충전 컬럼은 모든 위치에서 동시에 평형에 도달하지 않는다. 공급액이 흐르는 동안 물질 전달 영역이 층을 따라 내려가고, 이 영역이 출구에 닿으면 미결합 제품이 흘러나오기 시작한다. 따라서 실제로 쓸 수 있는 용량은 동적 결합 용량(DBC)이며, 관례상 출구 농도가 공급 농도의 10 %에 이르는 10 % 돌파 지점에서 정의한다.
DBC₁₀ = C_load · V_10% / V_resin
예시: 1.0 L 컬럼, 공급 농도 3.0 g/L,
공급액 14 L 투입 후 10 % 돌파
DBC₁₀ = 3.0 × 14 / 1.0 = 42 g/L 수지
엄밀하게는 수지 앞단의 컬럼·시스템 체류 부피를 V_10%에서 빼야 한다. 생산 규모에서는 이 보정이 작지만 소형 축소 컬럼에서는 무시할 수 없다. DBC는 층 부피를 부피 유량으로 나눈 체류 시간에 크게 좌우된다. 150 kDa 항체가 수지 비드의 기공 안으로 확산하는 속도는 느리기 때문에, 체류 시간이 짧아지면 더 많은 제품이 결합하지 못한 채 층을 통과하고 DBC가 낮아진다. 명세서는 체류 시간 6분에서 DBC 30 g/L 초과를 목표로 두며, SDK의 Protein A 단계는 residenceTime: 6, bindingCapacity: 40을 쓴다. 둘 다 계산용 기본값일 뿐 특정 수지의 성질이 아니다. 체류 시간을 늘리면 처리 속도를 잃는 대신 용량을 얻는다. 일부 공정이 부하 후반에는 느리게, 세척 단계에서는 빠르게 두 가지 체류 시간을 쓰는 이유가 이것이다.
부하가 끝나면 중간 세척(흔히 염 농도를 높이거나 완만한 첨가제를 넣은 완충액)으로 결합된 항체에 약하게 붙어 있는 HCP를 떼어 낸다. 이어 글리신, 아세트산, 시트르산 완충액 등을 이용해 낮은 pH에서 항체를 용출한다. SDK는 포획 단계의 용출 완충액을 'Glycine pH 3.5'로 기록한다. 산성 용출액은 두 번 쓸모가 있다. 제품을 작은 부피로 농축해 주고, 저pH 바이러스 불활화(4.4절)의 자연스러운 출발점이 된다. 단점도 잘 알려져 있다. 일부 항체는 낮은 pH나 중화 과정에서 응집하거나 침전하며, 소량의 Protein A 리간드가 수지에서 용출액으로 떨어져 나온다. 응집체와 유리 리간드는 모두 하류에서 제거되는데, 매우 선택적인 포획 뒤에도 정밀 정제 단계가 필요한 이유 중 하나이다.
2 000 L, 5 g/L의 예시 수확액을 생각하자. 여기에는 항체 10 kg이 들어 있다. 축소 모델 시험에서 체류 시간 6분에 DBC₁₀ = 40 g/L가 측정되었고, 수지 노화와 역가 변동에 대비해 DBC의 80 %까지만 부하한다고 가정한다(이 여유율은 설계 선택이며 여기서는 예시로 쓴다).
| 항목 | 계산 | 결과 |
|---|---|---|
| 수확액 중 제품 질량 | 2 000 L × 5 g/L | 10 000 g |
| 작업 용량 | 0.80 × 40 g/L | 수지 L당 32 g |
| 필요 수지량, 1사이클 | 10 000 / 32 | ≈ 313 L |
| 필요 수지량, 4사이클 | 10 000 / (32 × 4) | ≈ 78 L |
| 체류 시간 6분일 때 유량(층 78 L) | 78 L / 6 min | ≈ 13 L/min |
| 사이클당 부하 시간(수확액 500 L) | 500 L / 13 L/min | ≈ 38분 |
사이클을 돌리면 공정에서 가장 비싼 소모품 가운데 하나인 수지의 부피를 줄일 수 있지만, 그 대가로 시간과 완충액, 그리고 배치당 소모되는 수지 사용 횟수가 늘어난다. 이 균형은 사이클 시험으로 검증하는 수지 수명에 달려 있다. SDK와 비교해 보자. designPurification은 resinVolume: scale * startingConcentration / 40, 즉 2 000 × 5 / 40 = 250 L를 계산한다. 이는 여유율 없이 DBC를 100 % 쓰는 단일 사이클을 가정한 값이다. SDK의 수치는 자릿수가 맞는지 확인하는 1차 점검으로는 유용하지만 컬럼 설계는 아니다.
// 여유율과 사이클을 반영한 Protein A 수지량 (예시)
function proteinAResinLitres(
harvestL: number, titerGL: number,
dbcGL: number, loadFraction = 0.8, cycles = 1
): number {
if (harvestL <= 0 || titerGL <= 0 || dbcGL <= 0 || cycles < 1) {
throw new RangeError('inputs must be positive');
}
return (harvestL * titerGL) / (dbcGL * loadFraction * cycles);
}
proteinAResinLitres(2000, 5, 40, 0.8, 4); // ≈ 78.1 L
포획 이후에 남는 불순물은 제품과 닮았기 때문에 제거하기가 더 어렵다. 항체 자신의 응집체와 절편, 전하 변이체, 항체와 결합한 채 함께 정제된 잔류 HCP, 유리된 Protein A, 미량의 DNA와 바이러스가 그것이다. 정밀 정제(polishing) 단계는 Fc 친화도가 아닌 다른 물리적 성질, 곧 표면 전하와 표면 소수성을 이용해 이들을 공략한다. 단계마다 서로 다른 분리 원리를 쓰는 것이 DSP의 핵심 설계 원칙이다. 같은 성질로 분리하는 두 단계는 서로에게 보태는 것이 거의 없다.
많은 IgG1 항체는 등전점(pI)이 중성보다 높은 염기성 단백질이다. pI보다 낮은 pH에서 항체는 순양전하를 띠어 양이온 교환(CEX) 수지에 결합하고, 이후 염 농도(전도도)나 pH를 높여 용출한다. 응집체는 하전 부위를 더 많이 드러내므로 대개 단량체보다 강하게 결합하며, 용출 분획을 적절히 자르면 분리된다. CEX는 유리 Protein A와 일부 HCP도 제거하고, 산성·염기성 전하 변이체의 분포를 조정하는 데에도 쓸 수 있다. 명세서는 CEX 부하 전도도 범위로 3~8 mS/cm를 든다. 이러한 결합 범위는 제품마다 다르다. 중요한 것은 항체가 결합할 만큼 부하 전도도가 낮고, 응집체 분획 절단을 재현할 만큼 용출 조건이 엄격히 관리된다는 점이다.
음이온 교환(AEX)은 보통 반대로 운전한다. 항체의 pI보다 낮은 pH에서 제품은 양전하 또는 중성이므로 컬럼을 그대로 통과하고, DNA, 내독소, 다수의 HCP와 바이러스처럼 음전하가 강한 불순물은 결합한다. 제품이 결합하지 않으므로 수지 1 L당 매우 많은 항체를 처리할 수 있고, DNA와 바이러스를 겨냥한 전용 제거 단계로 매력적이다. 명세서는 AEX 전도도 범위로 5~15 mS/cm를 든다. 전도도가 높을수록 불순물 결합이 약해지므로, 통과 방식 AEX는 대개 제품이 견디는 범위의 낮은 쪽에서 운전한다.
여기서 SDK는 주의 깊게 읽어야 한다. 항체 템플릿은 AEX를 통과 방식(elution: 'Flow-through collection')으로 운전하면서도 bindingCapacity 60 g/L를 부여하고 제품 질량으로 수지 부피를 계산한다. 통과 방식에서 컬럼 크기를 정하는 것은 제품 질량이 아니라 불순물 부하와 선택한 부하 비율이다. 구현자는 통과 단계에서 이 필드를 적용 불가로 취급하거나, 질량 부하 한계(수지 L당 처리 제품 g)로 재정의하고 어느 의미로 쓰는지 문서화해야 한다.
이론에 관해 한 가지 짚어 둔다. 명세서 §5.2.2가 제시하는 수지 용량 식은 공인된 흡착 모델이 아니므로 이 책에서는 쓰지 않는다. 이온 교환 결합은 보통 염 농도에 따라 매개변수가 바뀌는 랭뮤어형 등온식으로, 좀 더 기계론적으로는 단백질이 형성하는 하전 접점의 수와 밀어내는 염 이온을 고려하는 입체 질량 작용(SMA) 모델로 기술한다. 어느 틀이든 핵심적인 정성 거동은 같다. 염 농도가 오르면 결합은 급격히 약해지고, pH의 작은 변화가 단백질의 전하와 결합 세기를 움직인다.
소수성 상호작용 크로마토그래피(HIC)는 노출된 소수성 표면으로 분리한다. 고농도의 코스모트로픽 염(명세서는 황산암모늄 1.0~1.5 M 또는 염화나트륨 0.5~1.0 M를 든다)은 소수성 상호작용을 강화하므로, 단백질은 높은 염에서 결합하고 염을 낮추면 용출된다. 응집체와 부분적으로 풀린 분자는 천연 단량체보다 소수성 표면을 더 드러내어 더 강하게 결합하므로, HIC는 응집체 제거에 강한 단계이다. 단점은 실무적이다. 대량의 고농도 염 용액을 준비하고 폐기해야 하며, 제품이 그 염 조건에서 안정해야 한다. SDK는 모든 템플릿 끝에 HIC 단계를 붙인다. 항체는 AEX 뒤에, 그 밖의 단백질은 포획 뒤에 온다. 이는 정당한 설계의 하나이지만, 많은 항체 공정은 같은 목적에 CEX만 쓰거나 혼합 모드 수지를 쓴다.
| 단계 | 방식 | 주로 제거하는 것 | 핵심 변수 |
|---|---|---|---|
| 원심분리 / 심층 여과 | 고액 분리 | 세포, 파편, 일부 DNA/HCP(하전 여재) | RCF, 처리량(L/m²), 플럭스 |
| Protein A | 결합·용출 | 대부분의 HCP, DNA, 배지 성분 | DBC, 체류 시간, 용출 pH |
| 저pH 유지 | 회분식 유지 | 외피 바이러스 | pH, 시간, 온도 |
| 양이온 교환 | 결합·용출 | 응집체, 유리 Protein A, HCP, 전하 변이체 | 부하 pH·전도도, 용출 구배 |
| 음이온 교환 | 통과 | DNA, 내독소, HCP, 바이러스 | pH, 낮은 전도도, 질량 부하 |
| HIC(선택) | 결합·용출 또는 통과 | 응집체, 소수성 변이체 | 염 종류와 농도 |
| 바이러스 여과 | 멤브레인 크기 배제 | 소형 비외피 바이러스를 포함한 바이러스 | 기공 등급, 압력, 처리량 |
| UF/DF | 접선 흐름 여과 | 완충액 성분 교환, 제품 농축 | TMP, 농축 배율, 정용 부피 수 |
SDK에서 크로마토그래피 행은 각각 PurificationProtocol.steps의 ChromatographyStep 객체 하나가 된다. 타입 유니언 'protein-a' | 'cation-exchange' | 'anion-exchange' | 'hydrophobic' | 'size-exclusion' | 'multimodal'은 크로마토그래피 행만 포괄한다. 바이러스 불활화는 프로토콜의 불리언 플래그 viralInactivation 하나로만 표현되며, 바이러스 여과와 UF/DF에는 고유 타입이 없다. 4.2.4절의 Protein A 단계를 SDK가 직렬화하는 형태로 쓰면 다음과 같다.
{
"stepNumber": 1,
"name": "Protein A Affinity Chromatography",
"type": "protein-a",
"resinVolume": 78,
"bindingCapacity": 40,
"loadVolume": 2000,
"recovery": 95,
"purity": 95,
"residenceTime": 6,
"buffers": {
"equilibration": "PBS pH 7.4",
"load": "Harvest (clarified)",
"wash": "PBS pH 7.4",
"elution": "Glycine pH 3.5"
}
}
이 객체에는 사이클 수를 담을 필드가 없다는 점에 유의해야 한다. 네 사이클을 도는 78 L 컬럼과 단순히 작게 설계된 78 L 컬럼이 구별되지 않는다. 타입에 cycles 필드가 생기기 전까지는 단계 name이나 배치 기록에 사이클 정보를 남기고, resinVolume만으로 용량을 역산하지 말아야 한다.
포유류 세포주는 내인성 레트로바이러스 유사 입자를 지닐 수 있고, 동물 유래 원료나 개방형 조작을 쓰는 공정은 외래성 오염의 위험을 안는다. 시험만으로는 바이러스가 없음을 증명할 수 없으므로, 바이러스 안전성은 ICH Q5A(R2)가 설명하는 세 가지 상호 보완 요소에 기댄다. 원료의 선정과 시험, 적절한 단계에서의 제품 시험, 그리고 정제 공정이 바이러스를 제거하거나 불활화한다는 입증이다. 세 번째 요소가 DSP의 몫이다.
제거능은 소규모 스파이킹 시험으로 측정한다. 한 단계의 부하액에 모델 바이러스를 알려진 양만큼 넣고, 제품 분획의 감염역가를 측정한다. 로그 감소값(LRV)은 다음과 같다.
LRV = log₁₀( 부하액 중 총 바이러스량 / 제품 중 총 바이러스량 )
예시: 투입 10⁷·⁰ 감염 단위, 산출 10²·⁵
LRV = 7.0 − 2.5 = 4.5
단계를 거치며 부피가 바뀌므로 농도가 아닌 총량을 비교한다. 산출액이 분석법의 검출 한계 아래로 떨어지면 LRV는 계산값 "이상"으로 보고한다. 공정 전체의 제거능은 각 단계 LRV의 합이지만, 그 메커니즘이 실제로 독립적인 단계끼리만 더할 수 있다. 저pH 처리를 두 번 한다고 독립적인 감소가 두 번 생기지는 않으며, 앞선 단계가 이미 소진한 메커니즘에 기대는 단계의 기여는 계산하지 않는다.
Protein A 용출액은 이미 산성이므로, 정해진 시간 동안 낮은 pH로 유지하는 데에는 추가 비용이 거의 들지 않는다. 명세서 §5.3.1은 실온(20~25 °C)에서 pH 3.3~3.8, 30~60분을 제시한다. 이 방법은 지질 외피와 외피 단백질을 교란하므로 외피 바이러스에 작용하며, 소형 비외피 바이러스는 대체로 저항성을 보인다. 효과는 pH, 시간, 온도, 매질에 좌우되며, pH가 낮을수록 빠르게 작용하지만 응집 위험도 커진다. 처리가 끝난 풀은 다음 단계를 위해 중화한다. 명세서의 "4 log₁₀ 초과 감소"는 외피 모델 바이러스에서 흔히 얻는 결과일 뿐 보장된 값이 아니다. 각 공정은 자체 최악 조건(예를 들어 허용 최고 pH와 허용 최단 시간)에서 자체 LRV를 입증해야 한다.
용매/계면활성제(S/D) 처리는 바이러스의 지질 외피를 화학적으로 녹인다. 명세서의 조성은 트리-n-부틸 포스페이트(TNBP) 0.3 %와 Triton X-100 또는 Tween 80 1.0 %이며, 실온에서 1~4시간 유지한다. 저pH와 마찬가지로 S/D는 외피 바이러스에만 작용하며, 처리 후에는 보통 결합·용출 크로마토그래피로 시약을 제거하고 잔류량을 입증해야 한다. S/D는 혈장 유래 제제에서 오랜 사용 이력이 있고, 저pH를 견디지 못하는 일부 재조합 공정에서도 쓰인다. Triton X-100은 분해 산물의 환경 특성 때문에 유럽연합에서 규제 제한을 받게 되었고, 이로 인해 많은 제조사가 대체 계면활성제를 평가하게 되었다.
위의 두 불활화 방법은 모두 외피를 겨냥하므로, 견고한 공정은 다른 원리로 작동하는 단계를 추가한다. 통과 방식 AEX는 전하로 많은 바이러스를 제거한다. 바이러스 여과는 약 20 nm 입자를 걸러 내도록 등급이 매겨진 멤브레인으로 크기에 따라 바이러스를 제거하며, 파보바이러스 같은 소형 비외피 바이러스에 대한 주된 방벽이다. 불활화(화학), 흡착(전하), 여과(크기)를 조합하는 것이 실무에서 말하는 "직교성"이다. 표준 v1.0에는 바이러스 여과를 위한 타입이 없고, 바이러스 안전성은 viralInactivation: true로만 표현된다. LRV를 기록해야 하는 구현이라면 모델을 확장해야 하며, 제8장은 이를 변경 제안 항목으로 다룬다.
대부분의 공정은 마지막 단계에서 제품 크기보다 훨씬 작은 분획 분자량(MWCO)의 멤브레인으로 접선 흐름 여과(TFF)를 수행한다. 명세서의 예시는 약 150 kDa 항체에 대해 30 kDa이다. 한외여과(UF)에서는 걸러지지 않고 남은 제품이 농축되고, 정용여과(DF)에서는 투과액을 빼내는 만큼 새 완충액을 넣어 제품 주변의 완충액을 제형 완충액으로 바꾼다.
명세서 §5.4.1은 투과 플럭스를 깨끗한 멤브레인을 통과하는 다르시 법칙으로 쓴다.
J = ΔP / (μ · R_m)
J 투과 플럭스 (m³/m²/s = m/s)
ΔP 막간 압력차 (Pa)
μ 투과액 점도 (Pa·s)
R_m 멤브레인 수력 저항 (1/m)
예시: ΔP = 1 bar = 1×10⁵ Pa, μ = 1×10⁻³ Pa·s, R_m = 1×10¹² m⁻¹
J = 1×10⁻⁴ m/s = 360 L/m²/h (깨끗한 멤브레인의 순수 플럭스)
명세서는 J를 L/m²/h로, ΔP를 bar로 표기하지만, 이 식은 일관된 SI 단위에서만 성립하며 결과를 나중에 환산해야 한다(1 m/s = 3.6×10⁶ L/m²/h). 더 중요한 점은 명세서가 드는 전형적 공정 플럭스 30~100 L/m²/h가 이 예시의 순수 플럭스보다 훨씬 낮다는 것이다. 그 차이는 농도 분극에서 온다. 걸러진 단백질이 멤브레인 표면의 경계층에 쌓이면서 저항을 더한다. 공정 작업에 필요한 최소 모델은 직렬 저항식 J = ΔP / (μ(R_m + R_p))이며, 고농도에서는 플럭스가 압력에 거의 무관해지고 물질 전달이 이를 지배한다. 운전자가 멤브레인이 견디는 최고 압력이 아니라 플럭스–TMP 곡선의 "무릎" 근처에서 UF를 운전하는 이유, 그리고 교차 유량이 압력만큼 중요한 이유가 이것이다.
농축 배율은 CF = V_initial / V_final이다. 정밀 정제 풀 500 L를 50 L로 농축하면 CF = 10으로, 명세서가 드는 전형적 범위 5~10배 안에 든다. 멤브레인이 제품을 완전히 저지하면 제품 농도도 같은 배율로 오른다. 항체 농도가 높아지면 점도가 가파르게 올라 농축 한계와 공급 채널이 견딜 수 있는 압력 강하를 제한하므로, CF의 상한은 멤브레인보다 점도가 정하는 경우가 많다.
정부피 정용여과에서는 투과액이 빠져나가는 속도와 같은 속도로 완충액을 넣는다. 멤브레인을 자유롭게 통과하는(체거름 계수 1) 용질에 대해, 잘 섞인 잔류액의 물질 수지는 지수적 세척을 준다.
C / C₀ = e^(−N), N = 투입 완충액 부피 / 잔류액 부피 (정용 부피 수)
명세서의 "DV = 5~10 × V_final"은 정용 부피 5~10회를 뜻한다. 아래 표는 이 범위가 흔히 쓰이는 이유를 보여 준다.
| 정용 부피 수 N | 잔류 분율 e−N | 교환율 |
|---|---|---|
| 1 | 0.368 | 63.2 % |
| 2 | 0.135 | 86.5 % |
| 3 | 0.0498 | 95.0 % |
| 4 | 0.0183 | 98.2 % |
| 5 | 0.00674 | 99.33 % |
| 6 | 0.00248 | 99.75 % |
| 7 | 0.000912 | 99.91 % |
| 8 | 0.000335 | 99.97 % |
| 9 | 0.000123 | 99.99 % |
| 10 | 0.0000454 | 99.995 % |
정용 부피를 한 번 더할 때마다 남은 양의 같은 비율이 제거되므로 수익은 빠르게 줄어든다. 5회면 자유 투과 완충액 성분의 약 99.3 %가 제거되지만, 8회에서 10회로 늘리면 교환율은 거의 늘지 않으면서 완충액과 시간은 25 % 더 든다. 실제 용질이 늘 이상적으로 거동하지는 않는다. 하전된 부형제는 단백질과의 정전기적(도난) 효과로 붙잡힐 수 있고, 체거름 계수가 S인 용질은 e−S·N으로 세척되므로, 필요한 정용 부피 수는 규격이 걸린 성분 가운데 가장 느리게 빠지는 성분이 정한다.
같은 식으로 제품 손실도 추정할 수 있다. 멤브레인이 제품을 저지 계수 R로 저지한다면, N회 정용 후 남는 제품 분율은 e−N(1−R)이다. R = 0.999, N = 8이면 e−0.008 ≈ 0.992로 약 0.8 %가 손실된다. 분획 분자량이 부적절한 멤브레인은 긴 정용여과 동안 제품을 천천히, 그러나 꾸준히 잃는다.
// 체거름 계수 S인 용질이 목표 잔류 분율에 도달하는 데 필요한 정용 부피 수
function diavolumesFor(residual: number, sieving = 1): number {
if (residual <= 0 || residual >= 1 || sieving <= 0) {
throw new RangeError('0 < residual < 1 and sieving > 0 required');
}
return -Math.log(residual) / sieving;
}
diavolumesFor(0.01); // ≈ 4.6 (99 % 교환, 이상적 용질)
diavolumesFor(0.01, 0.7); // ≈ 6.6 (일부 저지되는 부형제)
핵심 품질 속성(CQA)이란 원하는 제품 품질을 보장하기 위해 적절한 한도, 범위 또는 분포 안에 있어야 하는 물리적·화학적·생물학적·미생물학적 성질이다(ICH Q8(R2)의 정의). 하류 단계는 자신이 관리하는 CQA를 중심으로 설계되고 이후 밸리데이션된다. 여기서 두 개념은 구분해야 한다. CQA는 "응집체 함량" 같은 속성 자체이며, 그 중요도는 안전성·유효성과의 연결에서 나온다. 규격은 "SEC 기준 5 % 이하" 같은 출하 판정 기준이며, 제품마다 다르고 규제 기관과 협의하여 임상·제조 경험으로 정당화된다.
명세서 §7.1.1은 단일클론항체의 한도를 나열한다. 아래에 이를 보편적 요건이 아닌 예시 mAb 규격으로 옮긴다. 잔류 DNA 수치인 1회 투여량당 10 ng은 연속 세포주 유래 제품에 대한 WHO 권고에서 나온 값이다.
| CQA | 대표 분석법 | 예시 한도(명세서 §7.1.1) | 주요 DSP 관리 단계 |
|---|---|---|---|
| 순도(단량체/주 피크) | HPLC, CE-SDS | > 95 % | 공정 전체 |
| 응집체(고분자량 성분) | SEC-HPLC | < 5 % | CEX, HIC; 저pH·중화 조건 |
| 전하 변이체 | IEX-HPLC, cIEF | 산성 + 염기성 < 40 % | 대부분 상류에서 결정; CEX로 일부 조정 |
| 당쇄화 | 유리 당쇄 분석 | G0F 35~55 %, 고만노스 < 5 % | 거의 전적으로 상류에서 결정 |
| 숙주세포 단백질 | ELISA, LC-MS | < 100 ppm (ng/mg) | Protein A, AEX, CEX |
| 잔류 DNA | qPCR | < 10 ng/dose | AEX, 심층 여과, Protein A |
| 내독소 | LAL / 재조합 C 인자 | < 5 EU/mg | AEX, 생물부하 관리 |
마지막 열은 바이오의약품의 구조적 사실 하나를 드러낸다. 어떤 CQA는 하류에서 고칠 수 없다. 당쇄 프로파일과 전하 이질성의 대부분은 세포주, 배지, 그리고 온도·pH 같은 조건(제3장)에 의해 생물반응기에서 만들어진다. 정제는 불순물을 제거할 뿐, 빠진 갈락토스를 다시 붙이지는 못한다. 따라서 당쇄화 일탈은 출하 시험에서 처음 측정되더라도 상류에서 조사한다.
HCP는 따로 짚어 둘 만하다. ELISA로 잰 총 HCP는 항체 시약이 숙주 단백질체를 얼마나 포괄하느냐에 따라 신뢰도가 정해지며, 소수의 개별 HCP가 특정 항체와 함께 정제되어 질량에 비해 과도한 문제를 일으킬 수 있다. 제형 속 폴리소르베이트를 분해하는 리파아제가 그 예이다. 이런 이유로 개별 HCP를 질량분석으로 프로파일링하는 방법이 총 HCP 수치를 보완하는 수단으로 널리 쓰이게 되었다.
WIA-BIO-015에서 측정된 각 속성은 CriticalQualityAttribute 하나가 되며, value, unit, 선택 항목 lsl/usl/target, 불리언 inSpec, 그리고 'high' | 'medium' | 'low' 중 하나인 criticality를 가진다. 앞의 논의에서 두 가지 실무 규칙이 나온다. 첫째, unit은 분석법이 보고한 그대로 옮긴다(ppm과 ng/mg은 같지만 EU/mg와 EU/mL는 다르다). 둘째, inSpec은 손으로 정하지 말고 한도로부터 계산하여 기록이 스스로 모순되지 않게 한다.
{
"name": "HMW species (SEC)",
"value": 1.8,
"unit": "%",
"usl": 5.0,
"inSpec": true,
"criticality": "high"
}
모든 단계는 제품을 조금씩 잃는다. 일부는 결합하거나 용출되지 못하고, 일부는 불순물과 함께 잘려 나가며, 일부는 체류 부피와 필터에 남는다. 각 단계는 앞 단계가 넘겨준 것을 처리하므로 단계 회수율은 곱해진다. SDK는 항체용 크로마토그래피 세 단계에 95 %, 92 %, 90 %의 회수율을 쓴다.
전체 = 0.95 × 0.92 × 0.90 = 0.7866 → 78.7 %
하나하나는 좋아 보이는 세 단계만으로도 이미 제품의 5분의 1 이상을 잃는다. 크로마토그래피가 아닌 단계를 더하면 효과가 더 분명해진다. 저pH 유지 98 %, 바이러스 여과 97 %, UF/DF 97 %의 예시 회수율을 적용하면 다음과 같다.
| 단계 | 단계 회수율(예시) | 누적 | 10 kg 중 남는 제품 |
|---|---|---|---|
| Protein A | 95 % | 95.0 % | 9.50 kg |
| 저pH 유지 | 98 % | 93.1 % | 9.31 kg |
| AEX | 92 % | 85.7 % | 8.57 kg |
| HIC | 90 % | 77.1 % | 7.71 kg |
| 바이러스 여과 | 97 % | 74.8 % | 7.48 kg |
| UF/DF | 97 % | 72.5 % | 7.25 kg |
설계와 원가에 중요한 결과가 두 가지 있다. 첫째, 회수율 개선의 가치는 제품의 누적 가치가 가장 높은 곳에서 가장 크다. 공정 후반에 잃는 물질은 앞선 모든 단계의 비용을 이미 흡수한 상태이기 때문이다. 둘째, 단계를 하나 없애는 것이 그 단계를 최적화하는 것보다 전체 수율을 더 크게 올릴 수 있다. 2컬럼 정밀 정제 플랫폼과 통과 방식 단계가 주목받는 논거가 이것이다. 반대로 각 단계는 어떤 CQA나 제거 요건 때문에 존재하므로, 남은 단계들이 4.6절의 모든 한도를 여전히 만족함이 입증될 때에만 단계를 뺄 수 있다.
참조 SDK는 단계 회수율이 고정 상수이므로 어떤 항체 입력에도 overallRecovery: 78.66을 보고한다. 바이러스 불활화와 UF/DF의 시간은 duration에 더하면서도(크로마토그래피 단계당 8시간에 2시간과 4시간을 더해 총 30시간) 그 손실은 무시한다. costPerGram(50 + 단계당 20, 세 단계면 110 $/g)은 자리 표시용 식일 뿐 원가 기준값이 아니다. 또한 SDK는 PurificationDesign에서 targetPurity와 targetRecovery를 읽어 들이지만 사용하지 않는다. 회수율 90 %를 요청해도 경고 없이 같은 78.66 %를 돌려준다. 적합한 구현이라면 최소한 계산된 회수율·순도를 목표와 비교하고, 목표에 못 미치는 프로토콜을 조용히 반환하는 대신 그 차이를 표시해야 한다(예를 들어 B009, OUT_OF_SPEC). SDK의 동작은 제6장에서 자세히 다룬다.
// 단계별 회수율 누적과 목표 점검 (예시)
function overallRecovery(stepRecoveriesPct: number[]): number {
return stepRecoveriesPct.reduce((acc, r) => acc * (r / 100), 1) * 100;
}
const overall = overallRecovery([95, 98, 92, 90, 97, 97]); // ≈ 72.5
const target = 80;
if (overall < target) {
console.warn(`recovery ${overall.toFixed(1)} % below target ${target} %`);
}
resinVolume은 여유율 없는 단일 사이클을 가정한다.designPurification은 고정 회수율을 쓰고, 목표값을 무시하며, 사이클·LRV·바이러스 여과·UF/DF를 위한 필드가 없다. 이 공백은 제5·6·8장에서 다시 다룬다.