데이터 · 2024

용출시험 데이터 처리·동등성 평가 프로그램

HPLC 분석 결과에서 용출율을 계산하고, 결과를 서버에 쌓아 두고 비교하는 데스크톱 앱

분석 장비가 내놓은 엑셀에서 시점별 용출율을 계산하고, 시험 조건과 함께 서버에 저장해 두었다가 여러 시험의 용출곡선을 겹쳐 비교하고 f2 유사성 인자로 동등성을 판정하는 Windows 프로그램입니다.

고객
비공개 고객
분야
데이터
분석 장비의 엑셀을 읽어 시점별 용출율을 계산한 Processing 탭 화면

개요

용출시험은 정제나 캡슐이 정해진 용출액 안에서 시간에 따라 얼마나 녹아 나오는지를 보는 시험입니다. 시험조마다 정해진 시점에 용출액을 조금씩 덜어내 HPLC나 UPLC로 분석하면, 성분별 피크 면적이 담긴 엑셀 파일이 나옵니다. 이 면적을 용출율(%)로 바꾸고, 시료들끼리 비교하고, 그 결과를 남기는 것이 이 프로그램이 하는 일입니다.

장비가 내놓은 엑셀을 읽어 시점별 용출율을 계산하고, 계산에 쓴 시험 조건과 함께 사내 MySQL 서버에 저장합니다. 저장된 결과는 언제든 다시 불러와 용출곡선을 겹쳐 보고, 대조약과 시험약의 동등성을 판정하고, 시험성적서 양식의 엑셀로 내려받을 수 있습니다.

분석 장비의 엑셀을 읽어 용출율을 계산한 Processing 탭 화면
Processing 탭

시스템 구조

  • UI: wxPython. Processing(계산), Browsing(조회·비교), 설명 세 개의 탭으로 나뉩니다.
  • 계산: pandas DataFrame 위에서 compound → sample → 시험조 → 시점 순으로 접으며 계산합니다. 검량선은 SciPy의 linregress로 구합니다.
  • 그래프: matplotlib 캔버스를 wx 패널에 올리고 네비게이션 바를 붙여 확대와 이미지 저장을 그대로 씁니다.
  • 저장: MySQL. 프로젝트와 메소드를 담는 테이블, 계산 결과의 조건·값·검량선을 담는 테이블로 나뉘며, 결과를 지우면 딸린 값들도 함께 지워집니다.
  • 접속 정보: 서버 주소와 계정은 Fernet으로 암호화해 파일에 보관합니다. 파일이 없거나 접속에 실패하면 접속 정보 입력 창이 먼저 뜹니다.
  • 보고서: openpyxl로 시험성적서 양식을 셀 단위로 그리고, 그 안에 용출곡선 이미지와 동등성 판정 흐름도를 끼워 넣습니다.

데이터 흐름

  • 분석 장비의 엑셀을 읽어 포맷을 가려내고, compound별 표준액과 시료로 나눕니다.
  • 메소드에 등록된 시험 조건과 입력받은 유효성분 함량을 가져옵니다.
  • 표준액에서 농도 환산 계수를 구합니다. 한 점이면 평균 농도와 평균 면적의 비로, 검량선이면 기울기와 절편으로 구합니다.
  • 시점 순서대로 보정 전 용출율을 구하고, 앞 시점의 값에서 나온 샘플링 보정값을 누적해 더해 보정 후 용출율을 구합니다.
  • 결과를 조건·값·검량선으로 나누어 서버에 저장합니다.
  • 저장된 결과를 불러와 그래프, 통계, 동등성 판정, 엑셀 보고서로 씁니다.

결과

시험 조건이 메소드로 등록되고 계산 결과와 함께 저장되므로, 결과 데이터만 열어도 어떤 부피와 희석 배수, 어떤 표준액 방식으로 뽑은 값인지 확인할 수 있습니다. 보정 전후 값과 시점별 보정값이 모두 남아 있어 계산 과정을 거슬러 볼 수 있습니다.

서로 다른 날, 서로 다른 메소드로 계산한 결과를 한 그래프에 올려 비교합니다. 비교하려고 과거 결과를 다시 계산할 필요가 없습니다.

동등성 판정은 기준의 분기를 따라가며 세부기준마다 예/아니오를 남깁니다. f2 값 하나가 아니라 어떤 경로로 그 결론에 이르렀는지가 결과표에 함께 보입니다.

시험성적서 양식의 엑셀과 용출곡선 그림이 프로그램에서 바로 나옵니다.

사용 기술

  • Python
  • wxPython
  • pandas
  • NumPy
  • SciPy
  • matplotlib
  • MySQL
  • openpyxl

화면

진행하려는 프로젝트가 있으신가요?

해결하려는 문제와 지금 상황을 알려 주시면, 어떤 방식이 맞을지 함께 검토합니다.

프로젝트 문의하기