AutoPM3 : enhancing variant interpretation via LLM-driven PM3 evidence extraction from scientific literature

coticoger·2026년 3월 17일
post-thumbnail

논문 정보

희귀질환은 전 세계 인구의 약 6%에 영향을 줄 정도로 중요한 문제이지만, 진단은 여전히 어렵다. 그 이유는 환자 수가 적어 데이터가 부족하고, 유전자 변이가 실제로 어떤 기능적 영향을 주는지에 대한 이해가 제한적이기 때문이다. 최근에는 전장 유전체 시퀀싱(WGS)의 발전으로 변이를 찾는 것은 쉬워졌지만, 그 변이가 질병을 일으키는지 판단하는 과정은 여전히 복잡하다.

현재 임상 접근법은 evidence-based framework에 의존하며, 주로 미국의학유전학회(ACMG)와 분자병리학회(AMP)가 2015년에 발표한 가이드라인에 기반한다.

위 이미지에서 나타나듯이, 변이 분류의 전형적인 작업 흐름은 두 가지 주요 단계로 이루어진다.

  • variant annotation
    변이가 얼마나 흔한지나 병원성과 관련된 점수 등을 이용해 수치적으로 평가하는 단계로 다양한 데이터베이스와 도구들을 통해 자동화되어 빠르게 수행할 수 있지만, 변이의 실제 의미나 맥락까지 이해하지는 못한다.
  • literature review
    논문을 통해 실제 환자 사례와 연구 결과를 확인하는 단계이다. (특히 PM3 기준은 두 변이가 서로 다른 부모로부터 유래된 경우를 확인하는 중요한 근거로 사용되며, 이는 희귀질환 진단에서 매우 큰 비중을 차지한다.)

하지만 이런 문헌 기반 분석은 사람이 직접 논문을 읽고 정보를 수집해야 하므로 시간이 많이 들고 비용도 크다.

기존의 도구들(PubTator, LitVar)은 변이가 언급된 논문을 찾아주는 역할을 하지만, genotype-phenotype 관계를 이해하거나 병원성을 추론하는 기능은 부족하다. 즉, 정보를 찾는 것은 가능하지만 이해하는 것은 어렵다.

최근에는 LLM이 논문을 이해하고 구조화된 정보를 추출하는 데 활용될 수 있다는 가능성이 제시되고 있지만 기존 LLM 기반 방법들은 table과 같은 중요한 정보가 담긴 구조를 제대로 처리하지 못하거나, ACMG 기준에 맞춘 정보 추출에 최적화되어 있지 않다. 또한 많은 방법들이 외부 API에 의존하여 비용과 사용 환경의 제약이 존재한다.

이러한 한계를 해결하기 위해 AutoPM3라는 방법을 제안한다. AutoPM3는 오픈소스 LLM을 활용하여 논문에서 PM3와 관련된 정보를 자동으로 추출하는 시스템이다.

입력된 변이가 논문에 등장하는지 확인하고, 해당 변이와 in trans 관계에 있는 다른 변이를 찾아내며, 환자 정보를 종합하여 PM3 판단에 필요한 근거를 구성한다. 이를 위해 논문의 텍스트와 table을 분리하여 각각 다른 방식으로 처리한다.

텍스트는 RAG 기반으로 이해하고, table은 Text2SQL을 활용해 정밀하게 해석한다. 시스템은 variant augmentation, Text2SQL 기반 변이 추출, variant-specific retriever, model fine-tuning의 네 가지 모듈로 구성된다.


Materials and methods

PM3-Bench : a curated dataset for PM3 evidence extraction

ClinGen Evidence Repository는 전문가가 큐레이션한 판정 결과를 제공하지만, 일반 영어 문장 형태로 작성되어 있어 자동화된 평가를 수행하기 어렵다. 이에 PM3 문헌 근거 추출의 벤치마킹을 위한 포괄적인 데이터셋인 PM3-Bench를 구축하였다.

ClinGen에서 PM3 기준이 적용된 모든 변이를 수집했고, 그중에서 특정 논문과 명확하게 연결되는 경우만 선택했다. 이후 해당 논문에서 실제로 중요한 정보인 in trans 변이와 환자 수를 사람이 직접 추출하여 정답 데이터로 만들었다.

또한 모델이 다양한 형태의 변이 표기를 잘 인식하는지 평가하기 위해, 변이 표기를 실제 논문에서 쓰는 복잡한 형식 그대로 유지했다.

최종적으로 PM3-bench는 총 1027개 논문-변이 쌍 데이터로 구성되며, 여기에는 752개의 고유 변이와 467개의 논문이 포함되어 있다. 이 중 일부 논문은 실제 텍스트를 사용할 수 있었고, 그중 195개 샘플은 테스트용으로 사용되었다. 나머지 605개 데이터는 모델을 학습시키는 데 사용되었다.

AutoPM3 framework

Variant augmentation

가능한 다양한 표현을 생성한다. 유전자 변이는 DNA 수준 표현(c.274G>T)이나 단백질 수준 표현(D92Y) 등 여러 방식으로 나타날 수 있기 때문에, Mutalyzer를 이용해 이런 다양한 표현을 모두 만든다. 이렇게 확장된 변이 표현들은 이후 단계에서 더 잘 매칭되도록 돕는다.

Text2SQL

이 모듈은 표를 직접 읽는 대신, 표의 구조를 프롬프트로 제공하여 LLM이 SQL문을 생성하도록 한다. 이때 정확도를 높이기 위해 두 가지 중요한 전략이 사용된다.

  1. 유전자 변이는 다양한 형태로 표현될 수 있으므로, 변이의 '위치 숫자'만 기준으로 먼저 검색한다.
    e.g. "24"이라는 위치를 기준으로 데이터를 찾지만 이렇게 하면 "0.93884" 같은 숫자도 같이 잡히는 문제가 생긴다. 그래서 이후 단계에서 패턴 매칭을 통해 진짜 변이인지 아닌지를 다시 걸러내는 후처리를 수행한다.
    즉, 숫자가 단순 통계값인지, 실제 변이 위치인지 문맥을 보고 구분하여 false positive를 제거한다

  2. 논문에 표가 너무 많으면, LLM에 한 번에 넣는 정보가 많아져 성능이 떨어진다. 이를 해결하기 위해 표를 여러 개로 나누어 순차적으로 처리한다.

in trans 변이(같은 환자에서 발생한 두 변이)를 찾기 위해 먼저 질의 변이가 포함된 행을 찾고, 그 행에서 환자를 식별할 수 있는 ID를 추출한다. 그리고 그 ID를 기준으로 같은 환자에 해당하는 다른 행들을 함께 가져온다. 이렇게 모은 데이터는 같은 환자에서 발견된 변이들이므로, in trans 관계를 판단하는 데 사용된다.

마지막으로, 이렇게 SQL로 추출된 표 데이터를 다시 LLM에 입력하여, 사람이 읽을 수 있는 형태로 정리된 텍스트로 변환한다.

Retrieval-augmented generation

RAG는 논문에서 질의 변이를 찾는 데 사용된다. 논문은 1500자 길이의 고정 길이 청크로 나뉘며, 각 청크는 100자의 overlap을 가진다(문장이 중간에 끊겨도 의미를 유지하기 위해서).

질의 변이가 주어지면, 이 청크들에 대해 variant-specific retriever를 적용하고, 변이를 포함하는 최대 5개의 청크를 문맥으로 검색하였다 (논문 전체를 읽는 게 아닌 관련 있는 부분만 읽자). LangChain의 QA chain에서 chain type을 "stuff"로 설정한 후, 검색된 청크, 질의 변이, 그리고 프롬프트를 제공하여 답변 생성을 수행하였다.

Variant-specific retriever

질의 변이는 다양한 표현으로 변환된다 (c.274G>T, Asp92Tyr, D92Y). 텍스트에서 변이와 일치할 가능성을 높이기 위해, 서로 다른 표현들로부터 정규표현식을 생성한다(표현이 조금 달라도 매칭되게함). 그래도 못 찾으면 조건을 완화한다(숫자만 매칭, 오차 허용).

Fine-tuned model

유전자형, 환자 정보, 부모 정보와 같은 PM3 관련 정보를 명확히 보여주는 간결한 답변을 만들도록 하기 위해, LoRA fine-tuning을 수행하였다. 학습 데이터셋(trainset)은 ClinGen의 큐레이터 보고서에서 관련 코멘트를 입력으로 하고 in trans 변이를 정답 레이블로 하여 추출되었으며, 모든 테스트 샘플은 제외되었다.

이러한 방식으로 모델은 유전자 기호와 변이 축약형의 표현을 추가로 학습하고, 표적 변이와 관련 in trans 변이에 대한 질의응답에서 짧고 명확한 답변만 생성하도록 학습된다.

Evaluation

두 가지에 대해 평가를 진행한다
(1) 변이를 제대로 찾는가? (variant hit)
(2) 짝이 되는 변이를 찾는가? (in trans detection)

hallucination도 같이 검사한다.

0개의 댓글