細胞培養在生物製品的生產中扮演著至關重要的角色。在實驗設計(DOE)中引入製程變更時,由於細胞培養過程涉及多個相互依存的生長和生產階段,而製程變更可能只影響其中一部分階段,因此準確模擬細胞培養過程的行為極具挑戰性。傳統的參數化非線性模型難以有效捕捉這種複雜性,而單獨的非參數模型則可能存在脫節,且難以與DOE參數關聯。
為了解決這個問題,功能性實驗設計(DOE)將複雜性簡化為主要成分,並將變化與DOE參數關聯起來。這種方法能夠創建預測分析器,該分析器可以利用小規模數據來優化細胞培養參數,並利用這些最佳化結果預測大規模生產過程中的行為。整個過程可以在JMP Pro的功能性資料探索平台中完成,從而為優化細胞培養過程提供更有效率的方法。
今天,我將介紹一個利用功能性實驗設計(DOE)來模擬複雜非線性細胞培養過程的案例。首先,我會介紹我們試圖模擬的細胞培養過程,也就是連續生產過程。接下來,我將闡述此建模的兩個目標:一是維持穩態,二是嘗試基於小規模資料預測大規模行為。
然後我將介紹非參數樣條函數,這是我所做建模的基礎函數,並介紹函數資料瀏覽器,該平台在本例中使用樣條函數和主成分進行建模。
我將詳細介紹我針對這兩個目標所提出的兩種不同方案,以及幾種不同類型的樣條擬合方法,並探討如何將實驗設計條件納入考量。最後,我將介紹如何產生一些聯合剖面圖,並對研究結果進行總結和討論,以及我遇到的任何挑戰。
我們正在嘗試模擬的目標是連續生產。生物製劑領域的標準做法是分批生產。分批生產是指培養細胞,使其產量最大化,然後細胞會在某個階段代謝耗竭並進入死亡期。之後,你需要收集生物反應器中的所有物質,包括死亡的細胞以及目標藥物或分子,並根據需要進行後續處理。
我們正在研究的,也是業內很多人正在研究的,是與其發展、衰落、生產一次性產品,我們能否更像其他行業,比如汽車行業之類的,持續不斷地生產產品?
為了實現這個目標,我們當然希望細胞能夠生長,但同時也要讓它們保持在生長曲線的第5階段(穩定期),並防止它們進入第6階段(死亡期)。為此,我們可能需要一個較小的生物反應器,但需要不斷添加含有新鮮營養物質的培養基,同時移除等量的液體。理論上,這些液體中應該含有我們想要生產的藥物。我們的目標是保持穩定的培養基供應,並希望能夠從中滲透出我們想要生產的分子。
除了努力維持穩定的產量之外,我們的第二個目標是希望能夠根據小規模試驗的結果來預測大規模生產的情況。因為在小規模生產中,我們可以運行許多不同的反應堆,引入不同的條件,但由於物流、時間和資金的限制,我們在大規模生產中無法做到這一點。我們希望能夠預測從小規模到大規模生產的結果,也能了解增加不同的因素和條件會對大規模生產產生什麼樣的影響。
另一個有趣的地方在於生產環節,由於生產過程分為不同的階段,因此需要在不同的時間點引入不同的條件。例如,成長階段可能始終採用相同的控制條件,甚至可能與大規模生產的控制條件相同;但之後,就需要加入不同的實驗設計(DOE)因素,這些因素都與時間有關。接下來,我們將詳細介紹如何使用功能資料瀏覽器(Functional Data Explorer)來實現這一點。
首先我要介紹一下樣條函數。這是我們建模的基礎。最初,我們想嘗試一些參數化建模,這或許適用於某些階段。例如,我們或許可以用邏輯指數函數來模擬成長階段。但是,當我們加入規模效應和不同階段引入的實驗設計(DOE)時,我們發現無法完全捕捉到所有這些因素,因為有些產品可能會成長後衰落,有些產品可能會成長後保持穩定。我們找到的參數化模型無法真正捕捉到這些變化。
我們想使用更靈活的方法,這裡我們選擇了樣條函數。樣條函數的本質是在資料點之間擬合一個簡化的函數。擬合樣條函數時,需要做一些選擇。首先,你想設定多少個節點?一般來說,節點越多,模型就越能擬合數據,但這可能有利也可能有害,甚至可能導致過度擬合。其次,你還需要考慮擬合的程度。在每個節點之間,你希望得到一條直線?還是希望它有一定的曲率?還是僅僅是一個階躍函數?
然後,對於某些類型的樣條曲線(例如函數資料瀏覽器產生的 P 樣條曲線),您可以新增平滑函數。在每個節點處,您將對每條樣條曲線之間進行平滑處理,這樣,如果您使用的是線性樣條曲線,就會得到一些快速且不連續的線條。
在函數資料瀏覽器中,您有兩個樣條函數選項:B 樣條和 P 樣條。函數資料瀏覽器中還有其他選項,例如波函數,但這些選項在本例中未必適用。一般來說,我發現 P 樣條(一種更簡單的迴歸樣條)通常適用於模擬平滑函數。 P 樣條更適合處理那些雜訊較大的波動函數,因為它能平滑掉一些雜訊。這只是一個概括性的說法。當然,P 樣條也存在過擬合的情況,B 樣條也存在欠擬合的情況,但這些只是一般的經驗法則。
在這種情況下,我們使用的平台是 Functional Data Explorer。我有一些平台實際介面的圖片。通常,函數資料是指在連續域內記錄的資料。在本例中,這個連續域指的是時間,因為批次是隨時間推移產生的。它也可以用於其他用途。例如,我見過它用於光譜數據。接下來,你需要辨識一組測量值。在本例中,這些測量值指的是不同的批次,因此每個批次都會有單獨的擬合結果。
另一個我稍後會詳細介紹的亮點是,你可以添加這些補充因素。這些可以是你的實驗設計因素,也就是那些可能改變你想要捕捉的形狀的因素。稍後我會詳細講解它的工作原理。
起初,我不確定哪種樣條曲線最好,因為我沒有找到明確的標準。我最初嘗試了兩種方法進行建模。在函數式資料瀏覽器 (Functional Data Explorer) 中建模時,有許多方法可以找到最佳模型。在這個例子中,我使用了 BIC 最小化。你也可以使用交叉驗證之類的方法。由於我引入了這些補充因素,因此很難定義測試資料集和訓練資料集。所以,我們最後選擇了 BIC 最小化。
這裡展示了兩種不同樣條曲線的擬合結果。這條紅線是它們各自的平均擬合曲線。可以看出,它們非常相似,但實現方式不同。 B樣條曲線建議使用較少的節點數(本例中為13個),並且建議使用三次函數,因此會添加一些我們在這裡看到的曲率。
P樣條函數建議每天設定一個節點。總共有30天,但每天之間有29個節點。然後它在每個節點處進行平滑處理,這樣既能使用線性擬合,又能透過引入平滑處理來獲得所需的曲率。我們可以看到,它們在開始時非常相似。在最後階段可能會有一些差異,因為我們可能遺漏了一些批次的資料。
接下來,我們將逐一分析擬合結果,看看是什麼原因導致了最終結果的差異。這裡展示的是同一組批次中每個批次的實際樣條擬合結果。同樣,我們看到了與平均值函數類似的情況:初始階段和中間階段的擬合結果非常相似,但在B樣條擬合的後期,有時會出現方向的快速變化,這與實際情況不符。
通常情況下,細胞一旦死亡,並不會神奇地復活並重新生長。這似乎是由於我們並非所有批次都擁有第30天的資料所致。由於B樣條曲線使用的是三次函數,因此它預測的結果可能並不合理。而P樣條曲線使用的是平滑的線性函數,即使存在資料缺失,也能更準確地預測批次結束時的預期結果。這表明P樣條曲線可能更合適,但我仍然想同時使用這兩種方法進行驗證。
使用 Functional Data Explorer,一旦你獲得了所有批次的所有擬合結果,它就會產生一個平均值函數。這是所有批次所有擬合結果的平均值。然後它會分析並指出:“我們從哪裡獲得了偏離該均值函數的較大變異來源?”
如果你還記得前幾張投影片,我們看到了一個大扇形的展開。我再回去示範一下。我們看到這個大的扇形展開。這裡的情況比較緊湊,然後我們看到結尾處出現了這個大的扇形展開,這正是我們想要探究的。當然,觀察第一個形狀函數(它將描述70%到80%的變異性),我們看到在成長階段的初期它相當平坦,但在末期出現了這種波動,這符合我們的預期。實際上,這可能是我們試圖模擬的穩定階段。這個形狀函數似乎代表了這一點,因為它先是穩定,然後上升,這與我們觀察到的均值函數的下降趨勢相反。
我們看到它們都在形狀函數中捕捉到了這一點,但是對於 P 樣條曲線來說,它是上升的並且保持穩定,而對於 B 樣條曲線來說,它是上升的,並且在末端又出現了我們不一定想要的那個小下降。
額外的形狀函數捕捉了一些可能不太引人注目但仍然值得建模的現象。例如,生長階段和穩定階段之間的微小跳躍,以及最後的一些下降。但我們最感興趣的無疑是最初的形狀函數。
我發現形狀函數有時可能有點難以解釋,因為你需要將它們與平均值函數進行比較。函數式資料瀏覽器(Functional Date Explorer)的一個優點是,它像其他主成分分析工具一樣,提供了得分圖。它會擬合每個不同的數據批次,並根據它們在每個主成分上的得分高低給出一個分數,從而顯示哪些數據在形狀函數一上得分高,哪些得分低。
從這裡你可以看到一些例子,這些例子有助於你理解這裡發生的形狀變化。我們可以看到,這證實了初始形狀函數值較高的那批資料達到了一個良好的穩定狀態,而初始形狀函數值較低的那批資料則呈現出先上升後下降的趨勢。
出於好奇,我也看了看其他那些機器在做什麼?它們似乎更像是捕捉生長階段和穩定期之間偶爾出現的波動,因為我們改變了某種條件,這可能會導致生產過程略微不連貫,雖然問題不大,但或許我們應該盡量減少這種情況。或者,它們也可能捕捉到末期偶爾出現的產量下降,這些下降可能具有重要意義,也可能無關緊要。它們或許只是特定批次生產結束時的自然現象。
由此,我們定義了功能性主成分,並確定了形狀變化發生的位置。但接下來我們想探究,究竟是什麼因素改變了這些形狀函數?我們能否透過操控實驗條件來控制形狀的形成?這就是功能性實驗設計(DOE)的用武之地。
本質上,這是在補充的實驗設計(DOE)條件下,對每個主成分進行迴歸分析。建模方法有很多種。在這個例子中,我只用AIC最小化方法篩選出了最佳子集,因為我們只引入了三個因子。沒有必要大幅減少因子數量和降低模型複雜度。而且,篩選最佳子集的計算量也不算太大。這就是我處理所有FPC(功能主成分)時所使用的方法。我們可以看到,它輸出了一個預測表達式,這很不錯。你可以從中了解每個因子是如何影響每個形狀的。
但話說回來,這並非總是解讀數據的最佳方式。例如,我們可能會發現因子 3 的係數最大,所以因子 3 的影響可能最大。不過,JMP 中我最喜歡的功能之一就是效能分析器。它能幫助我們直觀地了解實際的運作情況,真的很有幫助。
在這種情況下,透過分析性能分析器,我以第 30 天的產量最大化作為延長穩定期的指標。這並非完美方案,但我們認為,如果產量能夠保持穩定,那麼在第 30 天時產量仍會很高。事實上,當我們進行最佳化時,我們發現最小化因子 3(這是合理的,因為它具有負係數)能夠比因子 3 非常高時獲得更穩定的產量。這對我們的客戶來說非常有幫助。它實際上為他們提供了一個切入點,幫助他們確定「在什麼條件下我們能夠獲得更穩定的產量」。
第二個問題,既然我們已經確定了穩態,那麼我們想看看能否預測大規模實驗的結果。我們用於回答這個問題的資料集包含了在對照條件下進行的大規模實驗,以及在對照條件下進行的小規模實驗,此外還包括在生長後引入不同的實驗設計條件。
我們之所以想捕捉這些現象,是因為從小規模到大規模的轉換並非完美,尤其是在生長階段。因為在大規模培養中,細胞可能有更大的生長空間,混合效果可能更好或更差,營養物質的獲取也可能更充足。我們通常觀察到,大規模培養中的細胞生長速度比小規模培養更快。我們希望能夠建構一個預測模型,預測這種生長速度的提升,並檢視能否應用美國能源部(DOE)的相關研究結果。
我不會再贅述細節,但對響應 2 也進行了非常類似的擬合。之所以再次選擇 P 樣條,是因為我們在回應 1 中使用 B 樣條時,在末端出現了那種奇怪的現象。觀察形狀函數,我們再次看到了這個形狀。這是穩態形狀。但就尺度而言,這並不是我們真正感興趣的。
因為規模效應,我們想看看它是否對這部分產生影響?我們還有一些額外的形狀函數,從中可以看出,它們似乎捕捉了生產初期階段的變化,而這正是我們所關注的。事實上,形狀函數 3 似乎是這個成長階段變化最顯著的因素。
同樣,查看剖面圖有助於證實這一點。如果我們觀察這些斜率,當 FPC3 值較高時,曲線較為平緩;而當 FPC3 值較低時,則會出現更強的峰值。
接下來我們想繼續研究DOE。我們能否將這些因素和尺度應用於這些主成分?對於第三個主成分,一個令人欣喜的發現是,唯一顯著影響它的因素是尺度,這很好,因為我們能夠將尺度對特定形狀變化的影響隔離出來。雖然尺度也影響了其他主成分,但我們確實得到了這種孤立的形狀。
再次強調,查看分析器對解讀結果最有幫助。我們看到,在第 30 天,規模的影響並不明顯,曲線相當穩定。但如果我們觀察生長階段的第 7 天,就能發現這種差異,即大規模的影響會高於小規模。看來我們確實捕捉到了規模差異。
我們成功地在模型中實現了這兩個目標。 Functional Data Explorer 的另一個優點是,您可以將預測公式匯出到資料表的列中,然後只需使用常規的分析器平台,即可建立分析器,以便同時處理兩個回應變量,因為它們之間存在一些共同的因素。
這樣做有兩個好處。首先,所有內容都集中在一起查看非常方便;其次,您的客戶或模型用戶可能沒有 JMP Pro,也無法存取功能資料瀏覽器。這樣,您就可以與可能只擁有普通 JMP 的使用者共用模型,然後他們可以在此基礎上進行操作。
總而言之,我們利用功能性實驗設計 (Functional DOE) 實現了兩個不同的建模目標。它簡化了許多複雜性,同時仍然捕捉了我們感興趣的區域,即在不同條件下批次間的變化。我們能夠針對特定因素隔離某些功能。最後,我們創建了這個性能分析器,它非常適合與客戶或模型用戶共享,因為最終用戶是他們。
存在一些限制。我想每年在 JMP 會議上都會討論到,Functional DOE 或 Functional Explorer 不提供預測誤差。我曾嘗試過,如果我們輸出預測殘差,能否透過圍繞這些殘差建立模型來大致了解情況?我在這方面取得的成果有限,但我非常樂意聽取關於未來如何實現這一目標的建議。
還有一點很不錯,也許理論上可行,但我一直沒找到方法,那就是針對特定的形狀函數進行最佳化。就我而言,我優化的目標是最大化第 30 天的產量,以此作為參考指標。如果第 30 天的產量很高,表示產量較穩定。但這並非一個完美的參考指標。如果我們能設定一個理想狀態,例如產量穩定在這個範圍內,然後針對這個理想狀態進行最佳化,那就很有用了。當然,這可能已經實現了,只是我還沒意識到。
當然,另一個風險是,任何靈活的建模方法都可能出現過擬合雜訊很大的資料的情況。這次的數據其實相當平滑,但這並非總是如此。通常,當我們想要平衡過度擬合時,交叉驗證之類的方法非常有用。但由於我沒有在相同的條件下運行所有數據,因此引入了這些額外的因素,使得定義測試數據集和訓練數據集變得更加複雜。未來,我非常樂意接受任何相關的建議。
但總的來說,我們完成了我們需要做的一切。當然,這絕非我一人之力。我們的臨床前團隊提供了大量數據。這裡也列出了一些我的合作作者的名字,他們為我們提供了許多關於連續處理的背景知識。此外,我們研究團隊的其他統計學家也提供了協助。最後,我想對他們表示感謝。這裡也列出了一些參考文獻。我的報告到此結束。