| 스피커 |
성적 증명서 |
| 안드레아 쿰스, JMP |
안녕하세요, 저는 안드레아 쿰스입니다. JMP 시스템 엔지니어입니다. 오늘은 제가 제약 업계, 특히 제약 업계에서 일했던 시절의 이야기를 들려드리겠습니다. |
| |
오늘 제가 말씀드릴 내용은 간략하게 요약해 드리겠습니다. |
| |
의미를 파악하기 위한 대처 전략 |
| |
제조업에서 실시간 생산 데이터를 활용하는 방법... 백신 제조에서 말이죠. 그리고 그 프레젠테이션에서 곡선 데이터를 처리하는 방법에 대해 논의했습니다. |
| |
우리는 제조 현장의 센서를 통해 실시간으로 정보를 수집하고 있었습니다. |
| |
오늘은 JMP에 새로 추가된 도구 중 하나인 기능적 데이터 탐색기에 대해 이야기해보고, 그것이 어떻게 모든 작업을 아주 쉽게 만들어주는지에 대해 이야기해 보겠습니다. |
| |
그리고 프로세스 이해, 프로세스 최적화, 프로세스 모니터링을 위해 기능적 데이터 탐색기를 사용하는 방법에 대해서도 설명하겠습니다. |
| |
그럼 먼저 우리가 다루고 있는 공정과 곡선에 대해 이야기해 보겠습니다. 왼쪽에 가상의 백신 제조 공정 예시가 있습니다. 재료 준비부터 시작합니다. |
| |
이 경우, 우리는 두 단계로 박테리아 발효를 진행하고, 그런 다음 제품을 여과하고 흡수하고 수확합니다. |
| |
그리고 하류에서 제품을 원심분리한 후, 마지막으로 여러 하위 로트의 재료를 하나의 로트 재료로 함께 배합합니다. |
| |
오늘은 이 과정의 발효 단계에 집중해보겠습니다. |
| |
박테리아가 발효되는 동안 성장을 거치는데, 성장 곡선은 오른쪽 그림과 같습니다. 성장 과정에는 지연기, 기하급수적 성장기, 정체기, 그리고 마지막으로 대수적 사멸기가 있습니다. |
| |
그리고 제가 이 회사에 있는 동안, 우리는 프로세스에 대한 이해, 특히 이러한 성장 곡선을 중심으로 프로세스의 진화를 겪고 있었습니다. |
| |
그래서 저희는 일찍부터 두 발효 단계에서 샘플 다섯 개를 채취해서 QC 실험실로 보내고 결과를 기다리는 것으로 시작했습니다. 그리고 |
| |
광학 밀도를 통해 우리는 샘플 내 세포의 밀도를 알 수 있었고, 우리가 얻은 결과는 여기 오른쪽에서 볼 수 있는 것과 비슷했습니다. |
| |
특정 시점의 결과 분포는 있었지만, 성장 곡선이 어떤 모양인지는 정확히 알 수 없었습니다. 제가 아래에 그렸던 분포 곡선 중 어떤 곡선이든 비슷했을 겁니다. 정말 아무것도 몰랐습니다. |
| |
그런데 인라인 프로브를 구현해서 탁도 프로브를 구현해서 실제로 성장 곡선이 어떻게 보이는지 볼 수 있게 됐죠. 그런데 옷을 차려입고 제조 공장으로 들어가야 했어요. |
| |
데이터를 수동으로 다운로드해서 우리 책상으로 가져온 다음, 이 모든 데이터를 어떻게 사용할지 알아내려고 노력했습니다. |
| |
그리고 마지막으로 우리는 PLC를 업그레이드하여 이제 책상에서 모든 센서의 모든 데이터를 볼 수 있게 되었고, 옷을 입고 다시 제조 현장으로 돌아갈 필요가 없었습니다. |
| |
손끝에서 바로 사용할 수 있어서 정말 좋았습니다. 하지만 면밀한 분석을 통해 데이터가 너무 많고, 처리해야 할 데이터도 많다는 것을 알게 되었습니다. |
| |
그래서... |
| |
그래서 저는 실시간 데이터를 이해하기 위한 대처 전략에 대한 프레젠테이션을 하게 되었습니다. |
| |
저희는 데이터를 이해하기 위해 많은 노력을 기울였고, 여러분께서 실시간 데이터를 이해하기 위해 취할 수 있는 몇 가지 전략을 공유하고 싶었습니다. |
| |
제가 가장 먼저 이야기한 것은 성장 곡선을 매개변수화하는 것이었습니다. 그래서 우리는 이러한 곡선을 가지고 있었지만, 성장과 |
| |
무슨 일이 일어나고 있는지 이해하기 위해 매개변수화했습니다. 다시 말해, 성장 기울기, 사망률 기울기, 그리고 박테리아가 각 단계에 머무르는 시간을 살펴보았습니다. |
| |
특정 시간대의 탁도, 그리고 이제 우리는 이러한 성장에 대한 큰 컬렉션을 가지게 되었고...우리는 이것을 성장 변수라고 불렀습니다. |
| |
이러한 성장 변수들은 저희에게 매우 유용했습니다. 프로세스 이해, 프로세스 최적화, 그리고 프로세스 모니터링에 활용했죠. |
| |
이제 내가 언급한 대처 전략의 두 번째 그룹은 이 모든 실시간 데이터를 처리하는 것이었습니다. |
| |
우리가 가지고 있었던 것이죠. 그래서 당연히 이 모든 데이터가 유용하다는 것을 알게 되자, 바로 접근하고 싶었습니다. |
| |
따라서 우리가 가장 먼저 파악해야 할 것은 모든 데이터 소스를 파악하고 역사가의 데이터뿐만 아니라 우리가 보유한 모든 것에 액세스할 수 있는지 확인하는 것이었습니다. |
| |
ERP 시스템과 실험실 정보 관리 시스템을 모두 통합해야 했습니다. 모든 데이터를 한 곳으로 모아야 했죠. 슈퍼 저널을 사용했는데, 이 시스템이 모든 데이터에 접근하고 모든 스크립트를 실행하는 중앙 통제실과 같은 역할을 합니다. |
| |
정말 많은 노력을 기울인 결과였습니다. 우리는 스스로를 꽤 자랑스러워했지만, 돌이켜보면 |
| |
JMP에 어떤 도구가 있는지, 특히 JMP 16에서는 이 작업을 훨씬 더 쉽게 만들어 줄 수 있는 몇 가지 방법이 있습니다. |
| |
성장 곡선을 활용하면 함수형 데이터 탐색기를 사용하여 곡선을 분석할 수 있었을 것입니다. 곡선을 매개변수화할 필요가 없었을 것입니다. |
| |
많은 데이터를 남겨두고 있었던 거죠. 기능 데이터 탐색기에서 모든 데이터를 사용할 수 있습니다. 그리고 물론, 향상된 로그에서 액션을 기록할 수도 있고요. |
| |
그랬다면 스크립팅 작업이 훨씬 수월해졌을 텐데요. 하지만 오늘은 함수형 데이터 탐색기를 어떻게 사용했을지에 대해서만 이야기해 보겠습니다. |
| |
물론, 더 이상 그 데이터에 접근할 수 없어서 몇 가지 성장 곡선을 시뮬레이션해 봤습니다. 여기 20개의 서로 다른 곡선이 있는데, 이는 박테리아 발효 과정에서 볼 수 있는 몇 가지 변동성을 나타냅니다. |
| |
함수형 데이터 탐색기를 사용하면 실제로 다음 네 단계로 요약됩니다. 첫 번째 단계는 곡선 모음을 가져오는 것입니다. |
| |
그리고 모든 개별 곡선을 매끄럽게 만들 것입니다. 두 번째 단계는 이러한 곡선에서 볼 수 있는 모든 변동성을 설명하는 평균 모양과 모양 구성 요소를 결정하는 것입니다. |
| |
다음 단계는 각 곡선의 모양 구성요소의 크기를 추출하는 것입니다. |
| |
그리고 이 두 가지 모양 구성 요소가 있으면 실제로 이를 기능적 주성분이라고 합니다. |
| |
그런 다음 곡선이 모델의 입력이 되든, 모델의 출력이 되든, 클러스터링 분석을 수행하든, 원하는 대로 데이터를 분석할 수 있습니다. |
| |
실제로, 이 기능적 주성분을 사용하면 어떤 종류의 분석이든 수행할 수 있습니다. 오늘 예시에서는 모든 곡선이 모델의 출력이므로 기능적 실험계획법(DOE)을 사용할 것입니다. |
| |
이 곡선들을 자세히 살펴보겠습니다. JMP를 사용해 볼까요? |
| |
여기에 배치 번호와 탁도 시간이 있는 데이터 테이블이 있는데, 이것들이 곡선을 구성합니다. |
| |
그리고 저는 여러 가지 프로세스 매개변수도 가지고 있습니다. 가장 먼저 하고 싶은 것은 프로세스를 이해하여 이러한 프로세스 매개변수 중 어떤 것이 |
| |
곡선에서 보이는 변동성에 영향을 미치고 있습니다. 함수형 데이터 탐색기로 들어가 보겠습니다. X축에 시간을, Y축에 탁도를 입력합니다. ID 함수를 입력한 다음, 이 모든 공정 매개변수를 보조 변수로 입력합니다. |
| |
이제 우리가 해야 할 첫 번째 단계는 유연한 모델을 모든 곡선에 맞춰야 하는데, 이를 위해 방향성...직접 기능적 PCA를 사용할 것입니다. |
| |
유연한 모델이 여기 있습니다. 두 번째 단계는 JMP가 이미 저를 위해 수행한 것으로, 평균 곡선을 결정하는 것입니다. |
| |
그리고 모양 구성 요소입니다. JMP는 여섯 가지 모양 구성 요소를 식별해 주었습니다. 여기 왼쪽에 여섯 가지 모양 구성 요소가 보입니다. |
| |
그리고 여기 내 데이터에서 모양 구성 요소가 설명하는 변동성의 누적량이 있습니다. |
| |
보시다시피, 처음 두 개의 모양 구성 요소만으로도 곡선의 변동성의 92%를 설명하고 있는데, 이는 매우 훌륭합니다. |
| |
그리고 여기 남은 모양 구성 요소는 제외하겠습니다. 아마 제 데이터의 무작위 변동성을 설명하는 것일 테니까요. FPC 개수를 두 개로 줄여 보겠습니다. 그러면 이 두 개의 모양 구성 요소만 남게 됩니다. |
| |
다음 단계는 각 곡선에 대한 각 모양 구성 요소의 크기를 결정하는 것입니다. 저는 이를 점수 플롯에 표시했습니다. |
| |
X축에는 Shape Component 1이 있고, Y축에는 Shape Component 2가 있습니다. |
| |
아래에는 곡선을 살펴볼 수 있는 프로파일러가 있습니다. 여기서 노란색으로 강조 표시한 곡선을 보면 첫 번째 모양 구성 요소가 곡선 모양에 어떤 영향을 미치는지 확인할 수 있습니다. |
| |
주로 곡선의 성장 단계에 영향을 미치고, 두 번째 모양 구성 요소는 주로 곡선의 사망 단계에 영향을 미칩니다. |
| |
이 배치 몇 개를 자세히 살펴보겠습니다. 배치 15를 살펴보겠습니다. 배치 15의 곡선은 다음과 같습니다. 여기서 Shape Component 1의 크기와 Shape Component 2의 크기를 확인할 수 있습니다. 이 값들을 프로파일러에 바로 입력할 수 있습니다. |
| |
이제 배치 15의 곡선을 재현할 수 있음을 알 수 있습니다. 하나 더 살펴보겠습니다. 이 배치 2를 살펴보면 배치 15와 비교해 매우 달라 보이고, 모양도... 모양 구성 요소의 크기도 매우 다릅니다. 자, 그럼 |
| |
저것들을 보세요. |
| |
그리고 이제 우리는 그 곡선을 복제할 수 있게 됐습니다. |
| |
따라서 곡선 주변의 변동성을 나타내는 두 가지 모양의 구성 요소인 평균 모양을 알고 있으면 이제 이러한 모양 구성 요소의 크기를 사용하여 분석을 수행할 수 있습니다. |
| |
그리고 곡선이 모델의 응답인 경우 기능적 데이터 탐색기에서 바로 해당 분석을 수행할 수 있습니다. |
| |
여기 아래에 새로운 프로파일러가 있습니다. 그리고 이번에는 제 프로파일러에... 다시 곡선이 있는데, 노란색으로 다시 강조해 볼게요. |
| |
그리고 pH, 온도, 압력, 그리고 혼합 속도 매개변수가 있습니다. 혼합 속도는 여기 보시다시피 꽤 일정해서 모양에 영향을 주지 않습니다. |
| |
압력도 마찬가지지만, 온도를 살펴보면 곡선 모양이 변하는 것을 볼 수 있습니다. 주로 성장 단계죠. 그리고 pH를 바꾸면 곡선의 성장 단계에 주로 영향을 미칩니다. |
| |
그래서 저는 프로세스 이해를 위해 이런 접근법을 취할 겁니다. 그렇다면 프로세스 최적화는 어떨까요? 프로세스 최적화란, |
| |
아시다시피, 표준화하고 싶은 특정 곡선이 있다면, 그 원하는 곡선을 얻기 위해 필요한 pH와 온도는 무엇일까요? 가장 먼저 해야 할 일은 그 곡선이 무엇인지 정의하는 것입니다. |
| |
원하는 곡선은 이렇게 생겼습니다. 그리고 여기 데이터 테이블 하단에 제가 찾고 있는 모양을 설명하는 몇 개의 데이터 포인트가 있는데, 여기... |
| |
그래프 빌더에서요. 이 경우에는 정말 빠른 성장률과 정말 느린 하락률을 보이는 곡선을 얻고 싶습니다. |
| |
이건 함수형 데이터 탐색기에 정말 쉽게 추가할 수 있어요. 한 단계만 더 추가하면 되는데, 전에 했던 걸 다시 떠올려 볼게요. |
| |
그리고 추가 단계는 해당 대상 함수를 로드하고 식별하는 것입니다. |
| |
함수는 우리의 목표를 나타냅니다. 그리고 지금 제가 하는 일은 이전에 했던 것을 그대로 재현하는 것입니다. 직접 함수형 PCA를 수행하겠습니다. |
| |
FPC를 2개로 사용자 지정하려고 합니다. 결과는 이전에 보고 있던 것과 정확히 같습니다. 그런 다음 기능적 DOE를 수행하려고 합니다. |
| |
그리고 다시 한번, 제 곡선을 강조해 보겠습니다. 이제 목표 곡선이 정해졌으니, 바람직성을 극대화할 수 있습니다. 다시 말해, pH와 온도의 설정점을 찾을 수 있습니다. |
| |
그리고 압력과 혼합 속도가 목표 곡선과 가장 유사한 곡선을 만들어낼 것입니다. 그래서 |
| |
정말 빠른 성장률과 느린 추락률. 그리고 저는 단지 |
| |
pH 7.2의 배지로 시작하고 발효조의 온도는 37.9도였습니다. 공정 이해와 최적화를 위해 이 방법을 사용했을 겁니다. |
| |
성장 곡선이나 곡선 모양의 프로세스 모니터링에 대해 이야기할 때, 여러 가지 옵션이 있는데, 저는 여기에 몇 가지 다른 생각을 가지고 있습니다. |
| |
여러분이 이런 것에 관심이 있다면, 함수적 형태를 가진 공정 변수에 대한 통계적 공정 관리라는 2020년 프레젠테이션을 꼭 확인해 보시기를 권합니다. |
| |
녹화된 프레젠테이션인데 정말 훌륭했습니다. 기능적 주성분을 모델 기반 다변량 관리도에 적용하는 방법에 대해 이야기했습니다. |
| |
그들은 그것에 대한 훌륭한 시연을 보여주었고, 또한 그 접근 방식을 취하는 데 있어서 몇 가지 단점에 대해서도 이야기했습니다. |
| |
그래서 여러분이 고려하고 싶어할 만한 또 다른 접근 방식, 즉 표준과의 통합적 차이점을 살펴보는 것에 대해 논의하고 싶습니다. |
| |
이전과 마찬가지로, 목표 곡선을 살펴볼 때, 그 목표 곡선을 기준으로 삼아 각 배치에 대해 그 기준과의 차이를 계산할 수 있습니다. 예를 들어, 다음과 같습니다. |
| |
여기 파란색... 아니, 빨간색으로 표시된 한 배치의 곡선입니다. 파란색은 표준 곡선이고, 저는 그 차이를 구했는데, 여기 그 차이가 아래 녹색 곡선에 있습니다. |
| |
그리고 그 곡선을 적분해서 곡선 아래의 면적을 구하면 되는데, 그러면 통계적 공정 관리 프로그램에서 사용할 수 있습니다. 그 방법을 단계별로 간략하게 설명해 드리겠습니다. |
| |
제 시간과 표준 탁도 값, 첫 번째 배치의 탁도 값을 알려드리겠습니다. 그리고 방금 두 값의 차이를 계산했습니다. 그리고 여러분이 할 수 있는 일은 다음과 같습니다. |
| |
시간에 따른 차이에 대한 스플라인 모델을 구축하기 위해 X로 Y 맞춤을 사용한 다음, 해당 모델의 계수를 데이터 테이블에 저장할 수 있습니다. |
| |
그러면 스플라인 모델을 만드는 데 사용할 수 있는 X 값과 네 개의 계수가 나옵니다. 스플라인 모델을 만드는 공식은 다음과 같습니다. |
| |
그리고 이 공식을 적분합니다. 스크립팅을 통해서도 할 수 있는데, 저는 수식 편집기를 사용하기로 했습니다. 그래서 이전 공식을 직접 적분해서 곡선의 각 조각에 대한 면적을 계산했습니다. |
| |
따라서 이러한 영역 슬라이스가 있으면 관심 있는 영역만 더하면 됩니다. 그러면 전체 곡선에 대한 면적을 구할 수 있습니다. |
| |
성장 단계와 사망 단계에 대해서만 할 수도 있고, 여기 위에서도 그렇게 했습니다. |
| |
제 테이블 변수에 있습니다. 이제 전체 적분 차이, 성장기 적분 차이, 그리고 사망기 적분 차이에 대한 변수가 생겼습니다. |
| |
기본적으로 각 배치에 대해 이 작업을 수행하면 됩니다. 여기서는 20개 배치 모두에 대해 이 작업을 수행했고, 이제 해당 변수에 대한 통계적 공정 관리를 수행할 수 있습니다. |
| |
기능적 데이터 탐색기를 활용하여 프로세스 모니터링, 프로세스 이해 및 프로세스 최적화를 살펴보는 데 제가 사용했던 접근 방식은 다음과 같습니다. 한번 살펴보시면 좋을 것 같습니다. 어렵지 않으실 겁니다. 감사합니다. |