본문으로 건너뛰기

폴리싱 모델링: 다단계 정제와 품질 속성

📍 현재 위치: 제4부 · 모델링한 하류 — 제15장. 제품은 포획되었고 바이러스 안전성도 확보되었습니다. 이 장에서는 마무리 정제를 모델링하며 — 이를 통해 어떤 단일 단계도 만들어내지 않는 품질을 그래프가 어떻게 표현하는지를 정면으로 마주합니다.

포획(capture)바이러스 안전성(viral safety)을 거치고 나면, 항체는 대체로 순수하지만 아직 규격에는 도달하지 않은 상태입니다. 폴리싱(polishing) — 보통 하나 이상의 이온교환 크로마토그래피 단계 — 은 마지막 불순물을 제거하고, 무엇보다도 원하는 항체를 그와 밀접하게 관련된 제품 변이체(product variants)로부터 분리해 냅니다. 응집체(고분자량 종), 전하 변이체, 단편이 그것입니다 [1][3]. 각 단계는 익숙한 derivedFrom 간선을 놓고, 익숙한 인-프로세스 품질 결과를 실어 나릅니다. 그러나 폴리싱은 지금껏 모델이 회피해 온 질문을 표면 위로 끌어올립니다. 최종 단량체 순도(monomer purity)98.611 %일 때, 어느 단계가 그렇게 만들었는가? 정직한 답 — "전부가, 누적적으로" — 는 들리는 것보다 모델링하기가 어렵습니다.

쉽게 말하면

거친 보석을 다듬는 일은 점점 더 고운 입자로 여러 번 갈아 내는 과정입니다. 마지막 광택은 어느 한 번의 작업이 아니라 그 순서 전체가 빚어낸 것입니다. 누군가 "어느 작업이 윤기를 냈나요?"라고 묻는다면, 정직한 답은 "그 순서가 했습니다"입니다. 순도 같은 품질 속성(quality attribute)도 마찬가지입니다. 각 폴리싱 단계가 그것을 조금씩 밀어 올리고, 최종 값은 사슬에서 떠오릅니다. 이 장은 바로 그것을 모델링합니다 — 어떤 단일 단계도 소유하지 않는 품질을 그래프가 어떻게 기록하는지, 그리고 어느 한 지점에서 만들어진 것이 아니라 빚어진 숫자에 대해 어떻게 보관 사슬을 유지하는지를 다룹니다.

이 장에서 다루는 내용

우리는 폴리싱 단계를 품질 속성을 점진적으로 개선하는 단위 공정으로 모델링하고, 제품 변이체를 분리되어 빠져나가는 개체로 모델링하며, 하나의 폴리싱 단계를 해부합니다. 이 장의 무게중심은 귀속 문제(attribution problem)에 있습니다. 사슬 전체에 걸쳐 누적적으로 빚어진 핵심품질속성(CQA)을 그래프가 어떻게 표현하는지, 왜 어떤 단일 노드도 최종 값을 "소유"하지 않는지, 그리고 그것이 사슬을 따라가는 인-프로세스 결과들을 그것을 예측했던 설계 공간(design space) 지식과 어떻게 연결하는지를 다룹니다.

각 단계는 품질 속성을 조금씩 밀어 올리고, 변이체는 실재하는 개체다

폴리싱 단계는 입력 물질을 더 순수한 출력으로 변환하며, 흥미로운 사실은 그것이 움직이는 품질 속성들입니다. 진행 중인 예제에서 양이온교환 단계 bp:POL-001은 바이러스 여과 풀 bp:VFpool-001을 폴리싱된 풀 bp:POLpool-001로 가져가면서, 인-프로세스 고분자량(HMW) 응집체 분율을 포획 이후 측정된 4.1 %에서 폴리싱 이후 1.4 %로 낮추고, 전하 변이체 주피크를 70.9 %로 기록합니다 [3]. 각 중간체는 bp:hasInProcessResult를 통해 자신의 인-프로세스 결과 — 입증된 품질로서, 분석 장(analytical chapter)에서와 똑같이 — 를 실어 나르고, 설계-공간 링크 affectsQuality공정 파라미터(process parameters)를 그것들이 유형 수준에서 움직이는 속성들에 묶습니다. 제거되는 변이체(variants)는 그 자체로 개체로 모델링됩니다. bp:AGG-1(bp:Aggregate)과 bp:CHV-1(bp:ChargeVariant)은 둘 다 bp:VFpool-001에서 derivedFrom 관계를 갖고 bp:WASTE-polroutedTo되므로, 그래프는 무엇이 제거되었고 어디로 갔는지를 추적합니다 — 청징(clarification)이 도입한, 하나는-지키고-다른-하나는-버리는 동일한 패턴을, 이제 세포가 아니라 분자 변이체에 적용한 것입니다.

폴리싱이 억제하려고 존재하는 응집체 속성은 어휘 안에서 그 자체로 유형화된 품질로서 — bp:Quality 클래스 아래에 bp:MonomerContent의 형제인 bp:AggregateContent — 자리하며, 폴리싱 단계, 그 출력 풀, 분리된 변이체, 그리고 인-프로세스 궤적 결과는 모두 instances.ttl 안의 실재하는 개체입니다.

@prefix bp: <https://example.org/bioproc#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

bp:POLpool-001 a bp:PolishingIntermediate ; rdfs:label "polished pool" ;
bp:derivedFrom bp:VFpool-001 ;
bp:participatesIn bp:POL-001 ;
bp:hasInProcessResult bp:IPR-pol-hmw , bp:IPR-pol-cex .
bp:POL-001 a bp:IonExchangeChromatography ; rdfs:label "cation-exchange polishing step" ;
bp:hasInput bp:VFpool-001 ; bp:hasOutput bp:POLpool-001 ;
bp:removesVariant bp:AGG-1 , bp:CHV-1 .
bp:AGG-1 a bp:Aggregate ; rdfs:label "removed HMW aggregate" ; bp:derivedFrom bp:VFpool-001 ; bp:routedTo bp:WASTE-pol .
bp:CHV-1 a bp:ChargeVariant ; rdfs:label "removed acidic charge variant" ; bp:derivedFrom bp:VFpool-001 ; bp:routedTo bp:WASTE-pol .

# In-process trajectory results along the chain (correlation, not causation).
bp:IPR-cap-hmw a bp:InProcessResult ; bp:isAbout bp:PApool-001 ; bp:hmwPct "4.1"^^xsd:float .
bp:IPR-pol-hmw a bp:InProcessResult ; bp:isAbout bp:POLpool-001 ; bp:hmwPct "1.4"^^xsd:float .

이 개체들이 인스턴스화하는 클래스는 align.ttl에서 위로 접지됩니다 — 단계는 IOF 바이오파마 모듈로, 속성과 그 형제는 BFO 품질 범주로, 변이체 개체와 관계는 정직하게 로컬로 둡니다.

# align.ttl — the polishing classes grounded UP (excerpt).
bp:PolishingStep rdfs:subClassOf iof:PolishingProcess . # IOF biopharma 'polishing process' (Released, Release_202602)
bp:AggregateContent rdfs:subClassOf bp:Quality . # and bp:Quality rdfs:subClassOf obo:BFO_0000019 — BFO 'quality'
bp:MonomerContent rdfs:subClassOf bp:Quality . # its sibling attribute, on the same BFO grounding
# bp:IonExchangeChromatography inherits bp:PolishingStep (no distinct IOF leaf for cation-exchange polishing);
# bp:Aggregate / bp:ChargeVariant are bp:ProductVariant leaves, and bp:removesVariant / bp:routedTo are local
# QbD relations — all ILLUSTRATIVE, since no settled 1:1 OBO/IOF term exists for product variants or these edges.

귀속 문제: 단계가 아니라 사슬이 소유하는 품질

여기 모델링의 수수께끼가 있습니다. 출하 시점의 단량체 순도는 98.611 %라는 하나의 숫자이며, 어느 한 폴리싱 단계를 그 원천으로 가리키고 싶은 유혹이 있습니다. 그러나 순도는 포획에서 높아졌고, 바이러스 안전성을 거치며 보호되었으며, 각 폴리싱 단계에 걸쳐 정제되었습니다 — 그것은 정제 사슬 전체의 누적적이고 거의 창발적인 속성입니다. 그래프는 각 단계의 인-프로세스 결과를 기록하므로, 한 속성의 궤적(trajectory)은 가시화됩니다 — HMW 응집체의 경우 모델링된 사슬은 포획 이후 4.1 %에서 폴리싱 이후 1.4 %, 출하 시점 1.287 %로 이어집니다. 그러나 최종 값은 어떤 단일 노드에 의해 야기된 것이 아닙니다. 그것은 점진적 개선의 사슬이 도달한 종점입니다. 올바른 모델은 단일한 "순도-결정 단계"를 단언하려는 충동에 저항하고, 대신 궤적을 표현합니다. 각 지점에서의 속성 값을 실어 나르는 물질들의 시퀀스를 표현함으로써, 분석가는 어디서 이득이 생겼는지 볼 수 있고, 설계 공간(design space) 모델은 각 공정이 무엇을 하도록 예측되었는지에 비추어 단계별로 점검될 수 있습니다.

이는 derivedFrom 자체를 다시 짜냅니다. 사슬에 걸쳐 그것은 단지 계보가 아니라 품질의 보관 사슬(chain of custody for quality)입니다. 각 간선은 물질 그 속성들의 진화하는 상태를 함께 실어 나르므로, 그래프는 "이것은 어디서 왔는가?"뿐 아니라 "그 순도는 단계별로 어떻게 여기에 이르렀는가?"에도 답할 수 있습니다. 그 두 번째 질문이 바로 계보를 공정 이해(process understanding) 기록으로 바꾸는 것이며, 그것은 이 장의 인-프로세스 궤적에서 그 종점을 읽어 내는 출하 결정(release decision)으로 이어지는 다리입니다.

세 공정 단계에 걸친 HMW 응집체 백분율의 선 그래프. 골든 궤적은 포획 이후(PApool-001) 4.1퍼센트에서 폴리싱 이후(POLpool-001) 1.4퍼센트, 출하 시점(DS-001) 1.287퍼센트로 내려가며, 모두 2.0퍼센트의 점선 출하 상한선(허용 기준 AC-hmw) 아래에 있다. 규격을 벗어난 형제 DP-004는 상한 위 2.41퍼센트에 찍힌다. 폴리싱이 응집체 AGG-1과 전하 변이체 CHV-1을 폐기로 제거한다는 주석이 달려 있다. 하나의 품질 속성을 단일 지점이 아니라 궤적으로: HMW 응집체는 포획, 폴리싱, 출하를 거치며 떨어지고, 규격을 벗어난 형제 DP-004가 2.41퍼센트로 넘어서는 2.0퍼센트 상한 아래에 머뭅니다 — 그 하락은 폴리싱이 폐기로 보내는 변이체들이 이끈 것입니다. 저자가 AI의 도움을 받아 직접 제작한 그림입니다.

폴리싱이 응집체를 그 아래로 몰아붙여야 하는 종점은 서사가 아닙니다 — 그것은 출하 게이트 안의 기계로 검사 가능한 제약입니다. 게이트는 사슬이 로트 위에 쌓아 둔 바로 그 bp:hmwPct 스칼라를 읽어 상한을 넘는 값은 무엇이든 거부합니다. 이것이 규격을 벗어난 형제 DP-004가 걸려 넘어지는 단일 기준이며, 그 단량체는 규격 안에 머무는 반면 응집체는 상한 2.0 %에 대해 2.41 %로 나타납니다.

@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix bp: <https://example.org/bioproc#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

bp:ReleaseShape a sh:NodeShape ;
sh:targetClass bp:DrugSubstance , bp:DrugProduct ;
sh:property [
sh:path bp:hmwPct ;
sh:name "SEC %HMW aggregate" ;
sh:minCount 1 ; sh:maxCount 1 ;
sh:datatype xsd:float ;
sh:maxInclusive 2.0 ;
sh:message "HMW aggregate is missing or above the 2.0 % release limit." ] .

전체 그래프에 대해 실행하면 이 게이트는 DS-001DP-001에 대해서는 적합(conform)하고, 형제 계보에 대해서는 단 하나의 위반을 보고합니다 — 폴리싱이 응집체를 충분히 걷어 내지 못한, 현실적인 규격 이탈 양상입니다.

[4] SHACL whole-graph conforms: False # DS-004/DP-004 fail hmwPct MaxInclusive (2.41 > 2.0)
violating focus nodes: ['DP-004', 'DS-004'] failing paths: ['hmwPct']
DS-001-only graph conforms: True

양이온교환 폴리싱 단계 POL-001과 그것이 HMW-응집체 궤적에서 차지하는 자리를 해부하는 신원 카드: 들어오는 HMW-응집체 및 전하-변이체 값을 지닌, 바이러스 여과 풀 VFpool-001에 대한 입력 행; 이온교환 단위 공정으로 유형화된 공정 행; 개선된 속성 값(HMW 감소, 전하 프로파일 조임)을 지닌 폴리싱된 풀 POLpool-001에 대한 출력 행; 응집체 AGG-1과 전하 변이체 CHV-1을 VFpool-001에서 derivedFrom 관계를 갖고 폴리싱 폐기 흐름으로 보내지는 별개의 개체로 모델링한 제거-변이체 행; 그 단계를 그것이 움직이는 속성들에 연결하는 affectsQuality 행; 그리고 HMW-응집체 값이 사슬을 거치며 포획 이후 4.1에서 폴리싱 이후 1.4, 출하 시점 1.287로 떨어지는 모습을 보여 주며 어떤 단일 노드도 최종 값을 소유하지 않는다고 주석한 바닥의 궤적 띠. 맥락 속의 폴리싱 단계: 그것은 품질 속성을 조금씩 밀어 올리고 분리된 변이체를 폐기로 보내며, 궤적 띠는 순도를 사슬 전체의 누적 속성으로 — 단일한 결정 단계가 아니라 품질의 보관 사슬로 — 보여 줍니다. 저자가 AI의 도움을 받아 직접 제작한 그림입니다.

미해결 과제: 사슬을 따라 원인을 귀속시키기

귀속 문제는 강한 의미에서 진정으로 미해결이며, 그 이유를 정확히 짚어 둘 가치가 있습니다. 그래프는 품질 속성의 궤적 — 각 단계 이후의 값 — 을 충실하게 기록할 수 있지만, 궤적은 상관관계이지 인과관계가 아닙니다. "순도는 폴리싱 단계에서 가장 많이 올랐다"고 말하는 것이 폴리싱 단계가 최종 품질을 야기했음을 입증하지는 않습니다. 단계들은 서로 독립적이지 않기 때문입니다. 폴리싱 단계가 달성할 수 있는 것은 포획이 그것에 무엇을 남겼는지에 달려 있고, 같은 최종 순도가 사슬 전체에 걸친 다른 역할 분담으로도 도달되었을 수 있습니다. 모델은 값이 어디서 변했는지는 보여 줄 수 있지만, 계보만으로는 상호작용하는 단계들 사이에 공이나 책임을 배분할 수 없습니다. 그 배분은 그래프가 단지 색인할 뿐인 설계-공간 모델(design-space models)과 공정 지식을 필요로 하는 인과 추론 질문이지, 그래프가 저장하는 계보가 아닙니다 — 공정 개발 장(process-development chapter)이 그래프와 반응 표면 사이에 그었던 바로 그 경계입니다.

두 번째이자 실무적인 간극은, 인-프로세스 결과와 출하 결과가 서로 다른 권위 수준에 산다는 것입니다. 폴리싱-1 이후의 인-프로세스 순도는 공정 관리 측정값이고, 원료의약품(drug substance)의 출하 순도는 법적 구속력을 갖는 결과입니다. 이 둘을 같은 종류의 사실인 양 기록하는 그래프는 중요한 구별을 흐립니다 — 바이러스 안전성 장(viral-safety chapter)이 요구했던 것과 동일한 검증-대-측정, 그리고 인-프로세스-대-출하의 주의입니다. 그러므로 정직한 기준은, 그래프가 품질 속성의 이력을 기록하는 데에는 탁월하되 그것을 빚어낸 단계들 사이의 인과에 대해서는 침묵한다는 것입니다. 궤적을 모델링하는 것은 실재하고 가치 있는 일인 반면, 단일 단계가 결과를 "소유"한다고 주장하는 것은 이 책 전체가 경고하는 바로 그런 종류의 자신만만한 과도한 주장입니다.

왜 중요한가

폴리싱은 제품이 규격에 도달하는 곳이며, 모델이 품질을 하나의 노드가 가진 속성이 아니라 이력으로 표현하는 법을 배우는 곳입니다. 사슬에 걸친 속성 궤적을 기록하면 그래프는 조사("이 배치는 골든 배치와 비교해 순도가 어디서 떨어졌는가?")와 검증("각 단계가 설계 공간이 예측한 대로 속성을 움직였는가?") 양쪽을 지원합니다. 사슬을 단일한 최종 숫자로 무너뜨리거나 한 단계가 그것을 야기했다고 가장하면, 모델은 일탈을 진단 가능하게 만드는 단계별 이해를 잃습니다. 여기서 확립한 품질의-보관-사슬 틀이야말로 디지털 스레드 장(digital-thread chapter)이 계보뿐 아니라 그를 따라가는 모든 핵심 속성의 진화까지 재구성하게 해 주는 것입니다.

실제 현장에서는

이온교환 크로마토그래피에 의한 다단계 폴리싱은, 응집체와 전하 변이체를 제거하여 단일클론항체를 규격까지 끌어올리는 표준적인 상업 관행이며, 이 변이체들을 단계별로 추적하는 분석법도 잘 확립되어 있습니다 [1][2][3]. 공장은 이미 트레인을 따라 인-프로세스 순도를 측정합니다. 모델링의 진전은 그 측정값들을, 단계별로 따로 철해진 고립된 시험 결과가 아니라, 연결된 물질들에 걸친 하나의 속성의 연결된 궤적으로 표현하는 것입니다 — 그래서 CQA의 이력이 질의 가능해집니다. 오픈소스 하류 장(open-source downstream chapter)은 이 단계 신호들을 포착하고, 여기의 궤적 모델은 그 포착된 데이터가 품질 속성이 단지 최종적으로 무엇이었는지가 아니라 어떻게 그렇게 되었는지에 답할 수 있게 해 주는 것입니다.

핵심 용어

  • 폴리싱(polishing) — 잔류 불순물을 제거하고 항체를 제품 변이체로부터 분리해 규격에 도달시키는 마무리 정제(보통 이온교환)이다.
  • 제품 변이체(product variants) — 밀접하게 관련된 분자 종(응집체/HMW, 전하 변이체, 단편)으로, 분리되어 빠져나가며 제품에서 derivedFrom 관계를 갖는 별개의 개체로 모델링된다.
  • 속성 궤적(attribute trajectory) — 사슬을 따라 연결된 물질들에 걸친 한 품질 속성의 값들의 시퀀스로, 품질이 어디서 변했는지를 가시화한다.
  • 품질의 보관 사슬(chain of custody for quality) — 정제 사슬에 걸친 derivedFrom을, 단지 계보가 아니라 각 물질의 품질 속성이 진화하는 상태를 실어 나르는 것으로 읽는 것이다.
  • 귀속 문제(attribution problem) — 누적된 품질을 상호작용하는 단계들 사이에 배분하는 미해결 질문으로, 그래프는 궤적(상관관계)을 기록하지만 계보만으로는 인과관계를 입증할 수 없다.
  • 공정 중 결과(in-process result) — 중간체에 대해 측정되어 bp:hasInProcessResult로 실어 날라지는 품질(4.1 %1.4 %의 HMW 지점)로, 공정 관리 측정값이며 로트 위의 구속력 있는 출하 결과와는 권위가 다르다.
  • 출하 관문(release gate, SHACL 제약) — 핵심품질속성이 규격을 벗어난 로트는 무엇이든 막아 세우는 기계로 검사 가능한 셰이프(bp:ReleaseShape, bp:hmwPct에 대한 sh:maxInclusive 2.0)로, 형제 DP-0042.41 %로 걸려 넘어지는 단일 기준이다.

다음 이야기

폴리싱은 제품을 규격에 도달시키고, 이제 모든 CQA의 궤적이 사슬에 걸쳐 기록됩니다. 다음 장 원료의약품 모델링: 출하를 정박시키는 로트DS-001을 산출하는 마지막 하류 단계를 모델링합니다 — 모든 상류 계보가 수렴하는 로트, 출하 CQA가 본래 속하는 곳(바이오리액터 이래로 우리가 끌고 온 단순화를 바로잡으며), 그리고 모든 완제의약품 로트가 거기서 유도되는 로트입니다.