세포 배양은 생물학적 제제 생산에 매우 중요한 역할을 합니다. 실험 설계(DOE)의 일환으로 공정 변경을 도입할 때, 세포 배양 공정은 여러 상호 의존적인 성장 및 생산 단계를 포함하며, 이 중 일부 단계만 공정 변경의 영향을 받기 때문에 공정의 거동을 정확하게 모델링하는 것은 어려운 과제입니다. 기존의 매개변수 기반 비선형 모델은 이러한 복잡성을 효과적으로 포착하는 데 어려움을 겪는 반면, 비매개변수 모델만으로는 DOE 매개변수와의 상관관계를 파악하기 어렵고 결과가 불분명할 수 있습니다.
이 문제를 해결하기 위해 기능적 실험계획법(Functional DOE)은 복잡한 요소를 주성분으로 단순화하고 변화와 실험계획법 매개변수 간의 상관관계를 분석합니다. 이러한 접근 방식을 통해 소규모 데이터로부터 세포 배양 매개변수를 최적화하고 이를 대규모 생산 과정에서의 거동을 예측할 수 있는 예측 프로파일러를 개발할 수 있습니다. 전체 과정은 JMP Pro의 기능적 데이터 탐색기 플랫폼(Functional Data Explorer Platform) 내에서 수행할 수 있으며, 세포 배양 공정 최적화를 위한 보다 효율적인 방법을 제공합니다.
오늘은 복잡한 비선형 세포 배양 공정을 모델링하기 위해 기능적 실험 설계(DOE)를 사용하는 사례를 살펴보겠습니다. 먼저 모델링하려는 세포 배양 공정이 연속 생산 공정이라는 점을 설명하겠습니다. 이 모델링의 두 가지 목표, 즉 정상 상태를 유지하는 것과 소규모 데이터를 기반으로 대규모 거동을 예측할 수 있는지 여부를 살펴보겠습니다.
다음으로는 제가 수행한 모델링의 기본 함수인 비모수 스플라인과, 이 경우 스플라인 및 주성분 분석을 모델링에 사용하는 플랫폼인 함수형 데이터 탐색기(Functional Data Explorer)에 대해 소개하겠습니다.
두 가지 목표를 달성하기 위한 두 가지 다른 접근 방식과 다양한 유형의 스플라인 적합, 그리고 실험 설계(DOE) 조건을 통합하는 방법에 대해 설명하겠습니다. 마지막으로, 몇 가지 결합 프로파일러를 생성하는 방법과 결과 요약 및 논의, 그리고 제가 겪었던 어려움에 대해 이야기하겠습니다.
우리가 모델링하려는 목표는 연속 생산입니다. 생물학적 제제 분야에서 표준적인 방식은 배치 생산입니다. 배치 생산에서는 세포를 배양하여 생산량을 극대화한 다음, 세포가 특정 시점에 대사적으로 고갈되어 사멸 단계에 접어듭니다. 그러면 생물반응기 내의 모든 것을 수확하는데, 여기에는 사멸한 세포뿐만 아니라 관심 있는 약물이나 분자도 포함됩니다. 이렇게 수확한 물질을 필요한 만큼 가공합니다.
우리가 살펴보려고 하는 것, 그리고 업계의 많은 사람들이 살펴보고 있는 것은, 일회성 생산을 반복하는 대신 자동차 산업과 같은 다른 산업처럼 지속적으로 재료를 생산할 수 있을까 하는 것입니다.
이를 위해서는 당연히 세포를 성장시키되, 성장 곡선의 5번째 단계인 정체기에 머물도록 유지하고 6번째 단계인 세포 사멸을 방지해야 합니다. 이를 위해서는 생물반응기의 크기를 줄이되, 신선한 영양분 등이 포함된 새로운 배지를 지속적으로 공급하고 동시에 동일한 양의 액체를 제거해야 합니다. 이론적으로 이 액체에는 우리가 생산하고자 하는 약물이 포함되어 있어야 합니다. 목표는 새로운 배지가 꾸준히 공급되는 상태를 유지하고, 생산하고자 하는 분자가 용액에 스며들도록 하는 것입니다.
두 번째 목표는 안정적인 생산을 유지하는 것 외에도 소규모 생산 결과를 바탕으로 대규모 생산 방식을 예측하는 것입니다. 소규모 생산에서는 다양한 반응기를 가동하고 여러 조건을 도입할 수 있지만, 물류, 시간, 자금 제약 때문에 대규모 생산에서는 그렇게 할 수 없습니다. 따라서 소규모 생산에서 대규모 생산까지의 과정을 예측할 수 있을 뿐만 아니라, 다양한 요인과 조건을 추가했을 때 대규모 생산에 어떤 영향을 미칠지도 파악하고자 합니다.
이와 관련하여 흥미로운 점은 생산 과정에서 여러 단계를 거치면서 각기 다른 시점에 조건을 도입할 수 있다는 것입니다. 성장 단계에서는 항상 동일한 제어 조건을 유지할 수 있고, 대규모 생산 단계에서도 동일한 제어 조건을 사용할 수 있습니다. 하지만 그 이후에는 시간적 요소를 포함하는 다양한 실험계획법(DOE) 요인들을 추가하게 됩니다. Functional Data Explorer를 사용하여 이러한 작업을 어떻게 수행했는지 살펴보겠습니다.
먼저 스플라인에 대해 소개하겠습니다. 이것이 저희가 진행했던 모델링의 기본입니다. 처음에는 매개변수 모델링을 시도해 보려고 했습니다. 일부 단계에서는 효과적일 수 있다고 생각했기 때문입니다. 성장 단계에서는 로지스틱 지수 모델을 사용할 수도 있었을 것입니다. 하지만 규모의 경제 효과와 실험계획법(DOE)을 도입하는 시점을 고려했을 때, 생산량이 변동하는 경우를 모두 포착하기는 어려웠습니다. 어떤 생산은 성장했다가 감소하고, 어떤 생산은 성장 후 안정적인 상태를 유지하기 때문입니다. 저희가 찾은 매개변수 모델로는 이러한 변화를 제대로 반영할 수 없었습니다.
저희는 좀 더 유연한 방법을 사용하고 싶었고, 이 경우에는 스플라인을 선택했습니다. 스플라인은 기본적으로 데이터의 매듭점(knot) 사이를 단순화된 함수로 맞추는 것입니다. 스플라인을 맞출 때는 몇 가지 선택을 해야 합니다. 첫째, 매듭점을 몇 개 만들 것인가입니다. 일반적으로 매듭점이 많을수록 모델이 데이터에 더 잘 맞는데, 이는 좋을 수도 있고 나쁠 수도 있습니다. 과적합으로 이어질 가능성이 있기 때문입니다. 둘째, 적합도를 어떻게 할 것인가입니다. 각 매듭점 사이를 직선으로 할 것인지, 곡선으로 할 것인지, 아니면 계단 함수로 할 것인지 결정해야 합니다.
함수형 데이터 탐색기에서 제공하는 P 스플라인과 같은 특정 유형의 스플라인에는 평활화 함수를 추가할 수 있습니다. 각 매듭점에서 각 스플라인 사이를 부드럽게 처리하여, 예를 들어 선형 스플라인을 사용하는 경우처럼 끊어진 듯한 급격한 선들을 제거할 수 있습니다.
함수형 데이터 탐색기에서 사용할 수 있는 스플라인 옵션은 B 스플라인과 P 스플라인 두 가지입니다. 함수형 데이터 탐색기에는 파동 함수와 같은 다른 옵션도 있지만, 이 경우에는 반드시 필요한 것은 아닙니다. 일반적으로, 더 간단한 회귀 스플라인인 P 스플라인은 매끄러운 함수를 모델링하는 데 적합합니다. P 스플라인은 잡음이 많고 구불구불한 함수에서 잡음을 완화시켜 주기 때문에 더 효과적일 수 있습니다. 물론 P 스플라인이나 B 스플라인으로 과적합되거나 과소적합되는 경우도 있지만, 이는 단지 일반적인 지침일 뿐입니다.
이 경우, 저희가 사용하는 플랫폼은 Functional Data Explorer입니다. 플랫폼의 실제 모습을 보여주는 이미지를 몇 장 보여드리겠습니다. 일반적으로 함수형 데이터는 연속적인 영역에 걸쳐 기록된 데이터입니다. 이 경우에는 시간이 해당하며, 배치 생산은 시간에 따라 진행됩니다. 다른 데이터 유형도 포함될 수 있습니다. 예를 들어 스펙트럼 데이터에 사용되는 것을 본 적이 있습니다. 그런 다음 측정값 세트를 식별해야 합니다. 이 경우에는 서로 다른 배치로 식별되므로 각 배치마다 개별적인 적합이 이루어집니다.
또 다른 장점은 이러한 보조 요소를 추가할 수 있다는 점인데, 이는 나중에 더 자세히 설명드리겠습니다. 이러한 보조 요소는 실험계획법(DOE) 요소, 즉 포착하고자 하는 형태를 잠재적으로 변화시킬 수 있는 외부 요인들을 포함할 수 있습니다. 이 부분이 어떻게 작동하는지는 프레젠테이션 후반부에서 더 자세히 설명드리겠습니다.
처음에는 어떤 유형의 스플라인이 가장 좋을지 확신이 서지 않았습니다. 딱히 정해진 규칙이 없었기 때문입니다. 처음에는 두 가지 유형의 스플라인을 모두 사용해 모델링을 진행했습니다. Functional Data Explorer에서 이러한 모델링을 할 때는 최적의 모델을 찾는 방법이 여러 가지 있습니다. 이 경우에는 BIC 최소화 방법을 사용했습니다. 교차 검증과 같은 방법도 있지만, 추가적인 요인들을 도입했기 때문에 테스트 데이터셋과 훈련 데이터셋을 명확하게 구분하기가 어려웠습니다. 그래서 이 경우에는 BIC 최소화 방법을 선택했습니다.
여기 두 가지 스플라인 유형의 결과가 있습니다. 빨간색 선은 각 스플라인의 평균 적합 곡선입니다. 두 곡선이 상당히 유사하지만, 적합에 도달하는 방식은 다릅니다. B 스플라인은 매듭점의 개수를 13개로 줄였고, 3차 함수를 권장하여 곡선에 약간의 곡률을 더했습니다.
P 스플라인은 기본적으로 매일 매듭점을 두는 것을 권장합니다. 총 30일이지만, 각 날짜 사이에 29개의 매듭점이 있는 셈입니다. 각 매듭점에서 평활화를 적용함으로써 선형 회귀를 사용하면서도 곡률을 유지할 수 있었습니다. 초반에는 두 결과가 상당히 유사해 보입니다. 후반부에는 일부 데이터 배치에서 누락된 부분이 있어 약간의 차이가 발생할 수 있습니다.
다음으로 개별 적합 결과를 살펴보면서 마지막에 차이가 나타나는 원인을 알아보겠습니다. 여기서는 동일한 배치 세트에 대해 배치별 실제 스플라인 적합 결과를 보여줍니다. 평균 함수에서 봤던 것과 마찬가지로, 시작 부분과 중간 부분은 서로 매우 유사하지만, B 스플라인 적합의 경우 생산 후반부에 방향이 급격하게 변하는 경우가 있는데, 이는 실제 상황에서 예상되는 결과가 아닙니다.
일반적으로 세포가 죽기 시작하면 마법처럼 다시 살아나서 성장하지 않습니다. 이는 모든 배치에 대해 30일차 데이터가 충분하지 않았기 때문에 발생하는 오류인 것 같습니다. B 스플라인은 3차 함수를 사용했기 때문에 실제와 맞지 않는 결과를 예측했습니다. 반면 P 스플라인은 부드러운 선형 함수를 사용했기 때문에 데이터가 부족하더라도 배치 마지막에 예상되는 결과를 더 잘 보여주었습니다. 이는 P 스플라인이 더 적합할 수 있음을 시사했지만, 두 가지 모두 사용하여 최종 결과를 확인하고 싶었습니다.
Functional Data Explorer를 사용하면 모든 배치에 대한 적합 결과를 모두 얻은 후 평균 함수를 생성합니다. 이 평균 함수는 모든 배치에 대한 적합 결과의 평균입니다. 그런 다음 "평균 함수에서 크게 벗어나는 변동 요인은 어디에 있는가?"를 분석합니다.
몇 슬라이드 전에 큰 부채꼴 모양의 확산을 보셨던 것을 기억하시나요? 다시 보여드리겠습니다. 이렇게 크게 부채꼴 모양으로 퍼지는 것을 볼 수 있습니다. 처음에는 곡선이 상당히 좁다가 마지막에 크게 퍼지는데, 이것이 바로 우리가 탐구하고자 하는 부분입니다. 물론, 변동성의 70~80%를 설명하는 첫 번째 형태 함수를 보면, 성장 단계 초반에는 상당히 평평하지만, 마지막에는 변동이 나타나는 것을 알 수 있습니다. 이는 우리가 예상했던 바와 같습니다. 실제로, 이 부분이 우리가 모델링하려는 안정기일 가능성이 높습니다. 이 곡선은 안정적이었다가 상승하는 모습을 보여주며, 평균 함수에서 나타나는 급격한 하락을 상쇄합니다.
두 스플라인 모두 형상 함수에서 이러한 현상을 포착하고 있지만, P 스플라인의 경우 그래프가 꾸준히 상승하는 반면, B 스플라인의 경우 그래프가 상승하다가 끝부분에서 원치 않는 약간의 하락이 나타납니다.
추가적인 형상 함수는 중요도는 낮을 수 있지만 모델링할 가치가 있을 수 있는 요소들을 포착합니다. 예를 들어, 성장과 정체기 사이의 전환 과정에서의 작은 변화나 마지막 부분의 급격한 감소 등이 있습니다. 하지만 이 초기 형상 함수가 우리가 가장 관심을 가질 만한 함수였습니다.
형태 함수는 평균 함수와 비교해야 하기 때문에 해석하기가 다소 어려울 수 있습니다. Functional Date Explorer의 장점 중 하나는 다른 주성분 분석 도구와 마찬가지로 점수 플롯을 제공한다는 것입니다. 각 배치에 대해 적합을 적용하고 각 주성분에서 얼마나 높거나 낮은지를 점수로 보여줍니다. 즉, 어떤 배치가 첫 번째 형태 함수에서 높은 값을, 두 번째 형태 함수에서 낮은 값을 나타내는지 알 수 있습니다.
여기서 예시를 통해 이러한 형태 변화가 무엇인지 정의하는 데 도움이 되는 것을 확인할 수 있습니다. 여기에서 볼 수 있듯이 초기 형태 함수 값이 높았던 특정 배치는 안정적인 상태를 유지하는 반면, 값이 낮았던 배치는 증가하다가 감소하는 것을 볼 수 있습니다.
궁금해서 다른 사람들이 뭘 하는지도 살펴봤어요. 성장기와 정체기 사이에 조건 변화로 인해 생산량이 약간 불규칙해지는 경우가 있는데, 큰 문제는 아니지만 최소화하고 싶은 부분일 수도 있고, 아니면 마지막에 생산량이 급격히 줄어드는 현상도 있을 수 있는데, 이것도 의미가 있을 수도 있고 없을 수도 있어요. 특정 배치 생산이 끝나는 과정에서 나타나는 현상일 수도 있고요.
이를 통해 기능적 주성분을 정의하고 형태 변화가 발생하는 지점을 파악했습니다. 하지만 그 다음에는 실제로 어떤 요인이 이러한 형태 변화를 일으키는지, 즉 조건을 조작하여 형태를 제어할 수 있는지 알아보고 싶었습니다. 바로 이 지점에서 기능적 실험계획법이 등장합니다.
이를 위해 기본적으로 각 주성분에 대해 추가적인 실험계획법(DOE) 조건을 적용하여 회귀 분석을 수행합니다. 이러한 모델링을 수행하는 방법에는 여러 가지 옵션이 있습니다. 이 경우에는 요인이 세 개뿐이므로 요인 수를 줄여 복잡성을 낮출 필요가 크지 않아 AIC 최소화를 통한 최적 부분집합 추출을 사용했습니다. 또한 최적 부분집합 추출에 필요한 계산량도 크지 않았습니다. 저는 모든 FPC 분석에 이 방법을 사용합니다. 여기서 볼 수 있듯이 예측 표현식을 출력하므로 각 요인이 각 형태에 어떤 영향을 미치는지 파악할 수 있습니다.
하지만 다시 말하지만, 그것이 항상 가장 이상적인 해석 방법은 아닙니다. 예를 들어, 요인 3의 계수가 가장 크다고 해서 요인 3이 가장 영향력이 크다고 단정할 수는 없습니다. 하지만 제가 JMP에서 가장 좋아하는 기능 중 하나는 프로파일러입니다. 실제로 어떤 일이 일어나고 있는지 시각화하는 데 정말 유용합니다.
이 경우 프로파일러를 살펴보면서, 저는 30일째를 최대화하는 것을 안정기 연장의 지표로 사용했습니다. 완벽한 해결책은 아니지만, 안정적인 상태를 유지한다면 30일째에도 높은 생산량을 보일 것이라고 생각했습니다. 실제로 최적화를 진행해 보니, 음의 계수를 가지는 요인 3을 최소화하는 것이 요인 3이 매우 높을 때보다 더 안정적인 생산량을 가져다준다는 것을 알 수 있었습니다. 이는 고객들에게 매우 유용한 정보였습니다. 고객들은 이 정보를 통해 "이러한 조건에서 더 안정적인 생산량을 얻을 수 있다"는 판단 기준을 마련할 수 있었습니다.
두 번째 반응은 안정 상태를 확인한 후 대규모 예측이 가능한지 살펴보는 것이었습니다. 이를 위해 확보한 데이터 세트에는 대조 조건에서의 대규모 실행 결과와 대조 조건에서의 소규모 실행 결과, 그리고 성장 후 다양한 실험 설계 조건을 도입한 결과가 모두 포함되어 있었습니다.
우리가 이러한 현상을 포착하고자 했던 이유는 소규모에서 대규모로의 전환이 완벽하지 않기 때문입니다. 특히 성장 단계에서는 더욱 그렇습니다. 대규모 환경에서는 세포가 자랄 공간이 더 넓고, 혼합 상태가 더 좋거나 나쁠 수 있으며, 영양분에 대한 접근성도 달라질 수 있습니다. 일반적으로 대규모 환경에서는 소규모 환경보다 성장이 더 빠르게 진행됩니다. 우리는 이러한 성장 증가를 예측하는 예측 프로파일러를 개발하고, 미국 에너지부(DOE)의 영향 요인까지 적용할 수 있는지 확인하고자 했습니다.
이 부분에 대해서는 다시 자세히 설명하지 않겠지만, 응답 2에 대해서도 매우 유사한 피팅을 수행했습니다. 응답 1에서 B 스플라인을 사용했을 때와 마찬가지로 끝부분에 이상한 현상이 나타났기 때문에 P 스플라인을 다시 선택했습니다. 형상 함수를 살펴보면 이 함수가 다시 나타납니다. 이것은 정상 상태 함수입니다. 하지만 이 경우에는 스케일 측면에서 우리가 관심을 갖는 부분은 아닙니다.
규모가 크기 때문에, 우리는 이것이 이 부분에 영향을 미치는지 확인하고 싶습니다. 우리는 생산 초기 단계의 변화를 포착하는 것으로 보이는 추가적인 형태 함수들을 가지고 있는데, 이것이 바로 우리가 중요하게 생각하는 부분입니다. 실제로, 형태 함수 3은 해당 성장 단계에서 가장 극적인 변화를 보여주는 것으로 나타났습니다.
프로파일러를 살펴보면 이를 확인할 수 있습니다. FPC3 값이 높을 때와 낮을 때의 기울기를 비교해 보면, FPC3 값이 높을 때는 기울기가 다소 완만하고, 낮을 때는 더욱 급격한 피크가 나타나는 것을 알 수 있습니다.
다음으로 DOE로 넘어가 보겠습니다. 이러한 주성분에 요인과 스케일을 적용할 수 있을까요? 세 번째 주성분에서 유의미한 요소로 나타난 것은 스케일뿐이었습니다. 이는 스케일이 특정 형태 변화에 미치는 영향을 분리해낼 수 있다는 점에서 의미가 있습니다. 물론 스케일이 다른 주성분에도 영향을 미쳤지만, 형태 변화에 대한 스케일의 영향을 명확하게 구분할 수 있었습니다.
다시 말하지만, 프로파일러를 살펴보는 것이 해석에 가장 도움이 됩니다. 30일차에는 규모가 큰 영향을 미치지 않는 것을 볼 수 있습니다. 그래프가 거의 평탄합니다. 하지만 성장 단계인 7일차를 보면, 규모가 클수록 작은 규모보다 더 큰 영향을 미치는 것을 알 수 있습니다. 규모에 따른 차이를 제대로 포착하고 있는 것 같습니다.
저희는 모델에서 이 두 가지 목표를 모두 포착할 수 있었습니다. Functional Data Explorer의 또 다른 장점은 예측 공식을 데이터 테이블의 열로 내보낼 수 있다는 것입니다. 그런 다음 일반 프로파일러 플랫폼을 사용하여 두 응답 간에 일부 요소를 공유하므로 두 응답을 동시에 조작할 수 있는 프로파일러를 만들 수 있습니다.
이 기능은 몇 가지 이유로 유용합니다. 첫째, 모든 것을 한눈에 볼 수 있다는 점이 좋고, 둘째, JMP Pro가 없거나 기능 데이터 탐색기에 접근 권한이 없는 고객이나 모델 사용자가 있을 수 있습니다. 이 기능을 사용하면 일반 JMP만 사용하는 사람과 모델 내용을 공유하여 그들이 직접 모델을 살펴볼 수 있도록 할 수 있습니다.
전반적으로, 기능적 실험계획법(Functional DOE)을 통해 두 가지 모델링 목표를 달성할 수 있었습니다. 복잡한 부분을 단순화하면서도, 다양한 조건에서 배치별로 변화하는 관심 영역을 포착할 수 있었습니다. 특정 요인에 따라 특정 기능을 분리할 수 있었고, 최종적으로는 고객이나 모델 사용자가 활용하기에 매우 적합한 프로파일러를 개발할 수 있었습니다.
몇 가지 제한 사항이 있습니다. JMP 컨퍼런스에서 매년 논의되는 내용일 수도 있지만, Functional DOE나 Functional Explorer에서 예측 오차를 제공하지 않는다는 점입니다. 예측 잔차를 출력하여 이를 기반으로 모델링을 시도해 보았지만, 큰 성과는 없었습니다. 앞으로 이러한 문제를 해결할 수 있는 아이디어가 있다면 언제든 환영합니다.
또 하나 좋은 점은, 어쩌면 이미 가능한 기능일 수도 있는데, 제가 방법을 찾지 못했을 뿐이라면, 특정 함수 형태를 기준으로 최적화하는 것입니다. 제 경우에는 30일째 생산량을 최대화하는 것을 기준으로 최적화를 진행했습니다. 30일째 생산량이 높다는 것은 생산량이 비교적 안정적인 상태라는 것을 의미합니다. 물론 완벽한 기준은 아니지만요. 만약 생산량이 일정하게 유지되는 이상적인 함수를 정의하고, 그 함수를 기준으로 최적화할 수 있다면 유용할 것 같습니다. 이 또한 이미 가능한 기능인데 제가 모르고 있는 것일 수도 있습니다.
또 다른 위험은, 어떤 유연한 모델링이든 간에, 노이즈가 심한 데이터에 과적합될 수 있다는 점입니다. 이번 경우에는 데이터가 비교적 매끄러웠지만, 항상 그런 것은 아닙니다. 일반적으로 과적합을 방지하기 위해 교차 검증과 같은 방법이 유용합니다. 하지만 모든 데이터를 동일한 조건에서 실행하지 않고 추가적인 변수를 도입했기 때문에, 테스트 데이터셋과 훈련 데이터셋을 정의하는 것이 조금 더 복잡해졌습니다. 앞으로 이와 관련해서 좋은 제안이 있다면 언제든 환영합니다.
하지만 전반적으로 우리는 필요한 일을 해낼 수 있었습니다. 물론 이 작업은 저 혼자 한 것이 아닙니다. 전임상 연구팀에서 많은 데이터를 제공해 주셨고, 공동 저자 중 몇몇 분들의 도움도 있었습니다. 특히 연속 처리 관련 배경 지식 습득에 많은 도움을 주셨습니다. 연구 과정에서 다른 통계학자분들의 도움도 받았습니다. 마지막으로 이분들께 감사의 말씀을 전하고 싶습니다. 참고 문헌은 여기에서 확인하실 수 있습니다. 이것으로 제 발표를 마치겠습니다.