Projects프로젝트
Project timeline프로젝트 개발 기간
Canopus SW · From subjective reading to an AI-based MSI callCanopus SW · 주관적 판독에서 AI 기반 MSI 판정으로
- Lead the software end to end: planning, design, the AI model and the app.SW 기획·설계부터 AI 모델, 앱 개발까지 전 과정을 총괄합니다.
- Developed a method and a tool that generate training data from clinical data, improving performance including sensitivity and specificity.임상 데이터 기반 학습 데이터 생성 기법 및 Tool을 개발해 민감도, 특이도를 포함한 성능을 개선했습니다.
- Develop the software with Samsung Medical Center in repeated cycles of clinical data collection, requirements analysis and clinical-user feedback.삼성서울병원과 함께 임상 데이터 수집, 요구사항 분석, 임상 사용자 피드백을 반복하며 개발합니다.
- As the developer, write the IEC 62304 software documents and the dGMP technical documents.개발자로서 IEC 62304 SW 문서와 dGMP 기술 문서를 작성합니다.
Canopus at a glance한눈에 보는 Canopus
Diagram도식
Canopus is AI software that supports MSI diagnosis: it extracts features from the analog signals of digital PCR and melting tests, computes an MSI score with a machine-learning model and carries the call through to the report in one flow.Canopus는 디지털 PCR 및 Melting 검사의 아날로그 신호에서 특징을 추출하고, 머신러닝 모델로 MSI 점수를 산출해 판정과 리포트까지 한 흐름으로 처리하는 MSI 진단 보조 AI 소프트웨어입니다.
In microsatellite instability (MSI) testing, experts read the signal by eye, so results could differ between readers; established tests were slow and costly.MSI(현미부수체 불안정성) 검사에서는 전문가가 신호를 눈으로 판독해 판독자마다 결과가 달라질 수 있었고, 기존 검사는 느리고 비용이 많이 들었습니다.
Analog signals from digital PCR and melting tests are processed into signal features; a machine-learning model turns them into an MSI score and call.디지털 PCR 및 Melting 검사의 아날로그 신호를 처리해 신호 특징을 추출하고, 머신러닝 모델이 MSI 점수를 산출해 판정을 내립니다.
Approval in progress허가 진행 중
01How it works작동 방식
From instrument signal to report장비 신호에서 리포트까지
Analog signals from digital PCR and melting tests디지털 PCR 및 Melting 검사의 아날로그 신호
Features extracted from the Tm histogram of the melting curvesMelting 곡선의 Tm 히스토그램에서 특징 추출
A machine-learning model scores the features머신러닝 모델이 특징을 바탕으로 점수 산출
The score becomes an MSI call점수에 따라 MSI 판정
The result is issued as a report판정 결과를 리포트로 출력
02Existing practice vs. Canopus기존 방식과 Canopus
- Experts read the signal by eye전문가가 신호를 눈으로 판독
- Results can differ between readers판독자마다 결과가 다를 수 있음
- Established tests are slow and costly기존 검사는 느리고 비용이 많이 듦
- Signal-feature AI gives a score and a call신호 특징 기반 AI가 점수와 판정을 산출
- The call does not depend on the reader판독자에 따라 결과가 달라지지 않음
- Analysis, AI call and report in one flow분석·AI 판정·리포트를 한 흐름으로 처리
A clinical lab needs this in one system that meets regulatory and security requirements.임상 검사실에는 이 과정을 규제·보안 요건에 맞게 처리하는 하나의 시스템이 필요합니다.
03Choosing the model모델 선택
Model candidates모델 후보
Small clinical cohort소규모 임상 코호트- Compared as a candidate후보로 비교 검토
- Less accurate and less stable정확도·안정성이 상대적으로 낮음
- Not chosen for the product제품에는 채택하지 않음
- Optimized for fast analysis of test results빠른 검사 결과 분석에 최적화
- More accurate and more stable더 정확하고 안정적
- Chosen for the product제품 모델로 채택
04Training data from clinical data임상 데이터 기반 학습 데이터
Solving training-data scarcity학습 데이터 부족 문제 해결
Labeled data were scarce라벨링된 데이터가 부족
Based on clinical data임상 데이터 기반
Checked against real data실제 데이터와 비교 검증
The model learns from more data더 많은 데이터로 학습
Including sensitivity and specificity민감도·특이도 포함
05Results결과
06Software architecture소프트웨어 아키텍처
Two modules, one interface두 모듈, 하나의 인터페이스
Block diagram블록 다이어그램User interface (UI)사용자 화면(UI)
Versioned and verified on its own독립 버전 관리·검증Runs the AI modelAI 모델 구동
Versioned and verified on its own독립 버전 관리·검증Why modular모듈화한 이유
Improving the AI model leaves the UI and the data path as they areAI 모델을 개선해도 UI와 데이터 경로는 그대로
IEC 62304 documents and verification scope are managed module by moduleIEC 62304 문서·검증 범위를 모듈 단위로 관리
UI in C#, AI in PythonUI는 C#, AI는 Python으로 개발
07From product planning to approval제품 기획부터 허가까지
Full development cycle개발 전주기
Client · Samsung Medical CenterClient · 삼성서울병원- Start · 10.20252025.10 시작Clinical requirements gathered임상 요구사항 수집
- MVP features defined and designedMVP 기능 정의·설계
-
- Software and AI model developmentSW·AI 모델 개발
- Evaluation on clinical data임상 데이터로 평가
- Clinical-user feedback applied임상 사용자 피드백 반영
- Now현재Approval in progress허가 진행 중
CGT AI Pipeline · Count the cells in every well, get gene copies per cellCGT AI 파이프라인 · 구획마다 세포를 세고, 단일세포 유전자 복제 수를 산출
- Planned, designed and built the analysis software on my own.분석 소프트웨어를 단독으로 기획·설계·개발했습니다.
- Built the deep-learning model that counts the cells in each well, reaching 99.5%+ validation accuracy.구획마다 세포 수를 세는 딥러닝 모델을 개발해 검증 정확도 99.5% 이상을 달성했습니다.
- Joined each well’s count with its digital real-time PCR data to get gene copies per single cell.구획별 세포 수를 디지털 실시간 PCR 데이터와 결합해 단일세포 유전자 복제 수를 산출했습니다.
- Cut well-indexing time by more than 85% by mapping each tile image straight onto the reference map, with no stitching step.조각 이미지를 기준 맵에 바로 매핑해 stitching 과정을 없앰으로써 구획 인덱싱 시간을 85% 이상 단축했습니다.
The idea in one picture · two measurements joined per well한 장으로 보는 구조 · 두 측정 결과를 구획 단위로 결합

Cell & gene therapy QC needs the number of gene copies in each single cell. Cells were counted by hand, which was slow, and counts could vary from person to person.세포·유전자치료제 품질 관리에는 세포 하나하나의 유전자 복제 수가 필요합니다. 그런데 세포를 사람이 직접 세야 해서 시간이 오래 걸리고, 사람마다 결과가 달라질 수 있었습니다.
An AI model counts the cells in every well, and each count is joined with the PCR result of the same well.AI 모델이 모든 구획의 세포 수를 세고, 이를 같은 구획의 PCR 결과와 결합합니다.
Well-indexing time cut by more than 85%구획 인덱싱 시간 85% 이상 단축
01How it works in four steps네 단계로 보는 작동 방식




02Why two measurements두 가지를 함께 측정하는 이유
- How many cells sit in each well구획마다 세포가 몇 개인지 알 수 있음
- No gene information유전자 정보는 없음
- A gene signal for each well구획마다 유전자 신호를 측정
- No count of the cells behind the signal몇 개의 세포에서 나온 신호인지 모름
- Cell count and gene signal of the same well같은 구획의 세포 수와 유전자 신호
- Gene copies per single cell단일세포 유전자 복제 수 산출
Neither measurement alone answers the QC question.어느 한쪽만으로는 품질 관리에 필요한 답을 얻을 수 없습니다.
03Index every well모든 구획 인덱싱
The microscope captures the chip region by region현미경으로 칩을 구역별 조각 이미지로 촬영
Each tile goes straight onto the chip’s reference map조각 이미지를 칩의 기준 맵에 바로 매핑
One fixed position and one ID per well구획마다 고정된 위치와 ID
The same ID links the well to its PCR signal같은 ID로 해당 구획의 PCR 신호와 결합
What cut the indexing time구획 인덱싱 시간을 줄인 방법
Cut by 85%+85% 이상 단축Mapping each tile straight onto the reference map removed the stitching step and cut the well-indexing time by more than 85%.조각 이미지를 기준 맵에 바로 매핑해 stitching 과정을 없앰으로써 구획 인덱싱 시간을 85% 이상 단축했습니다.
04The cell-counting model세포 계수 모델
Images of single wells, each with a label구획 하나하나의 이미지에 라벨 지정
A training set and a separate validation set학습 세트와 별도의 검증 세트
A deep-learning model learns to count cells per well딥러닝 모델이 구획별 세포 계수를 학습
Validation accuracy 99.5%+검증 정확도 99.5% 이상
05The analysis software분석 소프트웨어
What the software is made of소프트웨어 구성
Block diagram블록 다이어그램Load a chip’s images, run the analysis and check the results칩 이미지를 불러와 분석을 실행하고 결과를 확인
- Load images이미지 로드
- Index wells구획 인덱싱
- Count cells (deep-learning model)세포 계수(딥러닝 모델)
- Join with PCRPCR 결합
- Save results결과 저장
06Known limits and how they are handled알려진 한계와 대응 방법
- Overlapping cells can be counted as one cluster겹친 세포가 한 덩어리로 계수될 수 있음
- Next: separate touching cells다음 과제: 붙어 있는 세포 분리
- Precipitate or bubbles make a well less reliable침전물이나 기포가 있으면 신뢰도가 낮아짐
- Every count carries a quality flag모든 계수 결과에 품질 플래그 표시
- Doubtful wells go to manual inspection의심스러운 구획은 사람이 직접 확인
- A different microscope or cell type lowers accuracy현미경이나 세포 종류가 바뀌면 정확도가 떨어짐
- Next: support more microscopes and cell types다음 과제: 더 많은 현미경·세포 종류 지원
LOAA-M · Diagnostic PCR platform software, network and securityLOAA-M · 진단 PCR 플랫폼의 소프트웨어·네트워크·보안
- Contributed to the Linux / Windows instrument UI software and the result database (MariaDB).Linux·Windows 장비 UI 소프트웨어와 결과 데이터베이스(MariaDB) 개발에 참여했습니다.
- Owned the network features, building a Java network service that syncs run progress and results to AWS over HTTPS in real time and reconnects automatically.네트워크 기능을 담당해, 실험 진행 상황과 결과를 HTTPS로 AWS에 실시간 동기화하고 연결이 끊기면 자동으로 다시 연결하는 Java 네트워크 서비스를 개발했습니다.
- Owned the security features, implementing layered medical-device security: encrypted communication, encrypted result and log files, secured database access and blocking of unauthorized updates.보안 기능을 담당해 통신 암호화, 결과·로그 파일 암호화, 데이터베이스 접근 보안, 비인가 업데이트 차단으로 이루어진 의료기기 다층 보안을 구현했습니다.
- As the developer, wrote the IEC 62304 test documents and the CE-IVDR / MFDS certification documents.개발자로서 IEC 62304 테스트 문서와 CE-IVDR·식약처 인증 문서를 작성했습니다.
Hospitals, labs and field sites needed to check the progress of running experiments remotely, without compromising medical-device security.병원·연구실·현장에서 진행 중인 실험의 진행 상황을 원격으로 확인할 수 있어야 했고, 의료기기 보안 요건도 지켜야 했습니다.
Contributed to the instrument software and its result database; owned the Java network service to AWS and the layered security.장비 소프트웨어와 결과 데이터베이스 개발에 참여하고, AWS와 연결하는 Java 네트워크 서비스와 다층 보안을 담당했습니다.
LOAA-M CE marked under the IVDRLOAA-M CE-IVDR 인증 획득
01How it works: from instrument to cloud작동 방식: 장비에서 클라우드까지
LOAA-M networkLOAA-M 네트워크
02Instrument UI software for Linux and WindowsLinux·Windows 장비 UI 소프트웨어
Deployment view배포 구성
Contributed개발 참여I contributed to the instrument UI software for Linux and Windows and to the result database (MariaDB) it writes to.Linux·Windows 장비 UI 소프트웨어와, 결과가 저장되는 결과 데이터베이스(MariaDB) 개발에 참여했습니다.
03Real-time sync to the cloud클라우드 실시간 동기화
Java network service during a run실험 중 Java 네트워크 서비스
Owned담당A PCR run starts on the instrument장비에서 PCR 실험 시작
Each analysis unit’s progress, as it happens분석 유닛별 진행 상황을 즉시 전송
Finished results go to AWS완료된 결과를 AWS로 업로드
Follow progress on the web or mobile from anywhere병원·연구실·현장 밖에서도 웹·모바일로 진행 상황 확인
04Layered security다층 보안
Defense in depth심층 방어
Owned담당Four protections around the instrument data, outermost first장비 데이터를 둘러싼 4개 보호 계층(바깥부터)
- Unauthorized updates blocked비인가 SW 업데이트 차단Device장비
Only approved software updates can be applied인가된 SW 업데이트만 적용 가능
- Encrypted communication통신 암호화Network네트워크
Data in transit stays encrypted전송 중인 데이터를 암호화
- Secured database accessDB 접근 보안Stored data저장 데이터
Only authorized access to the result database is allowed결과 DB에는 인가된 접근만 허용
- Encrypted results & logs결과·로그 암호화Stored data저장 데이터
Result and log files stored encrypted결과·로그 파일을 암호화해 저장
Protection covers the device, the network and the stored data.장비, 네트워크, 저장 데이터를 모두 보호합니다.
Automated DNA Extraction Device · Software planning and design자동 DNA 추출 장비 · 소프트웨어 기획·설계
- Led the device software from planning and design to acceptance.장비 소프트웨어의 기획·설계부터 검수까지 전 과정을 이끌었습니다.
- Designed the operating and UI scenarios based on the needs in the field.현장의 요구를 바탕으로 장비 구동 시나리오와 UI 시나리오를 설계했습니다.
- Designed the UI–MCU communication interface and specified each operation with pseudo-code, MCU command tables and activity diagrams.UI–MCU 통신 인터페이스를 설계하고, 동작별로 의사코드·MCU 명령표·Activity diagram으로 명세했습니다.
- Accepted the vendor-built UI–MCU interface with log-based tests (about 2 months from kickoff to acceptance).외주로 구현한 UI–MCU 인터페이스를 로그 기반 테스트로 검수했습니다(킥오프부터 검수까지 약 2개월).
The usual test process and this device’s role일반적인 검사 과정과 이 장비의 역할
Diagnostic PCR platform front end진단 PCR 플랫폼 전처리 장비- Sample collection시료 채취e.g., blood예: 혈액
- Automated by this device이 장비가 자동화DNA extraction from the sample시료에서 DNA 추출Extraction핵산 추출PCR setupPCR 준비Chip loading칩 주입
- PCR test with the DNADNA로 PCR 검사 수행Diagnostic PCR platform진단 PCR 플랫폼
An all-in-one front-end device for the diagnostic PCR platform. Load samples and press Start; everything up to chip loading is automatic.진단 PCR 플랫폼의 올인원 전처리 장비입니다. 시료를 넣고 Start를 누르면 칩 주입까지 자동으로 진행됩니다.
I specified the scenarios and the UI–MCU interface first, then accepted the implemented interface with logs.시나리오와 UI–MCU 인터페이스를 먼저 명세하고, 구현된 인터페이스는 로그로 검수했습니다.
UI–MCU interface build: kickoff → acceptance in about 2 months · internal development completedUI–MCU 인터페이스 구현: 킥오프→검수 약 2개월 · 내부 개발 완료
01Operating scenario구동 시나리오
Device state checked at power-on전원을 켜면 장비 상태부터 점검
Sample barcodes, kit and tip QR codes, reagents and remaining volume시료 바코드, 키트·팁 QR 코드, 시약과 잔량
Samples moved, then nucleic acid extracted시료를 옮긴 뒤 핵산 추출
Extracted nucleic acid mixed with PCR reagents추출물과 PCR 시약 혼합
Sample ID written to the chip칩에 시료 ID 기록
02UI scenariosUI 시나리오
- Loads samples and consumables시료와 소모품 장착
- Presses StartStart 버튼 누름
- Checks the status in the UIUI에서 상태 확인
- Self-test status자가 진단 상태
- Consumables check, item by item소모품 항목별 점검 결과
- Progress of each stage단계별 진행 상황
03UI–MCU interface designUI–MCU 인터페이스 설계
Interface diagram인터페이스 다이어그램
Simplified간략화- Protocol settings프로토콜 설정
- Consumables installation status소모품 설치 상태
- Builds command sets · handles replies명령 세트 생성 · 응답 처리
- Barcode & QR scanners바코드·QR 스캐너
- Pipette — moves samples and reagents피펫 — 시료·시약 이동
- Chip loading & lid칩 주입·Lid
Three stages of a run동작 3단계
- Consumables check소모품 점검Sample tubes, extraction kit, tip boxes, reagent tubes and reagent volumes checked시료 튜브·추출 키트·팁 박스·시약 튜브 확인, 시약 용량 점검The scan results decide the next command스캔 결과에 따라 다음 명령을 결정
- Extraction & PCR setup추출·PCR 준비Sample transfer, reagent mixing시료 이동, 시약 혼합The protocol settings decide the order프로토콜 설정에 따라 순서 결정
- Chip loading & sample ID칩 주입·시료 ID 기록PCR mixture loaded into the chips, lid closedPCR 혼합액을 칩에 주입하고 Lid 닫기Sample IDs recorded in chip-loading order칩 주입 순서대로 시료 ID 기록
04Interface build and log check인터페이스 구현과 로그 검수
- Consumables check소모품 점검
- Sample transfer시료 이동
- Extraction핵산 추출
- PCR setupPCR 준비
- Chip loading칩 주입
05Collaboration map협업 구조
Developed the device software together with the UI, MCU, interface, bio-reagent and mechanical development teams.UI SW·MCU·인터페이스·Bio 시약·기구 개발 파트와 연계해 장비 SW를 개발했습니다.
- UI software developersUI SW 개발자
- MCU developersMCU 개발자
- Interface development인터페이스 개발 파트
- Bio-reagent developmentBio 시약 개발 파트
- Mechanical development기구 개발 파트
06Lessons as Software PMPM으로 배운 점
What was hard어려웠던 점
Designing software for a bio device took knowledge beyond software, such as bio-reagent performance and hardware parts and structure; collaboration with each responsible team was essential.Bio 장비의 SW라 설계에 SW뿐 아니라 Bio 시약 성능, HW 부품·구조 등 다양한 분야의 지식이 필요했고, 각 담당 팀과의 협업이 반드시 필요했습니다.
What I learned배운 점
Thanks to this, while handling software planning, design and development management, I communicated with many departments, such as sales, the bio research lab and hardware development, which broadened my perspective and built my cross-team collaboration skills.덕분에 SW 기획·설계와 개발 관리를 하며 영업, Bio 연구소, HW 개발 등 여러 부서와 소통해 시야를 넓히고 팀 간 협업 능력도 기를 수 있었습니다.
Deep Learning Breast Cancer Targeting Model딥러닝 기반 유방암 표적화 모델
- Developed a deep-learning model that classifies patches of public Kaggle histopathology images as invasive ductal carcinoma (IDC) or non-IDC.공개 Kaggle 병리 이미지로 침윤성 유관암(IDC) 패치를 분류하는 딥러닝 모델을 개발했습니다.
- Designed a probability-map adjustment that gathers scattered patch predictions into dense tumor regions, and applied it to the model’s output.흩어진 패치 예측을 밀집된 종양 영역으로 모으는 확률 맵 조정 기법을 설계해 모델 출력에 적용했습니다.
- Reached 86% test accuracy with the deep-learning model and 91% after adding the probability-map adjustment.딥러닝 모델로 테스트 정확도 86%를 얻고, 확률 맵 조정을 더해 91%까지 높였습니다.
The task: locate IDC on whole slides. Stitched back onto each slide, the patch predictions came out scattered.전체 병리 슬라이드에서 IDC의 위치를 찾는 과제입니다. 패치별 예측을 슬라이드에 다시 이어 붙이면 예측 영역이 여기저기 흩어졌습니다.
Developed a deep-learning patch classifier, then added a probability-map adjustment on top of its predictions.딥러닝 패치 분류 모델을 개발하고, 그 예측에 확률 맵 조정을 더했습니다.
86% with the deep-learning model, 91% after adding the probability-map adjustment딥러닝 모델 86%, 확률 맵 조정을 더한 뒤 91%
01Deep-learning model and probability-map adjustment딥러닝 모델과 확률 맵 조정
Two key parts두 가지 핵심
Model + post-processing모델 + 후처리1 · Deep-learning model1 · 딥러닝 모델
Developed the patch classifier패치 분류 모델 개발
Classifies patches of public Kaggle breast histopathology images as IDC / non-IDC with an ImageNet-pretrained EfficientNet-B2공개 Kaggle 유방 병리 이미지의 패치를 ImageNet 사전학습 EfficientNet-B2로 IDC / non-IDC 분류
2 · Probability-map adjustment2 · 확률 맵 조정
Designed and applied the adjustment확률 맵 조정 기법 설계·적용
Reinforces the neighbors of high-probability patches on the stitched probability map, gathering scattered predictions into the tumor region이어 붙인 확률 맵에서 확률이 높은 패치가 인접 패치를 강화해, 흩어진 예측을 종양 영역으로 모음
02A classifier for every patch패치마다 분류하는 모델
From slide to probability map슬라이드에서 확률 맵까지
TensorFlow · KerasSlides cut into small patches슬라이드를 작은 패치로 분할
IDC / non-IDC per patch with an ImageNet-pretrained EfficientNet-B2ImageNet 사전학습 EfficientNet-B2로 패치별 IDC / non-IDC 분류
Back onto the slide as a probability map슬라이드 위에 확률 맵으로 다시 배치
Post-processing step, explained in 03후처리 단계 (03에서 설명)
03Adjusting the probability map확률 맵 조정
How the adjustment works조정 원리
7×7 illustration7×7 예시04One test slide, before and after테스트 슬라이드의 조정 전후 비교
(A) Ground truth · (B) Model output · (C) After adjustment(A) 정답 · (B) 모델 출력 · (C) 조정 후

05Accuracy before and after조정 전후 정확도
Test accuracy테스트 정확도
Same test patches같은 테스트 패치