본문으로 건너뛰기

수확과 정화 모델링: 물질의 변환

📍 현재 위치: 3부 · 모델로 옮긴 상류 공정 — 12장. 항체는 이미 만들어져, 세포로 가득 찬 탱크 속에 떠 있습니다. 이 장은 그 항체를 분리해 내는 과정, 즉 첫 하류 공정 단계를 모델링하고, 이를 빌려 지금까지 모든 derivedFrom 엣지가 조용히 답을 전제해 온 질문 하나와 마주합니다.

생산 바이오리액터는 우리에게 풍요의 문제를 남깁니다. 우리가 원하는 항체가 그것을 만든 세포, 세포 잔해, 그리고 온갖 다른 단백질이 뒤섞인 수프 속에 녹아 있는 것입니다. 수확과 정화(harvest and clarification)는 원심분리와 심층 여과를 통해 제품을 담은 액체를 고형물에서 분리하여, 정제를 위한 준비가 끝난 정화 수확물과 버려질 폐세포 흐름을 만들어 냅니다 [1]. 표면적으로 이를 모델링하는 일은 단순합니다. 물질 하나가 들어가고, 더 깨끗한 물질이 나옵니다. 하지만 이 작업은 지금껏 모든 계보 엣지 밑에 숨어 있던 질문을 마침내 책이 직면하도록 강제합니다. 한 물질은 정확히 언제 자기 자신이기를 멈추고 그래프가 이름을 붙여야 할 새로운 무언가가 되는가?

쉽게 말하면

육수를 거르는 일은 하나의 변환입니다. 뼈와 물이 담긴 냄비가 들어가고, 두 가지가 나옵니다. 우리가 챙기는 맑은 국물과, 버리는 건더기입니다. 그 국물은 같은 냄비에 이름표만 새로 붙인 것이 아니라, 진정으로 새로운 무언가입니다. 수확은 바이오의약품의 거르기입니다. 세포 배양액이 정화 수확물과 폐기물로 바뀝니다. 여기서 흥미로운 질문이 떠오르는데, 요리사는 결코 걱정하지 않지만 데이터베이스는 반드시 답해야 하는 질문입니다. 정확히 어느 순간에 "육수 냄비"가 "거른 국물"이 되었는가, 그리고 그것은 기록에 새 항목으로 남는가 아니면 같은 항목인가? 이 장은 그 질문에 그래프의 관점에서 답합니다.

이 장에서 다루는 내용

우리는 정화를 단위 공정(unit operation), 즉 물질 하나를 소비하고 둘을 생산하는 발생자(occurrent)로 모델링하면서, 정화 수확물에서 배치로 이어지는 derivedFrom 엣지를 놓고 상류-하류의 경계를 건넙니다. 그 변환을 해부한 다음, 이 장의 무게 대부분을 그 변환이 드러내는 진정으로 어렵고 진정으로 미해결인 질문에 쏟습니다. 바로 연속적인 공정 흐름을 따라 일어나는 물질의 개체화(individuation), 즉 그래프의 또렷한 노드가 풀링과 분할과 점진적 변화의 현실과 만나는 지점입니다.

단위 공정은 물질 하나를 소비하고 둘을 생산한다

정화는 앞으로 이어질 모든 하류 공정 단계의 본보기이므로, 깔끔하게 모델링해 둘 가치가 있습니다. 정화는 단위 공정, 즉 발생자이며, 그 입력은 배치 물질(세포 배양액)이고 출력은 두 가지 새로운 물질, 즉 우리가 챙기는, 제품을 담은 액체인 정화 수확물(clarified harvest)과 우리가 버리는 세포 및 잔해인 폐바이오매스(spent biomass)입니다. 정화 수확물은 배치를 derivedFrom하여 원료의약품(drug substance)을 향한 계통 사슬을 한 칸 더 잇습니다. 폐기물 흐름은 모델링하든 안 하든 실제 출력이며, 오염 추적이나 물질 수지(mass balance)가 문제가 될 때 이름을 붙여 둘 가치가 있습니다. 하나는 챙기고 다른 하나는 버리는 이 두-출력 형태는 바이러스 여과, 폴리싱, 그리고 공정이 무언가를 제거하는 모든 곳에서 되풀이되므로, 여기서 세운 패턴은 4부 전반에서 재사용됩니다. 실행 예제는 이를 실제 개체로 적재합니다. 정화 발생자 bp:HARV-001, 그것이 챙겨 두는 출력 bp:CLAR-001, 그리고 버리는 출력 bp:BIOMASS-001이며, 둘 다 BATCH-2026-001을 derivedFrom합니다(instances.ttl 출처).

# Harvest clarification as the downstream template: one material in, two out.
bp:HARV-001 a bp:Clarification ; # an occurrent (a unit operation)...
bp:hasInput bp:BATCH-2026-001 ; # ...consuming the cell-culture broth
bp:hasOutput bp:CLAR-001 , bp:BIOMASS-001 . # ...producing the kept harvest plus the discarded waste

bp:CLAR-001 a bp:ClarifiedHarvest ; # the kept, cell-free harvest
bp:derivedFrom bp:BATCH-2026-001 ; # one more derivedFrom hop downstream
bp:participatesIn bp:HARV-001 ;
bp:turbidityNtu "3.2"^^xsd:float . # its first in-process quality
bp:BIOMASS-001 a bp:SpentBiomass ; # the discarded cells and debris
bp:derivedFrom bp:BATCH-2026-001 .

하류 공정의 본보기를 이루는 클래스들은 align.ttl에서 위로 접지되며, 결합된 정화 단계만은 정직하게 로컬로 남습니다.

# align.ttl — the downstream template grounded UP (excerpt).
bp:UnitOperation rdfs:subClassOf iof:ManufacturingProcess . # IOF Core 'manufacturing process'
bp:Material rdfs:subClassOf obo:BFO_0000040 . # BFO 2020 'material entity' (ClarifiedHarvest / SpentBiomass inherit it)
bp:Quality rdfs:subClassOf obo:BFO_0000019 . # BFO 2020 'quality' (Turbidity inherits it)
bp:derivedFrom rdfs:subPropertyOf obo:RO_0001000 . # RO 'derives from'
# bp:Clarification stays ILLUSTRATIVE: the book models it as centrifugation + depth filtration together,
# and IOF has no single 1:1 leaf for that combined step, so it inherits iof:ManufacturingProcess.
# bp:ClarifiedHarvest / bp:SpentBiomass / bp:Turbidity have no verified single external leaf — kept local.

이 단계는 또한 하나의 개념적 선을 건넙니다. 상류(upstream)(세포 키우기)가 하류(downstream)(단백질 정제하기)로 넘어가는 지점인 것입니다. 모델에서 그 경계는 특별한 구성물이 아닙니다. 그저 두 물질 사이의 또 하나의 derivedFrom 엣지일 뿐이며, 이는 그 자체로 유용한 통찰입니다. 그 유명한 상류/하류 구분은 인간이 붙인 장(章) 제목일 뿐, 그래프는 물질 변환의 연속된 한 사슬을 볼 따름입니다. 챙겨 둘 만한 정화 단계의 CQA로는 탁도(turbidity), 즉 정화 수확물이 얼마나 뿌연지가 있는데, 흔히 몇 NTU 미만이어야 하며, 출력 물질의 증거가 뒷받침된 품질로 모델링됩니다. 이는 하류 장들이 덧붙이는 수많은 공정 중 검사 가운데 첫 번째입니다.

정화 단위 공정을 하나의 변환으로 해부하는 식별 카드: 배치 물질 BATCH-2026-001(세포 배양액)을 담은 입력 행, 단위 공정(원심분리 후 심층 여과)으로 유형화된 발생자인 공정 행, 두 개의 출력 행 — 배치를 derivedFrom하여 챙겨 두는 정화 수확물 물질과 버려지는 폐바이오매스 폐기물 물질, 출력을 입력에 관련짓는 수율 행, 정화 수확물의 증거가 뒷받침된 품질(몇 NTU 미만의 흐림 정도)을 담은 탁도-CQA 행, 그리고 이 단계를 상류-하류 인계점으로 표시하며 그것을 또 하나의 derivedFrom 엣지로 모델링한 경계 주석. 하류 공정의 본보기: 물질 하나가 들어가고, 하나의 공정을 거쳐, 두 물질이 나온다 — 챙겨 두는 정화 수확물은 배치를 derivedFrom하고 폐바이오매스는 버려진다 — 출력의 첫 품질 검사인 탁도와 함께, 상류/하류의 선이 또 하나의 엣지에 지나지 않음이 드러난다. 저자가 AI의 도움을 받아 직접 제작한 그림입니다.

점선으로 그어진 상류-하류 경계를 가로지르는 하나가 들어가고 둘이 나오는 변환. 상류 쪽에서는 생산 배치 BATCH-2026-001이 정화 공정 HARV-001(원심분리기와 심층 여과기)의 입력(hasInput)이다. 하류 쪽에서는 HARV-001이 두 출력(hasOutput)을 만들어 낸다 — 정화 수확물 CLAR-001(탁도 3.2 NTU, 포획·정제로 전진)과 폐바이오매스 BIOMASS-001(폐기물로 버려짐). 이 정화 수확물 노드가 하류에서 포획 단계에서는 거꾸로 갈라지고 충전 단계에서는 앞으로 분할된다는 주석이 달려 있다. 하류 공정의 본보기를 흐름으로 본 모습: 물질 하나가 들어가고 둘이 나온다 — 챙겨 두는 정화 수확물은 하류로 넘어가고 폐바이오매스는 폐기물로 간다 — 그리고 그 유명한 상류/하류 구분이 또 하나의 derivedFrom 엣지에 지나지 않음이 드러난다. 저자가 AI의 도움을 받아 직접 제작한 그림입니다.

미해결 과제: 한 물질은 어디서 끝나고 다음 물질은 어디서 시작되는가?

이 책의 모든 derivedFrom 엣지는 — 그리고 지금까지 많았습니다 — 한 물질이 어디서 멈추고 다음 물질이 어디서 시작되는지 말할 수 있다고 조용히 전제합니다. 정화는 그 전제가 불편해지는 지점이며, 그 불편함은 현학적인 것이 아니라 실제적인 것입니다. 정화 수확물 속의 제품 분자는 배양액 속에 있던 바로 그 분자입니다. 무언가 만들어진 것이 아니라, 그저 분리되었을 뿐입니다. 그렇다면 정화 수확물은 자기만의 노드와 IRI를 가질 자격이 있는 진정으로 새로운 물질 개체인가, 아니면 몇 가지가 제거된 채 새 용기에 담긴 같은 물질인가? 그래프는 화학이 대신 내려 주지 않는 선택을 강요합니다.

현장이 취하는 — 그리고 이 책이 취하는 — 실용적인 답은 각 단위 공정 경계마다 새로운 물질 노드를 발행하는 것입니다. 그것이 물질을 표본 채취하고, 검사하고, 풀링하고, 출하하는 단위(granularity)이기 때문입니다. 정화 수확물이 새 노드인 까닭은 그것이 탁도 결과와 보관 시간과 앞으로의 인계를 부여받는 대상이기 때문입니다. 하지만 이는 형이상학적 사실이 아니라 모델링 관례이며, 가장자리가 무릅니다. 풀링(pooling)은 그것을 한 방향으로 깨뜨립니다. 여러 포획 사이클이 하나의 로 합쳐지므로, 자식 물질 하나가 여러 부모를 derivedFrom하게 되어 계통이 거꾸로 갈라집니다. 분할(splitting)은 그것을 반대 방향으로 깨뜨립니다. 원료의약품 로트 하나가 여러 완제의약품 로트로 충전되므로, 부모 하나가 여러 자식을 갖습니다. 그리고 연속 공정은 그 경계를 아예 녹여 버립니다. 연결되어 끊임없이 흐르는 공정에서는 개체화할 이산적 배치 자체가 없고 오직 흐름만 있으므로, "노드는 어디에 있는가?"라는 물음에 깔끔한 답이 없습니다.

두 번째이자 더 날카로운 한계가 있습니다. 그래프는 물질 수지를 강제하지 않습니다. 그래프는 양이 들어맞는지에 대한 어떤 점검도, 나온 것에 폐기물을 더한 양이 들어간 양과 같다는 어떤 보장도 없이, 배치를 derivedFrom하는 정화 수확물을 기꺼이 기록합니다. derivedFrom보존(conservation) 법칙이 아니라 계통(lineage) 관계입니다. "이것은 저것에서 나왔다"라고 말할 뿐, "이만큼이 저만큼에서 나왔다"라고 말하지 않습니다. 따라서 그래프는 양적으로 불가능한 계보를 완벽하게 순회 가능한 형태로 제시할 수 있으며, 이를 잡아내려면 양(수율, 부피, 질량을 유형화된 값으로)을 명시적으로 모델링하여 SHACL로 검증하거나, 그래프는 계통을 색인하고 물질 수지는 공정 기록 안에 산다고 받아들여야 합니다. 따라서 정직한 기준은 다음과 같습니다. 물질 개체화는 단위 공정에 고정된 의도적 관례이며, 풀링과 분할과 연속성이 알려진 방식으로 그것을 시험하므로 모델이 이를 명시적으로 다루어야 하고, 계통은 보존과 같은 보장이 아닙니다. 이것이 흐르는 물리적 공정을 이산적 그래프로 모델링하는 데서 진정으로 어려운 부분이며, 어떤 온톨로지로도 사라지게 만들 수 없습니다.

왜 중요한가

정화는 모든 하류 공정이 물려받는 패턴 — 그리고 미해결의 긴장 — 을 세웁니다. 이후의 모든 단계는 물질 하나를 다른 물질로 변환하며 derivedFrom 엣지를 놓는 단위 공정이고, 그 하나하나가 똑같은 개체화 문제에 부딪힙니다. 관례를 제대로 잡아 일관되게 적용하는 일이야말로 하류 계통을 순회 가능하고 신뢰할 만하게 만드는 것입니다. 물질을 일관되지 않게 다루면 — 여기서는 노드, 저기서는 이름표만 바꾸고, 풀링에 대한 규칙은 없이 — 디지털 스레드 장이 따라 걷는 계보가 하필 조사가 가장 절실히 필요로 하는 바로 그 지점에서 모호해집니다. 가장 단순한 하류 공정 단계가 모델이 물질을 어떻게 개체화하는지를 정할 알맞은 자리인 까닭은, 그 이후의 모든 것이 더 높은 위험 부담을 안은 채 같은 패턴을 되풀이할 뿐이기 때문입니다.

통신선에서 그래프까지

이 장의 탁도 스칼라 — 3.2라는 헐벗은 bp:turbidityNtu — 는 정직하지만 빈약합니다. 단위도 출처도 싣고 있지 않으며, 그 숫자가 어디서 왔는지도 말해 주지 않습니다. 동반 저장소의 instances.ttlbp:CLAR-001을 업그레이드하여, 실제 정제 수확물이 측정되는 두 가지 인터페이스를 모두 보여 줍니다. 탁도는 여전히 편의용 스칼라로 등장하지만, 이제 거기에 qudt:QuantityValue(bp:CLAR-001-turbidity-qv, qudt:numericValue 3.2와 qudt:ucumCode "[NTU]"를 가짐 — NTU에는 깔끔한 QUDT 단위 IRI가 없으므로 이 코드는 예시적입니다)와, 태그 HARV.Turb.PV 상의 인라인 탁도 트랜스미터인 bp:Trace-CLAR-turbidity로 향하는 bp:hasTrace도 함께 매답니다. 그 트랜스미터는 OPC UA로 읽히는데, 이는 상용 등급의 공장 인프라입니다 — 따라서 이것은 파일럿 인터페이스가 아니라, 그 숫자가 실제로 통신선을 타고 도착하는 방식입니다.

앳라인(at-line) 역가는 다른 길로 도착합니다. 수확물로부터 derivedFrombp:Sample이 어세이의 입력이 되고, 그 결과는 bp:hasChromatogram을 통해 Allotrope bp:AnalyticalDataFilebp:ADF-Titer-CLAR를 가리킵니다. 이것이 분석법의 색인-대-페이로드 패턴입니다. 스칼라와 포인터는 그래프 안에 살고, 크로마토그램 페이로드는 ADF 컨테이너 안에 머뭅니다. 두 패턴 모두 — 바이오리액터의 계측 판독값에서 본 단위가 부여된 QuantityValuehasTrace 색인을 더한 것, 그리고 QC에서 본 ADF 기반 결과 — 가, 공정 트레인의 깊숙한 곳에서만이 아니라 여기 경계의 단위 작업에서 재사용됩니다. 바로 그 점이 핵심입니다. 각각은 단위 작업마다 재사용 가능합니다.

bp:CLAR-001 a bp:ClarifiedHarvest ; rdfs:label "clarified harvest of BATCH-2026-001" ;
bp:derivedFrom bp:BATCH-2026-001 ;
bp:participatesIn bp:HARV-001 ;
bp:turbidityNtu "3.2"^^xsd:float ;
bp:hasQuantityValue bp:CLAR-001-turbidity-qv ; # the same value, unit-qualified
bp:hasTrace bp:Trace-CLAR-turbidity . # acquired off an in-line OPC UA turbidity transmitter
bp:CLAR-001-turbidity-qv a qudt:QuantityValue ; rdfs:label "3.2 NTU (clarified-harvest turbidity)" ;
qudt:numericValue "3.2"^^xsd:float ; qudt:ucumCode "[NTU]" . # NTU has no clean QUDT/UCUM unit IRI; the UCUM-style code is illustrative
bp:Trace-CLAR-turbidity a bp:Quality ; rdfs:label "clarified-harvest turbidity tag" ;
bp:tagName "HARV.Turb.PV" ;
rdfs:seeAlso <https://example.org/historian/tag/HARV.Turb.PV> .

# An at-line titer on the clarified harvest, arriving as an Allotrope-container result.
bp:SMP-CLAR-001 a bp:Sample ; rdfs:label "clarified-harvest titer sample" ; bp:derivedFrom bp:CLAR-001 .
bp:Titer-Assay-CLAR a bp:Assay ; rdfs:label "Protein A HPLC titer on clarified harvest" ;
bp:hasInput bp:SMP-CLAR-001 ; bp:hasResult bp:Titer-Result-CLAR .
bp:Titer-Result-CLAR a bp:Result ; rdfs:label "clarified-harvest titer result" ;
bp:isAbout bp:SMP-CLAR-001 ; bp:hasChromatogram bp:ADF-Titer-CLAR .
bp:ADF-Titer-CLAR a bp:AnalyticalDataFile ; rdfs:label "titer chromatogram (Allotrope ADF)" ;
rdfs:seeAlso <https://example.org/adf/Titer-CLAR-001.adf> .

examples/platform/ontology/opcua_to_rdf.py 어댑터는 OPC UA에 대해 바로 이 통신선-대-그래프 횡단을 시연합니다. 컨트롤러 주소 공간에서 변수 노드를 읽고, 그 노드의 EUInformation에서 단위를 복원한 뒤, 동일한 bp:hasTrace 색인 위에 단위를 실은 관측값을 안착시킵니다 — HARV.Turb.PV 같은 트랜스미터 태그 뒤에 있는 일반 메커니즘이자, 작업 현장과 디지털 트윈 장의 주제입니다.

실제 현장에서는

탁도 목표와 수율 추적을 곁들인 원심분리·심층 여과 정화는 상업적 항체 회수에서 표준적인 관행이며, 회수·정제 문헌은 단위 공정의 연쇄를 이 장이 노드를 둘러 모델링하는 바로 그 이산적이고 표본 채취되는 단계로 다룹니다 [1][2]. ISA-88 배치 모델은 이미 공정을 같은 방식으로 작업 단위로 개체화하므로 [3], 단위 공정마다 물질 노드를 발행하는 것은 공장이 이미 사고하는 방식과 맞아떨어집니다. 현장이 활발히 씨름하는 최전선이 바로 이 장의 미해결 과제입니다. 공정이 연속(continuous)으로 옮겨 가면서, 계보를 깔끔하게 만들어 주던 편안한 배치-단위공정 개체화가 녹기 시작하고, 흐르는 공정의 계통을 — 노드를 걸어 둘 이산적 배치 없이 — 모델링하는 일은 오픈소스 하류 공정 장과 더 넓은 산업이 여전히 풀어 나가고 있는 미해결 문제입니다.

핵심 용어

  • 단위 공정(unit operation) — 물질 하나를 소비하고 하나 이상의 새 물질을 생산하는 발생자로 모델링되는 이산적 처리 단계. 하류 물질이 개체화되는 단위(granularity)다.
  • 정화(clarification) — 제품을 담은 액체를 세포와 잔해에서 분리하여(원심분리, 심층 여과) 정화 수확물과 폐바이오매스를 만들어 내는 것.
  • 개체화(individuation) — 한 물질 개체가 어디서 끝나고 다음 물질이 어디서 시작되는지에 대한 모델링 결정. 단위 공정 경계에 관례로 고정되며, 풀링·분할·연속 흐름이 그것을 시험한다.
  • 풀링/분할(pooling / splitting) — 거꾸로 갈라지거나(여러 부모 → 한 자식) 앞으로 갈라지는(한 부모 → 여러 자식) 계통으로, 단순한 부모-자식 derivedFrom이 명시적으로 다루어야 한다.
  • 물질 수지(강제되지 않음)derivedFrom이 보존이 아니라 계통을 기록한다는 사실. 양을 모델링하여 검증하지 않는 한, 순회 가능한 계보가 양적으로 불가능할 수 있다.
  • 상류/하류 경계 — 그래프 구성물이 아니라 인간이 붙인 장 제목. 모델에게 그것은 하나의 연속된 사슬 속 또 하나의 derivedFrom 엣지일 뿐이다.

다음 이야기

제품은 분리되고 정화되었으며, 우리는 물질이 흐를 때 모델이 어떻게 그것에 이름을 붙이는지 정했습니다. 4부는 항체를 정제 과정 내내 따라갑니다. 다음 장 포획 크로마토그래피와 풀링 문제 모델링PApool-001을 만들어 내는 프로테인 A 포획 단계를 모델링하고, 곧바로 개체화 문제를 실전에 투입합니다. 포획 풀이야말로 여러 사이클이 하나의 물질로 풀링되는 전형적 사례, 즉 이 장이 다가오고 있다고 경고했던 거꾸로 갈라지는 계통이기 때문입니다.