데이터 한 점의 생애주기
📍 현재 위치: 1부, 2장 — 바이오의약품과 그 데이터 그림자(1장)에서 우리는 데이터 그림자(data shadow)를 만났습니다. 이제 우리는 데이터 한 점을 그 생애 전체에 걸쳐 따라갑니다. 그 여정이 데이터 관리 전체를 떠받치는 척추이기 때문입니다.
지난 장에서 우리는 데이터 그림자(data shadow)를 만났습니다. 모든 바이오의약품(biologic)을 뒤따르는 센서 추적값, 배치 기록(batch record), 시험 결과, 서명들로서, 분자 그 자체만큼이나 제품에 필수적인 것들입니다. 그러나 그림자는 하나의 덩어리가 아닙니다. 그것은 수백만 개의 개별 데이터 점(data point)이며, 각각 어딘가에서 태어나 어떤 일을 수행한 뒤, 수년간 살아남아야 하는 기록으로 나이를 먹습니다. 그림자를 이해하려면 우리는 하나의 점을 그 생애 전체에 걸쳐 따라가야 합니다.
그 생애에는 형태가 있고, 규제 당국은 거기에 이름을 붙였습니다. 바로 데이터 생애주기(data lifecycle)입니다. 그들은 이를 데이터 생애의 모든 단계 — 생성과 기록부터 처리, 사용, 보존, 보관/검색, 폐기에 이르기까지 — 로 정의합니다 [1]. 여러분이 다루게 될 모든 점은 이와 똑같은 길을 따라갑니다.
데이터 점은 결혼식 사진과 같습니다. 누군가는 그것을 찍어야 합니다(생성). 사진은 현상되고 잘립니다(처리). 그것은 누가, 어디서, 언제 찍었는지 표시될 때에만 비로소 의미를 갖습니다(맥락화). 사람들은 무언가를 결정하려고 그것을 들여다봅니다(사용). 사진은 나중에 찾을 수 있는 앨범으로 들어갑니다(보존과 보관). 그리고 수십 년이 지난 어느 날, 결국 버려질 수도 있습니다(폐기). 서랍 속에 라벨도 없이 굴러다니는 사진은 거의 쓸모가 없습니다. 아무 이야기도 붙어 있지 않은 숫자도 마찬가지입니다.
이 장에서 다루는 것
우리는 하나의 측정값, 즉 7.0이라는 pH 값을 그것이 생성되는 순간부터 폐기되는 날까지 추적할 것입니다. 그 과정에서 원시(raw) 데이터와 처리된(processed) 데이터의 차이, 무엇보다 중요한 메타데이터(metadata)라는 개념, 그리고 맨숫자가 그저 잡음(noise)에 불과한 이유를 만나게 됩니다. 측정값이 증거로 인정받기 전에 함께 따라다녀야 하는 여섯 개의 필드를 해부하고, 마지막으로 바이오공정(bioprocess) 데이터를 진정으로 어렵게 만드는 "4V"를 살펴본 뒤, 이 데이터 흐름에서 솔직히 말해 아직 해결되지 않은 한 부분 — 이 책의 나머지 부분이 존재하는 이유인 그 간극 — 을 짚어보며 마무리합니다.
일곱 단계: 프로브에서 보관소까지
데이터 점은 무언가가 세상을 측정하는 그 순간에 생성(generated)됩니다. 우리의 pH 프로브(probe)는 바이오리액터(bioreactor) 속에 있습니다 — 살아 있는 세포가 항체를 키우는 탱크로, 1권의 생산 바이오리액터 장에서 다루는 물리적 단계입니다 — 오늘날에는 대개 일회용 플라스틱·필름 용기이며, 예를 들어 Sartorius Ambr, Thermo Scientific HyPerforma 단일사용 바이오리액터(S.U.B.), Eppendorf BioBLU 또는 Sartorius Biostat STR 같은 것들입니다. 그것은 배양액(액체 세포 배양물)의 산성도를 감지하고 7.0을 보고합니다. 그 생성의 순간은 동시에 포착(capture)의 순간이기도 합니다. 그 값은 어딘가 영속적인 곳에 기록되어야 하며, 그렇지 않으면 그것은 애초에 존재하지 않은 것과 같습니다. 포착은 자동으로(센서가 제어 시스템에 기록하는 것 — 각 센서를 읽어 펌프와 밸브를 조정하여 공정을 목표치에 붙들어 두는 자동화) 일어나거나 수기로(분석자가 결과를 로그북에 입력하는 것) 일어납니다.
포착된 값은 어떤 형식으로 저장되는데 — 흔히 벤더 고유 형식입니다(Agilent ChemStation HPLC(크로마토그래피 분석기)에서 나오는 .ch 파일, Applied Biosystems qPCR(실시간 PCR) 계측기에서 나오는 .eds 파일 또는 .rdml 내보내기(개방형 Real-time PCR Data Markup Language 표준), 바이오리액터 제어기에서 나오는 독자적 히스토리언(historian) 기록(히스토리언은 모든 센서 태그를 보관하는 시계열 데이터베이스입니다) 등) — AnIML(Analytical Information Markup Language)이나 Allotrope Foundation의 Allotrope Data Format(ADF) 같은 개방형 표준을 향한 움직임이 점점 커지면서, 어떤 계측기가 만들었든 그 포착된 데이터를 수십 년 뒤에도 판독할 수 있도록 하는 것을 목표로 합니다.
다음은 처리(processing)입니다. 원시 신호는 변환되고, 평균이 내어지고, 보정되거나 계산되어 사용 가능한 결과가 됩니다. 그다음 맥락화(contextualization)가 의미를 붙입니다. 그러고 나면 그 점은 검토되고 사용(reviewed and used)됩니다 — 사람이나 알고리즘이 그것을 확인하고 그에 따라 행동합니다. 결과는 보고(reported)됩니다. 마지막으로 그 기록은 보존과 보관(retention and archival)으로 들어가, 합법적인 폐기(disposal)가 이루어질 때까지 검색 가능한 상태로 머무릅니다.
데이터 생애주기: 프로브에서 파쇄기까지, 모든 측정값이 거치는 일곱 단계.
저자가 AI의 도움을 받아 직접 제작한 그림입니다.
보존은 얼마나 오래 지속될까요? 의약품의 경우, 아주 오랫동안입니다. 현행 우수의약품제조관리기준(Current Good Manufacturing Practice) — 의약품을 어떻게 만드는지에 관한 법으로 강제되는 규정 — 은 기록이 배치 출하(batch release)를 한참 넘어선 시점까지 보관되고 판독 가능한 상태로 유지될 것을 요구합니다. 1년은 하한이지 목표가 아닙니다. 미국의 경우, 구체적인 규정 — 21 CFR 211.180(a) — 즉 미국 연방규정집(US Code of Federal Regulations) Title 21, Part 211, 기록 및 보고에 관한 Subpart J — 은 그 하한을 배치 유효기한이 지난 후 최소 1년 — 또는 유효기한이 없는 제품의 경우 유통 후 1년 — 으로 설정하는데, 이것은 어디까지나 최솟값입니다. 유럽연합(EU)은 더욱 길게 운영합니다. 그 GMP 기대치(문서화에 관한 EudraLex Volume 4, Chapter 4, 그리고 전자 기록이 어떻게 판독 가능한 상태로 유지되는지를 규율하는, 전산화 시스템에 관한 EU Annex 11 규정 — 미국 21 CFR Part 11(전자 기록과 전자 서명에 관한 규정)에 상응하는 유럽 규정)는 배치 제조 및 포장 기록을 배치 유효기한 후 최소 1년 또는 적격자(QP, 각 배치를 출하할 수 있도록 법적으로 인증하는 EU 지정 책임자)가 배치를 인증한 후 최소 5년 중 더 긴 기간 동안 보관할 것을 요구합니다. 일본을 비롯한 다른 지역은 각자의 보존 일정을 운영합니다. 그러므로 1년은 단지 미국 규제 대상 제품의 하한일 뿐이며, 많은 기업은 사업 방침이나 지역 법규에 따라 훨씬 더 오래 보관합니다.
판독 가능성은 공짜가 아닙니다 — 독자적인 .ch나 히스토리언 보관본은 그 원본 소프트웨어가 살아 있는 동안에만 판독 가능하므로, 장기 보존 전략은 검증된 레거시 시스템을 유지하거나 원시 데이터를 AnIML/ADF 같은 벤더 중립적 형태로 이관하는 것을 뜻합니다. 이것이 바로 그 개방형 형식들이 포착에서만큼이나 보존에서도 중요한 한 가지 이유입니다. 결정적으로, 데이터 점의 소유자와 그에 대한 통제는 그 점이 막 생성되었을 때만이 아니라 모든 단계에 걸쳐 그 점을 따라다닙니다 [3].
세 가지 대상, 하나의 기록: 원시, 처리, 메타데이터
원시, 처리, 그리고 그것을 진짜로 만드는 메타데이터
우리의 7.0은 태어나는 순간에는 원시 데이터(raw data) — 계측기가 처음 기록한 그대로의, 변경되지 않은 원본 값 — 입니다 [1]. 원시 데이터는 신성합니다. 그것으로부터 우리는 처리된 데이터(processed data), 즉 사람들이 실제로 사용하는 보정·평균·계산된 결과를 도출합니다. 이 둘은 서로 다른 대상이며, 규제 당국은 어떤 결과든 그 출처로 다시 추적할 수 있도록 원시 형태를 보관할 것을 강력히 요구합니다 [6]. 크로마토그래피를 비롯한 재처리 가능한(reprocessable) 데이터의 경우, 원시 데이터는 인쇄된 결과가 아니라 완전한 전자 데이터 파일 — 디지털화된 검출기 신호에 적분 방법(integration method)과 감사 추적(audit trail)을 더한 것 — 입니다. 같은 주입(injection)이 재적분되어 다른 답으로 나올 수 있기 때문이며, 규제 당국은 보고서가 아니라 바로 그 파일 전체를 원본 기록으로 취급합니다 [4].
바로 그 원시 대 처리의 경계가, 한 단계 하류로 내려가면 한층 더 선명하게 나타납니다. 바이오리액터 다음에 항체는 정제되는데 — 그 첫 번째 정제 단계인 단백질 A 포집(Protein A capture)(정화된 수확물에서 항체를 낚아내는 친화성 크로마토그래피(affinity-chromatography) 단계로, 1권의 포집 장에서 다룹니다)은 그 자체가 데이터 점을 분주히 생성하는 곳입니다. 그 핵심 인프로세스(in-process) 데이터는 UV A280 추적값 — 컬럼에서 단백질이 얼마나 흘러나오는지를 따라가는 280 nm에서의 자외선 흡광도 — 이며, 원시 형태는 연속 크로마토그램(같은 디지털화된 검출기 신호, 적분 방법, 감사 추적)이고, 처리된 결과는 수지(resin) 리터당 항체 그램으로 나타낸 부하 부담(load challenge)이나 제품 돌파(breakthrough) 백분율 같은 도출된 숫자입니다. 그 검출기에서 나온 맨 "1820"은 맨숫자 7.0만큼이나 고아 신세입니다. 그것이 컬럼이 검증된 동적 결합 용량(dynamic binding capacity) 안에서 부하되었음을 증명하려면 단위(mAU), 타임스탬프, 컬럼 및 스키드(skid) ID, 수지 로트, 방법, 그리고 batch_id가 필요합니다. 두 가지 운영상의 사실이 그 데이터 점과 함께 따라다니며, 생애주기의 관점에서 보면 순수한 메타데이터입니다. 첫째, 크로마토그래피 스키드와 그 검출기는 그냥 믿어 주는 것이 아닙니다 — 그것들은 IQ/OQ/PQ(설치 적격성, 운영 적격성, 성능 적격성(Installation, Operational, and Performance Qualification) — 장비가 올바르게 설치되었고, 올바르게 작동하며, 실제 작업 부하에서 올바르게 성능을 낸다는 문서화된 증명)를 통과하므로, 계측기의 보정 및 적격성 상태는 모든 측정값 맥락의 일부입니다. 그리고 어떻게 그 증명이 만들어지는지 — 점점 더 망라적인 전산화 시스템 검증(Computerized System Validation, CSV)보다 위험 기반의 컴퓨터 소프트웨어 보증(Computer Software Assurance, CSA)을 통해 — 는 전산화 시스템 검증의 주제입니다. 둘째, 공정이 개발 실험실에서 제조 공장으로 옮겨갈 때 — 기술 이전(tech transfer)과 스케일업(scale-up) — 컬럼이 이제 백 배 더 커졌더라도 같은 여섯 필드 기록 형태는 그 이동을 견뎌내야 합니다. 메타데이터 관례가 바로 소규모 데이터 점과 상업 규모 데이터 점을 애초에 비교할 수 있게 해 주는 것입니다. 하류 데이터 점의 생애주기는 상류 데이터 점의 것과 동일하며, 바뀌는 것은 계측기뿐입니다.

분석자가 유가식(fed-batch) 배양에서 시료를 채취합니다 — 오프라인 데이터 점을 생성하는 물리적 행위로, 이 점은 이후 포착되고 맥락화되어 배치에 연결되어야 합니다.
유가식(fed-batch) 시료 채취. 이미지: Luis Fernando Flores LAB, CC BY-SA 4.0 라이선스(https://creativecommons.org/licenses/by-sa/4.0/), Wikimedia Commons; 수정 없이 사용. 이 이미지는 CC BY-SA 4.0 라이선스에 따라 배포되며 동일 라이선스로 재사용할 수 있습니다. 이 라이선스는 이미지에만 적용되며 이 책의 나머지 부분에는 적용되지 않습니다.
의미를 만드는 메타데이터: 단위, 시각, 장비, 배치, 방법, 작업자
이 둘을 둘러싸고 있는 것이 메타데이터(metadata) — 말 그대로 "데이터에 관한 데이터" — 입니다. 값에 의미와 이력을 부여하는 정보입니다 [1]. 단위, 타임스탬프, 계측기의 신원과 보정 상태, 누가 기록했는지, 사용된 방법 — 이 모두가 메타데이터입니다. 크로마토그래피 계측기가 피크 면적 4527.3을 보고한다면, 그와 함께 따라다니는 메타데이터에는 단위(mAU·s), 타임스탬프, 계측기 ID, 보정 상태, 배치 ID, 방법, 작업자, 그리고 측정 대상 물질이 포함됩니다. 이 모두를 벗겨내면 그 숫자는 고아가 됩니다. 이 메타데이터 조각들이 각각 물리적으로 어디서 생성되는지 — 어떤 센서, 어떤 실험실 계측기, 어떤 작업자 입력에서 나오는지 — 는 데이터 소스로서의 계측기와 센서에서 다룹니다. 여기서 중요한 것은 오직 그것들이 모두 존재하여 값에 묶여 있어야 한다는 점입니다.
두 개의 용어가 책의 뒷부분을 준비시켜 줍니다. 원본 기록(original record)은 데이터가 생성된 형식 그대로, 데이터를 처음으로 영속적으로 포착한 것입니다 [2]. 진본 사본(true copy)은 메타데이터를 포함하여 정확하고 검증된 복제본으로, 전체 의미를 보존하며 원본을 대신할 수 있습니다 [4]. 원본, 사본, 그리고 손상된 반쪽짜리 사본의 차이는 방어 가능한 배치와 거부된 배치의 차이입니다.
1장에서 우리는 ALCOA — 귀속 가능(Attributable), 판독 가능(Legible), 동시 기록(Contemporaneous), 원본(Original), 정확(Accurate) — 을 만났습니다. 규제 당국은 이제 이를 ALCOA+로 확장하여, 그 다섯 가지에 네 가지 특성을 더 덧붙입니다. 완전(Complete), 일관(Consistent), 지속(Enduring), 이용 가능(Available)입니다 [2]. (전체 내용은 데이터 무결성과 ALCOA+에서 살펴봅니다.) 이것들이 생애주기에 얼마나 자연스럽게 대응되는지 보십시오. 귀속 가능과 동시 기록은 포착에 관한 것이고, 지속과 이용 가능은 보존에 관한 것이며, 원본과 정확은 원시 대 처리의 경계에 관한 것입니다.
맥락화된 측정값의 해부: 함께 따라다니는 여섯 개의 필드
숫자 하나만으로는 잡음인 이유
이것이 이 장의 핵심입니다. 7.0은 무엇일까요?
그것은 pH일 수 있습니다. 리터당 7.0그램의 포도당일 수도, 밀리리터당 700만 개의 세포일 수도, 아니면 일곱 시일 수도 있습니다. 그 자체로는 아무런 진실도 담고 있지 않습니다 — 그저 숫자일 뿐입니다. 데이터 더하기 맥락은 정보(information)와 같습니다 [7]. 우리의 측정값을 사람이 신뢰하고 그에 따라 행동할 수 있는 무언가로 바꾸려면, 우리는 그 값에 다섯 조각의 맥락(context)을 묶어야 합니다.
- 단위 — pH (그것이 어떤 차원을 측정하는지 알기 위해);
- 타임스탬프 — 운전 7일차 06:14, 즉 운전 시작 시점부터 세어 150시간차 (그래서 언제인지 알 수 있고, 동시에 기록되었음을 증명할 수 있도록);
- 장비 ID — 바이오리액터 BR204, 프로브 PRB-17, 마지막 보정은 어제;
- 배치 ID — 이것이 속한 의약품 원료의 특정 로트(lot);
- 방법 — 측정값을 어떻게 취하는지 규정하는 표준 절차.
값에 그 다섯 조각의 맥락을 더한 것이 아래에서 우리가 해부할 여섯 부분짜리 기록입니다. 이제서야 7.0은 정보가 됩니다. "BR204의 배양액이 배치 L-22-0417의 150시간차에 보정된 프로브로, 방법 SOP-pH-03에 따라 pH 7.0을 유지했다." 그 맥락을 붙이는 것 자체가 하나의 구축 단계입니다 — 오픈소스 동반 권은 원시 태그가 레시피, 장비, 배치 사실에 어떻게 결합되는지를 맥락화 장에서 보여줍니다. 실제 시스템에서 바로 그 사실은 문장이 아니라 구조화된 기록으로 저장되며, 각 필드가 맥락의 한 조각씩을 담습니다.
{
"measurement": "pH",
"value": 7.0,
"unit": "pH",
"timestamp": "2022-06-10T06:14:32Z",
"equipment_id": "BR204",
"sensor_id": "PRB-17",
"batch_id": "L-22-0417",
"method": "SOP-pH-03",
"recorded_by": "analyst_15"
}
그 문장은 — 그리고 그 기록은 — 의사결정을 뒷받침할 수 있습니다. 맨숫자 7.0은 그럴 수 없습니다. 이것이 바로 맥락화는 서류 작업이 아니라, 측정값을 증거로 전환하는 것인 이유입니다 [3]. 여러분의 배치 파일을 검토하는 규제 검사관은 맨숫자를 받아들이지 않습니다. 그들은 그것이 어디서, 언제, 어떤 조건에서 나왔는지 증명하라고 요구할 텐데, 그 맥락이 없으면 여러분은 그것을 증명할 수 없습니다.
여섯 개의 필드, 해부하기
위의 JSON은 완전히 맥락화된 기록입니다. 히스토리언이 모든 행에 실어 날라야 하는 핵심만 남도록 깎아내면 여섯 개의 필드에 이르는데 — 위의 문장 형태에서 두 가지가 바뀝니다: equipment_id/sensor_id/method가 구조화된 tag로 합쳐지고, 산문 기록이 생략했던 quality 플래그를 추가합니다. 그러면 신뢰할 수 있는 측정값은 여섯 개의 필드이며, 각각이 이야기의 한 조각씩을 담습니다. 그것들은 신원 카드(identity card)로 펼쳐 놓고 보면 가장 잘 보입니다.
- timestamp(타임스탬프) — 값이 참이었던 시점으로, 모호함 없는 단일 시계(여기서는 UTC)로 기록됩니다. 이것은 측정값이 나중에 채워 넣어진 것이 아니라 동시에 포착되었음을 증명합니다.
- tag(태그) — 신호의 정체성으로, 불투명하지 않고 구조화되어 있습니다.
BR204.pH.PV는<asset>.<measurement>.<role>로 해독됩니다: 자산BR204, 측정 항목pH, 역할.PV— 즉 공정값(process value)(배양액이 실제로 한 것)이며,.SP, 즉 설정값(setpoint)(레시피가 요구한 것), 그리고.MV/.OUT, 즉 제어기가 작동기(actuator)로 내보내는 출력(예를 들어 염기 첨가 펌프 명령으로, 염기를 더하면 pH가 올라가기 때문입니다)과 대비됩니다 — PV–SP–MV 삼총사가 바로 모든 제어 루프(control loop)가 히스토리언에 나타나는 방식입니다. - value(값) — 측정값 그 자체인
7.0— 그 자체로는 무의미하며, 바로 그것이 핵심입니다. - unit(단위) — 차원인
pH로, 이것이 없으면7.0은 포도당일 수도, 세포 밀도일 수도, 시각일 수도 있습니다. - quality(품질) — 신뢰 플래그: Good, Uncertain, 또는 Bad. 보증할 수 없는 측정값은 좋은 측정값과 같지 않으며, 그 의심을 기록할 유일하게 정직한 자리는 값 바로 옆입니다.
- batch_id(배치 ID) — 결합 키인
L-22-0417: 이 측정값을 같은 로트의 다른 모든 기록과 다시 결합시켜 주는 단 하나의 필드입니다.
맨숫자 7.0을 증거로 바꾸는 여섯 개의 필드: 어느 하나라도 벗겨내면 그 숫자는 고아가 되고, 함께 따라다닐 때 비로소 측정값은 방어 가능해집니다.
저자가 AI의 도움을 받아 직접 제작한 그림입니다.
이것은 교과서적 추상이 아닙니다. 오픈소스 동반 권은 바로 이 기록을 하나의 데이터베이스 행(row)으로 구축합니다. 3권의 상류 바이오리액터 장은 컬럼이 ts, tag, value, unit, quality, batch_id인 ts.sensor_reading 테이블을 정의합니다 — 같은 여섯 개의 필드가 이제 구체적인 SQL이 되고, 히스토리언과 GMP 배치 기록을 다시 결합할 수 있도록 batch_id가 모든 행에 찍힙니다. 여기의 개념 카드와 거기의 테이블은 두 가지 고도(altitude)에서 본 같은 산출물입니다. 첫 번째를 두 번째로, 매번, 모든 계측기에 걸쳐 깔끔하게 바꾸어 내는 것이 바로 이 3부작 전체가 다루는 규율입니다.
기계 판독 가능한 트리플로 표현한 같은 기록
JSON 행과 SQL 행은 하나의 사실을 두 가지로 적은 것이며, 세 번째가 있는데, 바로 이것이 서로 다른 시스템이 그 사실의 의미에 합의하게 해 줍니다. 지식 그래프(knowledge graph)에서 측정값은 작은 RDF 트리플(triple) 묶음 — 주어 — 술어 — 목적어 형태의 진술들 — 이 되는데, 여기서 주어는 행 번호가 아니라 전 세계적으로 유일한 이름(IRI, 국제화 자원 식별자(Internationalized Resource Identifier) — 지역 키와 달리 모든 시스템에서 같은 것을 뜻하는 웹 규모의 이름)입니다. Turtle(간결한 RDF 텍스트 구문; 각괄호가 페이지를 어지럽히지 않도록 펜스 블록으로 묶었습니다)로 적으면 다음과 같습니다.
@prefix bp: <https://example.org/bioproc#> .
@prefix qudt: <http://qudt.org/schema/qudt/> .
@prefix unit: <http://qudt.org/vocab/unit/> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
bp:reading-BR204-pH-h150 a bp:pHMeasurement ;
bp:ofBatch bp:L-22-0417 ; # 결합 키, 이제 해석 가능한 IRI
bp:onEquipment bp:BR204 ;
bp:byProbe bp:PRB-17 ;
bp:atTime "2022-06-10T06:14:32Z"^^xsd:dateTime ;
bp:hasQuality "Good" ;
bp:hasValue [ a qudt:QuantityValue ; # 값은 결코 맨숫자로 다니지 않는다
qudt:numericValue "7.0"^^xsd:float ;
qudt:hasUnit unit:PH ] .
그 qudt:hasUnit은 이 장이 시작하면서 내세운 "데이터 더하기 맥락은 정보와 같다"는 바로 그 규칙을, 바라기만 하는 것이 아니라 강제 가능하게 만든 것입니다: 단위는 컬럼 머리글의 문자열이 아니라 기계 판독 가능한 IRI로 따라다니므로, 어떤 시스템도 7.0을 포도당으로 잘못 읽을 수 없습니다. (QUDT — 수량·단위·차원·타입(Quantities, Units, Dimensions and Types) 어휘 — 와 전 세계적 IRI가 어떻게 값을 스스로 기술하게 하는지는 4권의 식별자와 단위 장 전체의 주제입니다.) 두 가지 추가 동작이 이 장의 나머지와 고리를 닫습니다. 첫째, quality 플래그는 게이트가 검사할 수 있는 제약이 됩니다: SHACL 형상(형상 제약 언어(Shapes Constraint Language) — 그래프 데이터가 요구되는 구조를 갖추었는지 검증하는 방법)은 모든 출하 측정값이 통제된 집합 ("Good" "Uncertain" "Bad")에서 가져온 bp:hasQuality와 정확히 하나의 타임스탬프를 지니도록 요구할 수 있으므로, 잘못된 형식의 측정값은 문턱에서 거부됩니다 — 4권의 출하 게이트가 한 로트의 전체 CQA 패널에 대해 돌리는 바로 그 폐쇄 세계(closed-world) 체크리스트입니다. 둘째, 섬 문제의 질문 — "이 배치에 관한 모든 것을 보여달라" — 은 한 줄짜리 SPARQL 쿼리(SQL이 테이블을 위한 것이듯, RDF를 위한 질의 언어)가 되며, 이것은 역량 질문(competency question) — 데이터 모델이 목적에 부합하려면 답할 수 있어야 하는 질문 — 입니다.
# CQ: 배치 L-22-0417에 묶인 모든 측정값을, 모든 시스템에 걸쳐, 하나의 쿼리로 반환한다.
PREFIX bp: <https://example.org/bioproc#>
PREFIX qudt: <http://qudt.org/schema/qudt/>
SELECT ?reading ?value ?unit ?when WHERE {
?reading bp:ofBatch bp:L-22-0417 ;
bp:hasValue/qudt:numericValue ?value ;
bp:hasValue/qudt:hasUnit ?unit ;
bp:atTime ?when .
} ORDER BY ?when
이 쿼리가 단 한 번의 패스로 답하는 것은 오직 모든 시스템이 bp:L-22-0417을 같은 IRI로 발행했기 때문입니다 — 이것이 바로 히스토리언, 크로마토그래피 데이터 시스템, LIMS가 각자 배치를 다르게 표기할 때 깨지는 그 섬 결합입니다. 이런 식으로 측정값을 모델링하면 그것이 어떤 종류의 대상인지도 못 박힙니다: pH 값은 배양액에 내재하는 품질(quality) — 시간 속에서 지속되며 속성을 지니는 것, 즉 상위 온톨로지(upper-ontology)적 의미에서의 지속체(continuant) — 인 반면, 그것을 만들어 낸 바이오리액터 운전은 발생체(occurrent), 즉 일어났다가 끝나는 과정입니다. 이 둘을 똑바로 구분해 두는 것(측정값은 배양액에 관한 것이지, 운전 그 자체와 같은 것이 아니라는 것)이 바로, 계보(lineage) 탐색이 배치에서 그것을 담았던 용기로 결코 넘어가지 않게 해 주는 출처(provenance) 규율입니다. 그 의미 계층 전체 — 전 세계적으로 유일한 정체성, 한정된(qualified) 값, 검증 형상 — 가 바로 이 책 뒷부분에서 의미론적 상호운용성과 온톨로지와 FAIR 데이터가 쌓아 올리는 것이며, 4권이 섬 문제에 대한 설계된 치료법으로서 온전히 발전시키는 것입니다.
미묘하지만 결정적인 규칙: 마음에 들지 않는 숫자를 조용히 삭제할 수는 없습니다. 실패, 의심스러운(suspect), 규격 외(out-of-specification) 결과 또한 데이터이며, 나머지와 함께 보존되고 검토되어야 합니다 — 배치를 깔끔해 보이게 하려고 결코 폐기해서는 안 됩니다 [4]. 바로 이것이 quality 플래그가 존재하는 이유입니다: Uncertain이나 Bad로 표시된 측정값은 삭제되지 않고 — 그 의심을 값 옆에 기록한 채로 보존되고 검토됩니다. 정직한 기록은 불리한 점을 그대로 남겨둡니다. 생애주기는 불리한 점도 유리한 점만큼이나 충실하게 보존합니다.
배치 하나 속의 4V: 규모, 속도, 다양성, 진실성
바이오공정 데이터는 네 가지 차원에서 까다로운데, 이것이 "4V"입니다. 빅데이터(big data)라는 더 넓은 세계에서 빌려온 렌즈입니다. 배치 하나에서 실제로 풀어보면 다음과 같은 모습입니다.
규모(Volume). 단일 바이오리액터 운전 한 번에는 열에서 스무 개의 프로브가 1주에서 3주 동안 몇 초마다 표본을 채취합니다 — 그리고 이것은 생산 단계만 따진 것입니다. 그 전에 세포를 키운 종균 배양(seed train)이 이미 자기만의 추적값을 기록하고 있었습니다. 그 스칼라(scalar) 프로브 추적값은 규모가 작습니다 — 기가바이트가 아니라 시계열 데이터 몇백 메가바이트 정도입니다. 배치를 기가바이트 단위로 밀어 올리는 것은 그 위에 쌓이는 풍부한 층들입니다: 스펙트럼 스캔(라만(Raman)과 NIR, 한 번 획득에 수백 개의 파장), 영상, 유전체학(genomics), 그리고 오프라인 실험실 분석. 그것들을 더하면 배치 한 건이 기가바이트 단위의 정형·비정형 기록을 생성할 수 있습니다.
속도(Velocity). 그 데이터의 일부는 실시간으로 도착하여 지금 조치해야 합니다 — 내일 검토하려고 미뤄둔 pH 이탈은 이미 오늘의 세포를 망쳐버렸을 수도 있습니다.
다양성(Variety). 데이터는 여러 형태로 들어옵니다. 연속적인 센서 추적값, 단일 실험실 결과, 자유 텍스트 형식의 작업자 메모, 크로마토그램(chromatogram), 전자 서명. 일부는 기계가 생성하고 일부는 손으로 입력하며, 둘 다 하나의 일관된 무결성(integrity) 규칙 아래에서 관리되어야 합니다 [8].
진실성(Veracity). 모든 점은 신뢰할 수 있어야 합니다 — 진정으로 귀속 가능하고, 정확하며, 완전해야 합니다 — 환자의 안전이 거기에 달려 있기 때문입니다 [2]. 진실성은 주관적인 것이 아닙니다. 그것은 이 이질적인 데이터의 홍수 전반에 걸쳐 정의되고, 점수화되며, 심지어 자동으로 모니터링될 수도 있습니다 [8].
모델 또한 숫자만이 아니라 맥락을 필요로 하는 이유
이 장의 중심 주장 — 맨숫자 7.0은 잡음이라는 것 — 은 규제상의 논점만이 아닙니다. 그것은 이 데이터로 훈련되는 모든 기계학습(machine-learning) 모델의 근본 전제이며, 여섯 필드 기록이야말로 데이터를 오해를 부르는 것이 아니라 학습 가능한(learnable) 것으로 만들어 주는 것입니다. 모델이 데이터를 건드리는 순간, 이 필드들 중 셋이 제값을 합니다. batch_id는 데이터 누출(data leakage) — 시험 세트(test set)의 정보가 훈련에 스며들어 점수를 부풀리는 치명적 죄 — 을 막아 주는 필드입니다. 한 운전에서 나온 프로브 측정값들은 서로 강하게 상관되어 있으므로, 행(row)을 무작위로 나누어 평가한 모델은 같은 배치의 측정값을 훈련과 시험 양쪽에서 보게 되어 거짓으로 좋은 숫자를 보고합니다. 정직한 평가는 한 배치의 모든 측정값을 분할의 같은 편에 두는 그룹화(배치 단위 제외, leave-one-batch-out) 교차검증(cross-validation)이며, 그 분할은 오직 포착 시점에 batch_id가 모든 행에 찍혔기 때문에 가능합니다. quality 플래그는 모델이 반드시 존중해야 하는 레이블(label)입니다: Bad나 Uncertain으로 표시된 측정값은 Good인 것과는 다른 종류의 입력이며, 셋을 모두 동등한 양 모델에 조용히 먹이는 것은 공장 자신이 신뢰하지 않는 데이터로 모델을 가르치는 일입니다. 그리고 timestamp와 tag는 배포된 모델이 공정 표류(process drift)(살아 있는 배양이 배치마다 진짜로 변하는 것)와 모델 표류(model drift)(공정은 변하지 않았는데 모델이 낡아 가는 것)를 구별하게 해 주는 것입니다 — 각 값이 어떤 신호에, 어떤 장비에서, 어떤 순간에 속하는지 모르면 모델이 할 수 없는 구별입니다. 7.0을 검사관에게 증거로 만들어 주는 바로 그 맥락이, 그것을 인정 가능한 훈련 사례로 만들어 줍니다: 고아 숫자로 훈련된 모델은 우연을 학습하며, 메타데이터야말로 규제 당국이 신뢰할 수 있는 모델과 스스로를 추켜세우는 모델의 차이입니다. 그 기계 장치가 어떻게 구축되는지 — 누출 없는 분할, 표류 탐지, 그리고 학습하는 모델을 GMP 아래에서 검증된 상태로 유지하는 잠금 모델(locked-model) 생애주기 — 는 5권의 데이터, 연료와 MLOps와 생애주기 장의 주제입니다.
측정값이 없을 때: 간극, 부재한 측정값, 그리고 신중한 대치
지금까지의 생애주기는 모든 점이 도착한다고 가정했습니다. 실제 시계열에는 구멍이 있고, 그 구멍을 어떻게 다루느냐 자체가 하나의 데이터 무결성 결정입니다. 첫 번째 동작은 차트에서는 비슷해 보이지만 의미로는 정반대인 두 가지 실패를 갈라놓는 것입니다.
부재한 측정값(absent reading)은 행이 아예 없는 것입니다: 프로브가 오프라인이었거나, 네트워크가 끊겼거나, 히스토리언의 데드밴드(deadband)(신호가 충분히 움직일 때만 새 점을 기록하는 스윙잉-도어 압축으로, 공장 정보 시스템에서 소개함)가 변하지 않은 값을 정당하게 억제했거나, 오프라인 시료를 아직 아무도 뽑도록 예정되지 않았던 것입니다. Bad 품질 측정값(Bad-quality reading)은 존재하지만 신뢰할 수 없는 행입니다: 값은 있지만, 프로브가 범위를 벗어나 표류했거나, 보정이 만료됐거나, 고장이 탐지되어 그 quality 플래그가 Bad나 Uncertain을 가리킵니다. 이 구분은 탁상공론이 아닙니다. 간극은 우리는 모른다고 말하고, Bad 점은 측정은 했으나 믿지 않는다고 말합니다 — 그리고 정직한 기록은, 차트의 매끄러운 선이 결코 존재하지 않았던 연속성을 암시하게 두는 대신, 둘 다를 보존합니다. 그래서 5권의 OPC UA 인터페이스는 GOOD이 아닌 값을 조용히 기록하기를 거부합니다: 영역 밖 예측은 UNCERTAIN으로, 센서 고장은 BAD로 강등되고, 수신 시스템은 자신만만해 보이는 숫자를 저장하는 대신 예외를 일으킵니다(정확히 그 게이트를 제조 운영 장이 구축함).
탐지는 기대되는 주기(cadence)를 아는 것을 뜻합니다. 매초 기록되는 pH 태그는 10초가 지나도록 새 점이 없고 또한 데드밴드로 설명되지 않으면 결측이며, 하루 두 번 표집되는 오프라인 역가는 3시간째에는 결측이 아니라 예정된 채취 이후에야 지연된 것입니다. 그러므로 간극 탐지는 주기를 인식합니다: 실제 도착 패턴을 태그가 선언한 표집 간격과 압축 규칙에 대비하고, 낡은(stale) 값 — 타임스탬프가 더 이상 나아가지 않는 값 — 을 그 자체로 하나의 구멍으로 취급합니다. 도착했으나 센서의 검증된 범위 밖에 있는 값은 간극이 아니라 Bad로 강등할 후보이며, 이는 행을 유지하면서 그 옆에 의심을 기록하는 것으로, 위의 주의 상자가 요구하는 그대로입니다.
표현을 정직하게 한다는 것은 행을 지어내지 않는 것을 뜻합니다. 결측 점은 결측으로 기록됩니다 — 사유 코드를 단 명시적 null이거나, 주기 메타데이터가 읽어낼 수 있게 하는 행의 부재로서 — 결코 나중에 진짜 측정값으로 읽힐 지어낸 값으로 메워지지 않습니다. 하류 뷰가 균등 간격 계열을 필요로 하면(많은 차트와 모델이 그렇습니다), 그 채움은 원시 데이터가 아니라 처리된(processed) 산출물입니다: 읽을 때 계산되고, 도출된 것으로 표시되며, 원본 기록 위에 결코 되쓰이지 않습니다. 그것이 바로 이 장의 원시 대 처리 경계를 구멍에 적용한 것입니다.
대치(imputation) — 결측값을 추정하는 것 — 는 때로 필요하지만 언제나 신중히 해야 합니다. 흔한 방법은 야심의 순서로 올라갑니다: LOCF(직전 관측값 이월, last-observation-carried-forward, 이전 값을 유지), 둘러싼 점 사이의 선형 보간(linear interpolation), 그리고 모델 기반(model-based) 대치(소프트 센서나 기계론적 트윈이 상관된 신호로부터 값을 채움 — 의미론적 상호운용성 장은 이것의 재표집-그리고-LOCF 버전을 배선 위에서 보여 줍니다). 각각은 데이터로 분장한 추측이므로 세 가지 규칙이 성립합니다. 첫째, 대치된 값은 처리된 것이고, 그렇게 태깅되며, 원시 간극을 결코 덮어쓰지 않습니다. 둘째, 그것은 규제 당국이 측정된 증거로 읽는 어떤 기록에서도 배제됩니다 — 배치 출하는 보간된 숫자에 좌우되지 않습니다. 셋째, 그리고 기계학습에 가장 위험한 것: 바이오공정의 결측은 좀처럼 무작위가 아닙니다. 프로브는 흔히 배양이 잘못됐기 때문에 고장 나고, 분석자는 배치가 이상하게 굴 때 바로 오프라인 시료를 더 뽑습니다 — 그래서 간극은 무작위 결측이 아니며(not missing-at-random), 그것을 순진하게 대치하는 것(또는 더 나쁘게는 행을 조용히 버리는 것)은 모델에게 문제란 조용한 것이라고 가르칩니다. 가장 안전한 대치는 자기 불확실성을 함께 실어 나르며, 간극을 다뤄야 하는 모델은 공장이 실제로는 결코 보지 못하는 정돈된 계열이 아니라 간극이 있는 채로 평가됩니다. 이것이 ALCOA+ 완전(Complete) 원칙이 기록에 요구하고 5권의 적용 영역(applicability-domain)과 누출 규율이 모델에 요구하는 바로 그 정직함입니다.
섬 문제: 단절된 시스템을 대응시키는 일이 여전히 미해결인 이유
실제 배치는 프로브 하나가 아니다
우리의 pH 점은 단순했습니다. 그러나 실제 배치는 수십 군데에서, 수십 가지 형태로, 서로 대화하지 못하는 경우가 많은 시스템 위에서 데이터를 생성합니다 — 여기에는 공정 제어 시스템(Siemens나 Emerson의 DCS — 분산 제어 시스템(Distributed Control System)), 저기에는 크로마토그래피 데이터 시스템(Waters Empower), 그리고 LIMS(실험실 정보 관리 시스템, Laboratory Information Management System), 히스토리언(historian), 제조실행시스템(MES, 예를 들어 Siemens Opcenter나 Dassault Systèmes DELMIA), 또 어딘가에는 협력사의 스프레드시트. 이 섬들을 담고 있는 현장 시스템들은 플랜트 정보 시스템에서 조망합니다. 여기서 중요한 것은 각각이 자기만의 메타데이터 관례로 자기만의 데이터 섬을 포착한다는 점입니다. 이 섬들에 공통의 형태를 부여하기 위한 표준들이 존재합니다 — ANSI/ISA-88은 배치와 레시피(recipe) 데이터가 어떻게 구조화되는지를 정의하고, ISA-95는 현장(plant-floor) 데이터가 그 위의 경영 시스템과 어떻게 연결되는지를 정의합니다 — 그러나 모든 실제 계측기를 거기에 대응시키는 것이 어려운 부분입니다.
문제는 값인 경우가 드뭅니다. 문제는 그 주변의 메타데이터입니다. 같은 배치가 히스토리언에서는 "L-22-0417", 크로마토그래피 데이터 시스템에서는 "Lot-220417", LIMS에서는 "220417-L"입니다. 한 시스템은 시각을 UTC로 찍고, 다른 시스템은 현장 지역 시간으로 찍으며, 세 번째는 미국식 달력 날짜만 기록합니다. 하나는 명시적 단위를 담고, 다른 하나는 그것을 암묵적으로 가정하며, 세 번째는 단위를 비워둡니다. 이 측정값들 중 어느 것도 틀린 것은 아닙니다 — 그러나 그것들은 정렬되지 않으며, 그래서 조사자가 묻는 가장 기본적인 질문 — "이 배치에 관한 모든 것을 보여달라" — 에 쿼리로 답할 수가 없습니다. 누군가가 그 섬들을 손으로 대조해야 합니다.
섬 문제: 세 시스템이 같은 배치를 담고 있지만, 그들의 배치 키, 시계, 단위 관례가 일치하지 않아 수기 대조 없이는 기록을 결합할 수 없습니다.
저자가 AI의 도움을 받아 직접 제작한 그림입니다.
미해결 과제: 섬들을 잇기
현재 기술 수준을 솔직히 말하면 이렇습니다. 그 섬들을 하나의 신뢰할 수 있고 연결된 기록으로 꿰매어 — 그림자 전체를 하나의 이야기로 읽을 수 있도록 — 하는 것이 바이오의약품 데이터 관리의 핵심 문제이며, 일반적인 경우에는 아직 해결되지 않았습니다. 관례가 충돌하는 곳에서는 같은 사실이 각 시스템마다 중복으로 포착된 뒤 손으로 대조되어야 하고, 그 대조는 모든 조사의 임계 경로(critical path) 위에 놓입니다. 오후 한나절이면 끝나야 할 근본 원인 분석이, 누군가 "Lot-220417"과 "220417-L"이 같은 배치임을 증명하는 동안 며칠씩 기다립니다. 규제 당국은 바로 이것을 예상하여 제조업체에게 데이터 흐름을 지도화(map their data flows)할 것을 요구합니다 — 각 측정값이 어디서 태어나고, 어디를 거치며, 어디서 변경되거나 손실될 수 있는지를 점 하나하나 그려내도록 말입니다 [3] — 그리고 GAMP 지침은 기록의 종단 간(end-to-end) 추적성을 선택이 아닌 요구사항으로 다룹니다 [5]. 가장 신뢰할 만한 앞으로의 길은 포착 지점에서의 공유된 의미론(semantics)입니다. 단위, 타임스탬프, 식별자가 모든 시스템에서 같은 것을 의미하도록 표준화된, 기계 판독 가능한 형식 말입니다 — 그 공유된 의미를 어떻게 설계하는지가 이 책 뒷부분 의미론적 상호운용성과 온톨로지와 FAIR 데이터의 주제 전체입니다. Allotrope Foundation의 AnIML 및 Allotrope Data Format(ADF) 작업은 분석·공정 데이터를 위한 그 공통 형태를 정의하려는 가장 앞선 협력적 시도입니다 [9] — 그러나 채택은 부분적이고, 레거시 계측기는 자기만의 형식을 내보내며, 실제 플랜트를 하나의 어휘로 조화시키는 일은 여전히 진정으로 미해결이며 비용이 큰 문제로 남아 있습니다. 이 책은 상당 부분 그것을 도해(圖解)하기 위해 존재합니다.
왜 중요한가: 품질관리의 척추인 생애주기
생애주기가 척추라면, 데이터를 관리한다는 것은 바로 그 척추를 처음부터 끝까지 관리하는 것입니다. 포착되었지만 결코 맥락화되지 않은 측정값은 쓸모가 없습니다. 사용되었지만 결코 보존되지 않은 측정값은 방어할 수 없습니다. 보존되었지만 충실한 원본이나 진본 사본의 형태가 아닌 측정값은 검사관에게 가치가 없습니다. 좋은 데이터 관리란 모든 점을 일곱 단계 전체에 걸쳐 — 그 메타데이터를 온전히 지킨 채로 — 요구되는 생애 내내 깨끗하게 옮기는 규율, 그뿐입니다 [5].
산업계는 이를 호된 대가를 치르며 배웠습니다. 이 생애주기를 관리하는 일은 선택 사항이 아닙니다. 기록 및 데이터 무결성에 관한 ISPE GAMP 지침은 이를 품질 시스템의 척추로 다룹니다 — 데이터가 태어나는 순간부터 파기되는 날까지, 통제가 데이터를 따라다닙니다 [5]. 더 넓은 데이터 관리 지식 체계인 DAMA-DMBOK은 어떤 산업이든 이 여정을 묘사하는 데 쓰는 어휘를 제공합니다: 포착, 맥락화, 사용, 보존, 보관 [7].
현실에서는
이 장의 생애주기는 종이 위의 추상이 아닙니다 — 그것은 플랜트가 날마다 운영하는 실제 계측기와 시스템으로 짜여 있으며, 우리의 7.0은 바로 그 하드웨어 안에서 태어납니다. 생성 단계에서 pH 프로브는 Sartorius(Ambr, Biostat STR), Thermo Fisher Scientific(HyPerforma S.U.B.) 또는 Eppendorf(BioBLU) 같은 벤더의 일회용 바이오리액터 속에 있습니다. 포착 단계에서 그 값은 벤더 형식으로 저장됩니다 — 크로마토그래피의 경우 Agilent ChemStation .ch 파일, 바이오리액터 제어기에서 나오는 독자적 히스토리언 기록 — 이를 Allotrope Foundation의 개방형 AnIML과 Allotrope Data Format(ADF)이 수십 년 뒤에도 판독 가능하게 만드는 것을 목표로 합니다. 처리와 사용을 거치며 그 값은 공정 제어 시스템(Siemens나 Emerson의 DCS), 크로마토그래피 데이터 시스템(Waters Empower), 히스토리언(예를 들어 OSIsoft/AVEVA PI 서버), LIMS, 그리고 제조실행시스템(Siemens Opcenter나 Dassault Systèmes DELMIA)을 가로질러 흐릅니다. 그 각각은 자기만의 메타데이터 관례를 지닌 하나의 섬이며, 이 책의 미해결 과제는 그것들을 잇는 것입니다: 같은 배치가 Empower에서는 하나의 키, PI에서는 또 다른 키, LIMS에서는 세 번째 키로 살아 있고, 오늘날에도 여전히 누군가가 그것들을 손으로 대조합니다. 각 단계가 어느 상자 안에 사는지를 아는 것이, 벤더의 브로슈어를 읽는 것과 자기 자신의 배치 기록을 읽는 것의 차이입니다.
핵심 용어
- 데이터 생애주기(data lifecycle) — 데이터 점의 전체 여정: 생성/포착, 처리, 맥락화, 검토/사용, 보고, 보존/보관, 폐기.
- 원시 데이터(raw data) — 계측기나 사람이 처음 기록한 그대로의, 변경되지 않은 원본 값.
- 처리된 데이터(processed data) — 원시 데이터로부터 도출된 보정·평균·계산된 결과.
- 메타데이터(metadata) — "데이터에 관한 데이터"; 값에 의미와 이력을 부여하는 단위, 타임스탬프, 장비, 배치, 방법, 작성자 정보.
- 원본 기록(original record) — 데이터가 생성된 형식 그대로 처음 영속적으로 포착한 것.
- 진본 사본(true copy) — 전체 의미를 보존하며 원본을 대신할 수 있는, (메타데이터를 포함한) 정확하고 검증된 복제본.
- 맥락화(contextualization) — 숫자가 정보가 되도록 단위, 시각, 장비, 배치, 방법을 붙이는 것.
- 정보(information) — 데이터 더하기 맥락; 실제로 신뢰하고 그에 따라 행동할 수 있는 숫자.
- 태그(tag) — 신호의 구조화된 주소,
<asset>.<measurement>.<role>(예:BR204.pH.PV)로, 천 개의 센서가 새로운 컬럼이 아니라 하나의 스키마(schema)의 값으로서 하나의 테이블을 공유하게 합니다. - 공정값(process value, PV) / 설정값(setpoint, SP) — 공정이 실제로 한 것(
.PV) 대 레시피가 요구한 것(.SP). - 품질 플래그(quality flag) — 값 옆에 저장하는 신뢰 표식(Good, Uncertain, Bad); 보증할 수 없는 측정값은 좋은 측정값과 같지 않습니다.
- 부재한 측정값 대 Bad 품질 측정값(absent reading vs. Bad-quality reading) — 간극(행이 아예 없음: 프로브 오프라인, 데드밴드, 또는 아직 미표집) 대 존재하지만
Bad/Uncertain으로 표시된 행. 간극은 "우리는 모른다"고, Bad 점은 "측정했으나 믿지 않는다"고 말하며, 정직한 기록은 둘 다를 보존합니다. - 대치(imputation, LOCF / 보간 / 모델 기반) — 결측값을 직전 값 이월, 이웃 사이 보간, 또는 상관된 신호로부터의 예측으로 추정하는 것. 언제나 처리된 산출물로서 도출된 것으로 태깅되고, 측정된 증거에서 배제되며, 바이오공정 간극은 대개 무작위 결측이 아니므로(프로브는 흔히 배치가 잘못됐기 때문에 고장 남) 신중히 다뤄야 합니다.
- 섬 문제(islands problem) — 배치 키, 시계, 단위가 일치하지 않는 단절된 시스템들에 걸쳐 같은 배치를 결합하기 어려운 문제로, 중복 포착과 수기 대조를 강요합니다.
- RDF 트리플 / IRI — 지식 그래프에서 주어 — 술어 — 목적어로 적힌 사실로, 그 주어는 모든 시스템에서 같은 것을 뜻하는 전 세계적으로 유일한 웹 이름(국제화 자원 식별자(Internationalized Resource Identifier))이어서, 같은 배치 IRI가 섬들에 걸쳐 기록을 결합합니다.
- SHACL / SPARQL — 측정값이 요구되는 구조(예: 정확히 하나의 타임스탬프와 통제된 집합에서 가져온 품질 플래그)를 갖추었는지 검증하는 형상 제약 언어(Shapes Constraint Language), 그리고 "이 배치에 관한 모든 것을 보여달라" 같은 역량 질문(competency question)에 단 한 번의 패스로 답하는 RDF용 질의 언어.
- QUDT — 수량·단위·차원·타입(Quantities, Units, Dimensions and Types) 어휘로, 값이 컬럼 머리글에 파묻힌 문자열이 아니라 기계 판독 가능한 IRI로 그 단위를 실어 나르게 하여,
7.0이 결코 포도당으로 잘못 읽힐 수 없게 합니다. - 지속체 대 발생체(continuant vs. occurrent) — 시간 속에서 지속되며 품질을 지니는 것(배양액, 배치) 대 일어났다가 끝나는 과정(바이오리액터 운전); pH 측정값은 지속체의 품질이지, 그것을 만들어 낸 발생체와 같은 것이 아닙니다.
- 데이터 누출 / 그룹화 교차검증(data leakage / grouped cross-validation) — 한 배치의 측정값이 훈련과 시험 양쪽에 들어가 모델 점수를 부풀리는 모델링 오류, 그리고 그것을 막는 배치 단위 제외(leave-one-batch-out) 평가 — 오직
batch_id가 모든 행에 찍혀 있기 때문에 가능합니다. - 공정 표류 대 모델 표류(process drift vs. model drift) — 살아 있는 배양이 배치마다 진짜로 변하는 것 대 공정은 변하지 않았는데 모델이 낡아 가는 것; 둘을 구별하려면 각 값에 타임스탬프, 태그, batch_id가 필요합니다.
- IQ/OQ/PQ — 설치 적격성, 운영 적격성, 성능 적격성(Installation, Operational, and Performance Qualification): 장비(예: 크로마토그래피 스키드)가 올바르게 설치되었고, 올바르게 작동하며, 실제 작업 부하에서 올바르게 성능을 낸다는 문서화된 증명; 계측기의 적격성 상태는 모든 측정값 메타데이터의 일부입니다.
- CSV / CSA — 전산화 시스템 검증(Computerized System Validation), 즉 규제 대상 컴퓨터 시스템이 사용에 적합하다는 문서화된 증거, 그리고 검증 노력을 환자 위험이 가장 높은 곳에 쓰는, FDA가 주도한 위험 기반 컴퓨터 소프트웨어 보증(Computer Software Assurance)으로의 전환.
- ALCOA+ — 1장의 ALCOA 특성(귀속 가능(Attributable), 판독 가능(Legible), 동시 기록(Contemporaneous), 원본(Original), 정확(Accurate))에 네 가지를 더 확장한 것: 완전(Complete), 일관(Consistent), 지속(Enduring), 이용 가능(Available).
- 보존(retention) — 요구되는 생애 동안 기록을 판독 가능한 상태로 유지하는 것(의약품의 경우 배치 유효기한이 지난 후 최소 1년, 종종 더 길게).
- 4V — 규모(volume), 속도(velocity), 다양성(variety), 진실성(veracity); 바이오공정 데이터를 어렵게 만드는 차원들.
이 다음은
우리는 하나의 점을 그 생애에 걸쳐 따라왔지만, 그 탄생지를 단일한 프로브로 취급했습니다. 실제로 바이오의약품은 여러 단위 작업(unit operation)에 걸쳐 만들어지며, 각각이 측정값으로 분주한 공장입니다. 다음 장 공정 데이터가 태어나는 곳으로의 여행에서는 단일클론항체(monoclonal antibody) 공정 전체 — 상류(upstream), 하류(downstream), 충전·마감(fill-finish), 품질관리(quality control) — 를 걸어보되, 이를 전적으로 데이터를 생성하는 정거장들의 사슬로 재구성하여, 그림자 속 모든 점이 처음으로 숨을 들이쉬는 곳을 정확히 볼 수 있게 합니다.