| スピーカー |
トランスクリプト |
| クリステル・クロニグ |
皆さん、こんにちは。この講演にご参加いただきありがとうございます。私はクリステル・クロニグです。英国ケンブリッジにあるレディーズ・カレッジの科学者です。 |
| |
このプロジェクトのデータ分析に協力してくれました。この研究にも参加した同僚のアンドレア・セクロヴィッチは、オランダのドクター・レディーズに勤務する製剤科学者です。 |
| |
そこで今日は、イノベーターの医薬品品質特性に一致するように粉砕プロセスを最適化することについてお話しします。 |
| |
プレゼンテーションの最初の部分では、プロセス開発、プロジェクトの目的、研究の内容についてお話しします。 |
| |
次に、検討したモデリング オプションについて説明します。2 番目の部分では、この研究のために JMP で開発したワークフローについて説明します。 |
| |
さて、この研究の目的は、製粉工程におけるプロセスパラメータと |
| |
そして、私たちが製造している医薬品の品質特性、つまりそれに対する反応です。そこで、スケールアップに使用できる予測モデルを取得し、このプロセスに必要な条件を最適化したいと考えました。 |
| |
したがって、研究の一環として調べる必要のある応答がいくつかあり、それらは粒子サイズの属性です。 |
| |
そこで、私たちはミクロンとスパンに注目し、イノベーター製品を研究することで、仕様範囲内にあり、イノベーター製品に類似した製品を確実に製造するために必要な範囲を把握しました。 |
| |
したがって、応答のプロファイルは、粉砕時間と粉砕プロセスのパラメータに基づいて変化し、これらのパラメータを最適化するために必要な最適条件を見つけて、仕様要件を満たす設計範囲内の製品を確実に得ることができます。 |
| |
粉砕速度、フロー、サイズ、また、ローディングパラメータ、賦形剤の割合、API 濃度、そしてもちろん粉砕時間も考慮しました。 |
| |
それで、プロセス開発は... |
| |
私たちは最初のバッチを作ることから始めました。実験計画法を直接始めたわけではありません。 |
| |
最初の数回のバッチで収集する必要のあるデータを確認し、モデリングのオプションを検討しました。そしてチームは |
| |
オランダではI最適設計を行うことを決定し、3つのパラメータと時間を検討し、いくつかの初期モデリングを実行しました。 |
| |
最初のデータセットの後、さらに3つのパラメータを追加することにしました。この設計を文書化し、10の実験を追加しました。こうして完成したデータセットは |
| |
最適化のために検討したバッチは38個あり、6つのパラメータと時間を含んでいました。これを本研究の最適化に使用しました。その後、確認バッチをいくつか作成し、 |
| |
新しい設定により、要件を満たす製品が生成されます。 |
| |
さて、どのようなモデリングオプションを検討しましたか |
| |
このプロジェクトでは?チームのデフォルトのオプションは、選択した時点での応答をモデル化することでした。 |
| |
標準ソフトウェアでは簡単に実行できますが、もちろん欠点は結果を予測できないことです。 |
| |
他の時点では最適値は変化せず、最適な値は特定の時点の間にある可能性があります。したがって、時間経過に伴うプロファイルのモデリングにより、プロセスパラメータが時間経過に伴う応答プロファイルにどのように影響するかをより深く理解できるようになります。 |
| |
そうすれば、最適な結果に到達する可能性が高くなります。ただし、そのためには当然、より高度なモデリング機能が必要になります。 |
| |
そこで、JMP で利用できる最初の適合曲線を調べました。 |
| |
そして、私たちの最初のデータセットでは、これは非常にうまく機能しています。これは関数の1つで、このBiexponential 4です。 |
| |
私たちが使用したものは、いくつかの応答をモデル化したときに最初に作成したバッチのほとんどに適合しているように見え、このタイプの曲線がデータにどのように適合しているかを示す例が右側にあります。 |
| |
私たちが遭遇した問題の一つは、すべてのバッチでうまく機能しなかったことです。例えば、いくつかのケースでは時間点が足りませんでした。左側には時間点が足りません。 |
| |
モデルに適合させるには…例えば、この特定のモデルでは最低5つの時点が必要です。右側には、十分な時点数があるものの、この特定のタイプの曲線はこの特定のモデルにはあまり適合しない例が1つあります。 |
| |
したがって、私たちが持っていた大規模なデータセットにこれを使用するのは困難であり、そのため、私たちはそのアプローチを継続しませんでした。 |
| |
また、Functional Data Explorer も調べました。 |
| |
ここで、10 個の異なるバッチのこのプラットフォームを見ると、左側にプロファイルがどのように適合されたかがわかります... |
| |
時間の経過に伴うプロファイルなので、ここでデータ ポイントが不足する問題はありませんでした。 |
| |
これにより、バッチ間の違いがよくわかるようになりました。例えば、 |
| |
右側のグラフの緑色の部分では、高速バッチがこの空間の部分に表示され、低速バッチが別の空間に表示され、その違いが強調されています。 |
| |
これらのプロファイル間の違いは、左側のグラフを見るとそれほど明らかではないかもしれません。 |
| |
機能データエクスプローラーで得られるものは |
| |
これは、プロファイルを時間経過とともに様々な主成分に分解します。ここで表示されるFPC値は、 |
| |
これがワークフローの次の部分で使うものになります。これはJMP Proで利用できます。言い忘れていましたが。まず、JMPでどのように見えるかをお見せする前に、 |
| |
ワークフローがどのようなものか、何をしようとしているのか。まずは…申し訳ありませんが… |
| |
重要な品質特性、応答を含むタイムテーブル、時間ポイントがあり、それぞれの時間ポイントで、 |
| |
はい、重要な品質特性と、バッチ生成に使用するプロセスパラメータも含まれます。 |
| |
次にそのデータを取得し、FDE を使用してモデルを作成します。これにより、CQA や応答を時間の関数と機能主成分 FBC として表現できるようになります。 |
| |
出力は要約表になります。各バッチについてCPPとFPC(機能主成分)があり、標準的なモデリングを適用できます。 |
| |
次に、予測モデルを使用して、それらの FPC をプロセス パラメータの関数として表現します。 |
| |
そして最後のステップは、そのモデルを元のテーブルにインポートし直すことです。すると、応答を時間とプロセスパラメータの関数として表現できるようになります。 |
| |
これにより、最適な条件を見つけ、それらのモデルを使用して確認バッチを作成できるようになります。 |
| |
私が言いたいのは、モデリングではJMPでこれをお見せしますが、計画された実験にはこのモデル検証戦略を使用します。これは私が提示されたものの1つです。 |
| |
3年前のディスカバリーサミットでのことです。詳細は省きますが、もし調べたい方は参考までにご覧ください。 |
| |
それでは、JMPでこのワークフローがどのように見えるかを説明します。JMPに切り替えますので、 |
| |
JMPジャーナル。 |
| |
わかりました。これをここに移動します。 |
| |
さて、まずは |
| |
元のデータテーブルには、作成されたバッチの数、つまり38バッチがあります。各バッチには |
| |
複数の時点があります。例えば、ここにある最初のバッチには10個の異なる時点があります。6つの列はプロセスパラメータです。 |
| |
そして、それぞれに2つの回答があります |
| |
データポイントです。まずはデータテーブルを見て、データセットがどのように見えるかを見てみましょう。グラフビルダーを使ったスクリプトを用意しました。これを使うと、データポイントの概要をすぐに確認できます。 |
| |
データがどのようなものか。例えば、次のような回答があります |
| |
一番下には粉砕時間が表示されており、バッチに応じてプロファイルがかなり異なっていることがすぐにわかります。一部のプロファイルは他のプロファイルよりも急勾配で、一部のプロファイルは非常に浅く、また一部のプロファイルはより長い期間またはより短い期間にわたって収集されています。 |
| |
それでは、プロファイルをもう少し詳しく見て、2つのモデリングアプローチを見てみましょう。 |
| |
前のスライドで説明しました。 |
| |
最初の方法は、適合曲線を使用することです。これは、分析プラットフォームの特殊モデリングの下にあります。 |
| |
そこで、フィット曲線を選択した場合。 |
| |
X印とレスポンスの1つで粉砕時間を選択し、バッチを選択します。各バッチに対して同じ操作を行います。「OK」をクリックします。すると、バッチごとにプロファイル、つまり経時的なレスポンスが表示されます。 |
| |
そして私は |
| |
JMPにすでに保存されているモデルの1つを使用します。これは双指数関数の4Pです。 |
| |
以前お話ししたので、違いについてはここでは説明しません。ご存知の通り、様々なモデルがありますが、これは以前データに適用したモデルの一つです。例えば、このバッチではうまく適合しますが、一部のデータポイントでは必ずしも完璧ではありません。 |
| |
この場合、時間ポイントが足りないので、 |
| |
実際には使えないのですが、いくつかのバッチでは |
| |
たとえば、これは非常によく当てはまり、4 つの係数推定値が得られ、統計的に有意でした。 |
| |
そのため、すべてのデータをエクスポートし、Functional Data Explorer の場合と同じ方法で概要テーブルを取得することになりますが、このデモでは適合曲線の使用はこれ以上行いませんが、同じアプローチを使用できます。 |
| |
それでは、関数データ エクスプローラーに進みましょう。これも JMP Pro の特殊なモデリングにあります。 |
| |
そして、応答とミリング時間、そして ID としてバッチ番号を選択します。 |
| |
ですので、時間の都合上、これ以上詳しく説明することはしません。 |
| |
このタイプのデータにはどのようなモデリングを使用すればよいでしょうか。私のデータセットではBスプラインが非常にうまく機能することが分かっているので、これを使用します。 |
| |
ご覧のとおり、JMP はデータ テーブルにあるバッチごとにモデルを適合させており、非常によく適合しているようです。 |
| |
さらに下を見ると、プロファイルがさまざまなコンポーネントに分割されていることがわかります。 |
| |
グラフを見ると、バッチが規格内であることがわかります。この特定の応答、FPC1では、上部のFPC1がデータの変動の96%を説明しています。これはかなり良い結果なので、この場合は |
| |
FPC2とFPC3を見てください。今回の場合、おそらく最初の1つだけを保持すれば十分でしょう。例えば、このデータセットにある他の回答ではそうではありませんが、ここではFPCの数を1つに制限します。 |
| |
そして私は |
| |
要約データをエクスポートして要約の保存をクリックすると、新しいテーブルが表示されます |
| |
JMPでは、38行あります。ご覧のとおり、バッチごとに1行あり、バッチ番号、FPC値、そして予測式が表示されています。 |
| |
それで、この表を閉じて、先ほど用意した表を使います。 |
| |
データ セットで確認したいすべての応答に対して FPC を使用します。 |
| |
それをやって、ジャーナルに戻ります。さて、ステップ2です。準備した要約表と、FPCの各回答の列があります。 |
| |
まず最初にこれを使います |
| |
検証 |
| |
DOEの手法では、検証レポートで使用する追加の行を作成します。この手法についてさらに詳しく知りたい場合は、スライドに参考資料を示しましたので、そちらをご覧ください。それでは、 |
| |
私の FPC の 1 つにモデルを適合させます。 |
| |
いくつかのプロセスパラメータの関数として調べたいと思います。 |
| |
そして実行をクリックします。 |
| |
停止ルールとしてAICcの最小値を使用します。「Go」をクリックします。 |
| |
JMPはいくつかの工程パラメータと、重要だと判断した交互作用を発見しました。R2乗とR2調整値が表示されています。 |
| |
良さそうです。さらに、これらの追加R2乗検証を加えることで、例えばモデルが過剰適合していないことや、良さそうに見えることも分かります。それでは「モデルを作成」をクリックします。 |
| |
そして |
| |
それから |
| |
粉砕速度とサイズが重要であり、相互作用項のいくつかも重要であることがわかるモデルがあるので、次に行う必要があるのは予測式を保存することです。 |
| |
また、後で再度実行したい場合に備えてスクリプトを保存し、データ テーブルに保存することもできます。 |
| |
それで、このウィンドウを閉じます。データテーブルにある各FPC値に対して、モデルをフィッティングするこの演習を行う必要があります。 |
| |
最後に、予測式を使用する必要があります。これは、FPC1 用に保存した式です。 |
| |
これは先ほどFDEから得た予測式です。右クリックすると、このように表示されます。各バッチのFPC1があります。 |
| |
そして、時間の関数である追加の列があります。ここで必要なのは、実際の値であるFPC1の代わりに、予測式を使うことです。 |
| |
これはプロセスパラメータの関数です。これを数式に置き換えてください。「適用」をクリックします。 |
| |
繰り返しになりますが、生成したモデルすべてに対してこれを実行し、それらをデータ テーブルに保存する必要があります。 |
| |
それではこれを閉じて、ジャーナルの次のステップに進みます。 |
| |
では、保存した数式を元のテーブルにインポートし直して、時間とプロセスパラメータの関数として応答がどのように変化するかを確認しましょう。時間データテーブルを開き、モデルのサマリーテーブルを開きます。 |
| |
そこで、モデルのある列を選択して、それらの列をコピーします |
| |
今では紛失してしまったオリジナルのテーブルです。 |
| |
できました。では、「列を貼り付け」をクリックします。 |
| |
そして、数式がコピーされたかどうかをもう一度確認したいと思います。 |
| |
例えば、そこに行けば、確かに数式がコピーされています。つまり、今私が持っているのは |
| |
時間とプロセスパラメータの関数として応答を予測するモデルです。ここでもこれを保存せず、最終的なテーブルを使用します。このテーブルには、最適化に必要なすべてのモデルが含まれています。 |
| |
これが最後のステップです。 |
| |
これで、プロセスパラメータ、粉砕時間、2つのレスポンス、そしてサマリーテーブルから取得した予測式が再び表示されます。これら2つの列をプロファイラーで使用します。 |
| |
また、因子グレードも確認する必要があります。チームは、API濃度、賦形剤、サイズを特定の設定にし、最適な条件を見つけたいと考えていました。これらの設定をロックする場合は、「OK」をクリックしてください。 |
| |
そして、望ましさ関数を使用して仕様限界を設定できます。これはすでに実行しました。 |
| |
そして望ましさを最大化すると、 |
| |
JMPを使って、私たちが求めていた要件を満たす製品を提供するための最適な条件を見つけ出しました。これが私たちが使用した手法です。 |
| |
では、JMP を終了してスライドに戻り、このワークフローの結果がどうなったかを見てみましょう。 |
| |
では、画面に戻ります。オランダのチームが作った38バッチのうち、1つの時点だけだったのは4バッチだけでした。 |
| |
少なくとも1つの時点では、両方の結果が設定された範囲内にありました。しかし、右側の表を見ると、スパン応答については、4つのケースすべてにおいて、これが設定された範囲内に非常に近いことがわかります。 |
| |
上限仕様限界があり、チームは、特定の応答が範囲内に収まる製品を生成する条件を見つけることに非常に興味を持っていました。 |
| |
他の応答も目標範囲内に維持します。 |
| |
はい、素晴らしい結果が出ました。選択された条件のモデルは1.63のスパンを予測しました。このバッチの実際の結果は1.78で、これが最低でした。 |
| |
全てのバッチで達成されたスパンです。チームはこの結果に非常に満足しています。モデルがわずかに過小評価されていたにもかかわらず、それでもかなり良い結果でした。画面では、 |
| |
このバッチは緑色で表示され、他のすべてのバッチよりも完全に左側にあります。 |
| |
これが、私たちが良い結果を達成できた理由です。少し異なるパラメータの組み合わせを使用することで、この結果が得られたのだと思います。 |
| |
結論としては、JMP Proの関数データエクスプローラーはこのアプリケーションで非常にうまく機能しました。優れた予測モデルと、これまでで最高の結果が得られました。 |
| |
当初は有望だったにもかかわらず、フィットカーブアプローチをうまく活用できなかった。 |
| |
研究開始時に見ていた結果であり、データセット全体には適用できませんでしたが、 |
| |
それでも、チームは経時的なプロファイルを見ることの価値と、このアプローチの価値を確信していました。もちろん、これは他の種類のデータ、例えば製剤、in vitro放出、あるいはAPI開発の反応変換などにも適用できます。 |
| |
これでプレゼンテーションは終了です。たくさんのバッチの製粉に携わったオランダの同僚たちに感謝します。 |
| |
このプレゼンテーションの共著者であるアンドレアには、素晴らしいチームワークをありがとう。双方の良好なコミュニケーションのおかげで、素晴らしい成果につながりました。ご清聴ありがとうございました。プレゼンテーションを楽しんでいただけたなら幸いです。そして、ディスカバリーの残りの部分もお楽しみください。 |