SINGLE CELL ML

HSPC hierarchy low-anchor benchmark: pca30-B3와 nested scGPT fusion

Ilho Ahn

normal cHSPC fine-state recovery에서 pca30-B3 기준과 nested scGPT 결합의 outer-test primary-score 개선, 보정과 확률 오차 한계를 정리한다.

Rare-cell 분류 방법을 비교하려면 먼저 해석 가능한 평가 환경이 필요하다. 여기서 benchmark는 데이터셋 선택만이 아니라 세포 집단, 라벨 구조, donor 분할, 라벨 예산을 함께 고정한 조건을 뜻한다. 이 글에서 말하는 rare-cell classification은 실제 임상 prevalence를 추정하는 문제가 아니라, normal cHSPC 안의 가까운 fine state를 적은 공개 라벨(anchor) 로 복원하는 low-anchor fine-state recovery 문제에 가깝다.

분석 대상은 normal circulating hematopoietic stem and progenitor cells (cHSPC) 안의 HSPC (hematopoietic stem and progenitor cells) hierarchy를 donor-heldout low-anchor fine-state 복원 benchmark로 구성한 설정이다 [1]. 초점은 새로운 모델 제안이 아니라, 이 평가 문제가 방법 비교에 충분히 성립하는지, pca30-B3가 왜 보정 기준으로 남았는지, 그리고 whole-human scGPT PCA400-linear 결합이 어떤 범위에서 보완 신호를 주는지 정리하는 데 있다.

HSPC

HSPC는 혈액 세포 계열로 분화할 수 있는 stem/progenitor population을 가리킨다. 이 글에서는 normal cHSPC 안의 가까운 progenitor state를 구분하는 문제로 사용했다.

사용한 주요 리소스

cHSPC CELLxGENE collection

이 benchmark는 public CELLxGENE collection의 circulating HSPC 데이터에서 normal cHSPC subset을 사용해 구성했다 [resource]. 핵심은 collection 전체를 평가하는 것이 아니라, donor-heldout low-anchor 조건에서 fine-state recovery가 가능한 평가 조건을 고정하는 데 있다.

범위 주의

여기서 rare-cell이라는 표현은 benchmark sample 안의 class prevalence를 그대로 주장하는 말이 아니다. 평가 sample은 방법 비교를 위해 fine label별 셀 수를 제한해 구성했으며, 주된 난점은 class rarity 자체보다 donor-heldout 조건에서 적은 anchor label만으로 가까운 progenitor state를 복원하는 데 있다.

요약

  • HSPC hierarchy benchmark는 가까운 progenitor state, donor-heldout split, low-anchor 조건을 함께 묶어 새 donor에서도 fine state를 구분해야 하는 평가 문제로 구성했다.
  • pca30-B3는 primary score 0.902323, mean ECE 0.023626으로 가장 안정적인 보정 기준이었다.
  • scVI latent, raw scGPT embedding, scGPT 위의 label propagation은 pca30-B3 기준을 대체하지 못했다. 병목은 단순히 더 복잡한 representation을 쓰는 문제가 아니었다.
  • pca30-B3 + whole-human scGPT PCA400-linear 결합은 중첩 검증으로 고른 outer-test 평가에서 primary score 0.913785를 기록했다.
  • 다만 결합 후 ECE/Brier는 pca30-B3보다 나빠졌다. 따라서 결론은 단일 최종 방법이 아니라, primary-score 결합 후보와 calibration이 안정적인 기준의 역할 분리다.

HSPC hierarchy benchmark

설계 배경

rare-cell 분류 문제의 방법론 비교에는 안정적으로 정의된 benchmark가 필요하다. 여기서 benchmark는 단순히 데이터셋 하나를 고르는 일이 아니라, 어떤 세포 집단을 대상으로 삼고, 어떤 라벨 구조를 가리고 복원하게 하며, 어떤 분할과 라벨 예산에서 일반화를 볼 것인지 정해 비교 가능한 평가 조건을 만드는 일에 가깝다.

너무 쉬운 과제에서는 baseline만으로도 성능이 빨리 포화되고, shortcut이 강한 과제에서는 방법 간 차이를 해석하기 어렵다. 따라서 이 단계의 기준은 특정 방법의 즉시 성능 개선이 아니라, rare-cell 분류 방법을 적용했을 때 개선과 한계를 해석할 수 있는 평가 조건의 성립 여부였다.

HSPC hierarchy는 이 기준에 맞춰 구성한 평가 설정이다. 같은 큰 세포 집단 안에 biologically 가까운 progenitor state들이 있고, donor 수가 충분해 donor-heldout split을 만들 수 있으며, 상위 라벨만 남긴 뒤 세부 라벨을 복원하는 parent-label collapse 설정을 만들 수 있었다. 즉, 단순히 데이터가 있었기 때문이 아니라 데이터, 라벨 구조, 분할 조건이 함께 benchmark 난이도를 만들 수 있었기 때문에 이 설정을 사용했다. 이 선택의 기준은 Table 1에 정리했다.

조건 중요한 이유
hierarchy가 명확함 parent-label collapse, 즉 세부 라벨 일부를 가리고 더 큰 상위 라벨만 남기는 benchmark를 설계하기 좋았다
sibling state가 biologically 가까움 서로 비슷한 세포 상태라서 실제로 어려운 구분 문제가 된다
donor 수가 충분함 donor-heldout split을 안정적으로 구성할 수 있었다
shortcut을 점검할 수 있음 metadata나 donor shortcut이 강한 문제인지 먼저 확인할 수 있었다
초기 성립 가능성을 점검할 수 있음 복잡한 방법을 적용하기 전에 이 평가 문제가 너무 쉽거나 불가능한 설정이 아닌지 확인할 수 있었다
Table 1. HSPC hierarchy를 donor-heldout low-anchor fine-state recovery task로 구성할 때 사용한 설계 조건과 해석상 역할.

따라서 HSPC hierarchy는 단순한 데이터셋 선택이 아니라, rare-cell classification 방법을 적용하고 해석하기 위해 설계한 평가 조건이었다. 이후 실험은 이 조건에서 어떤 접근이 효과를 보였고, 어떤 어려움이 구조적으로 남는지 확인하는 과정에 가깝다.

평가 설계

이 task의 입력은 cell-by-gene expression matrix에서 나온 single-cell expression vector다. 각 값은 해당 cell에서 특정 gene의 mRNA가 얼마나 관측됐는지를 나타내며, DNA 서열 자체가 아니라 cell state를 반영하는 transcriptome signal로 해석한다.

이 benchmark는 아래 네 가지 축을 함께 묻도록 구성했다.

  • 가까운 sibling state를 실제로 구분해야 한다.
  • 같은 donor를 다시 맞히지 않고 새 donor에서도 일반화돼야 한다.
  • 라벨이 충분하지 않은 low-anchor 조건을 견뎌야 한다.
  • 테스트 셀을 학습 때 직접 보지 않는 inductive setting이어야 한다.

실제 평가 조건은 아래처럼 고정했다.

  • dataset: cHSPC Illumina
  • condition: diagnosis == normal
  • population: hematopoietic precursor cell
  • fine labels: MEBEMP-L, CLP, ERYP, BEMP, GMP-L, NKTDP
  • split: donor-heldout
  • mode: inductive-only
  • primary budget: 20 anchors per class

여기서 donor-heldout은 같은 donor의 셀이 train과 test에 동시에 들어가지 않게 막는 설정이다. 다시 말해, 같은 사람 안에서 비슷한 셀을 다시 맞히는 문제가 아니라 새 donor에서도 같은 패턴이 유지되는지를 보는 더 엄격한 평가다. anchor는 학습할 때 정답 라벨이 공개된 소수의 셀이고, inductive는 테스트용 셀을 학습 때 직접 보지 않고 예측하는 방식이다.

구현상 inductive 조건은 fold별 train donor에서만 preprocessing과 propagation graph를 fit하는 방식으로 고정했다. Normalization, HVG selection, scaling, PCA fit, label propagation graph는 train donor cell만 사용했고, held-out donor cell은 fold별 frozen transform을 거쳐 prediction과 evaluation에만 들어갔다. 따라서 본 평가의 B3는 held-out donor의 unlabeled expression을 graph construction에 넣는 transductive label propagation이 아니라, train graph에서 학습한 확률 함수를 held-out donor cell에 적용하는 induction-style 비교로 해석한다 [2].

이 조합이 평가 조건의 핵심이다. biologically 가까운 sibling state를 새 donor 일반화 조건과 low-anchor 조건 아래에서 묻도록 구성했기 때문에, 단순한 shortcut보다 실제 분류 난이도와 남아 있는 차이를 더 직접적으로 볼 수 있다.

Benchmark 성립 확인

초기 가능성 점검은 최종 방법을 고르는 단계가 아니라, 이 설정이 방법 비교에 충분한 평가 문제인지 확인하는 단계였다. metadata-only donor-heldout max AUC는 0.582였고, low-anchor 조건에서도 expression 기반 classifier가 prior와 centroid baseline을 넘었다. Budget을 바꾸거나 Ultima cross-platform 조건으로 확인해도 방향은 유지됐다.

본 평가에서는 26,681 cells, 90 donors, 6 fine labels, 20 anchors per class 조건을 고정했다. inductive kNN label propagation (B3)은 anchor prior, nearest centroid, cheap linear classifier 중 가장 강한 baseline 대비 paired gain +0.0255, 95% CI = (+0.0096, +0.0314)를 보였다. 따라서 이 benchmark는 단순한 shortcut이나 불가능한 구분 문제가 아니라, 같은 평가 조건 안에서 방법 간 차이를 비교할 여지가 있는 task로 남았다.

방법 비교와 기준

Local Geometry 기준

가장 안정적인 개선은 모델 계열을 바꾸는 것보다 표현 공간을 조정할 때 나왔다. 여기서 pca50pca30은 expression matrix를 각각 50차원 또는 30차원 PCA 표현으로 줄인 뒤, 그 공간에서 label propagation을 적용한 설정이다. 같은 label propagation이라도 pca50 대신 pca30 위에서 local neighborhood를 만들었을 때 primary score와 pair confusion이 함께 개선됐다. Table 2는 이 차이를 요약한다.

condition primary score mean macro AUPRC mean ECE mean Brier MEBEMP-L <-> ERYP pair confusion
pca50-B3 0.896652 0.895621 0.027164 0.226867 0.278660
pca30-B3 0.902323 0.899463 0.023626 0.220972 0.266080
Table 2. pca50-B3pca30-B3의 primary score, calibration, 핵심 pair confusion 비교. Primary score는 높을수록 좋고, ECE, Brier, pair confusion은 낮을수록 좋다.

Figure 1은 같은 비교를 세 지표의 방향성으로 다시 보여준다. pca30-B3는 primary score를 올리는 동시에 ECE와 MEBEMP-L <-> ERYP pair confusion을 낮췄다.

pca50-B3와 pca30-B3의 primary score, mean ECE, MEBEMP-L ERYP pair confusion을 비교한 세 지표 dumbbell plot
Figure 1. 같은 label propagation이라도 local neighborhood를 정의하는 PCA 공간에 따라 primary score, calibration, 주요 sibling-boundary confusion이 함께 달라졌다. pca30-B3는 primary score와 calibration을 함께 본 in-domain 보정 기준으로 남았다.

핵심 비교는 아래와 같다.

  • pca30 vs pca50 primary score median gain: +0.0097
  • bootstrap 95% CI = (+0.0044, +0.0155)
  • pair confusion delta: -0.0219
  • pair bootstrap 95% CI = (-0.0337, -0.0120)

이 결과는 compact PCA view가 고차원 noise를 줄이고, HSPC lineage와 관련된 local geometry를 더 안정적으로 보존했을 가능성을 시사한다. 이 때문에 pca30-B3는 단순히 점수가 높은 설정이 아니라, 이후 비교에서 기준으로 삼을 in-domain 보정 기준이 됐다. 참고로 macro AUPRC는 각 클래스를 고르게 보고 평균낸 성능 점수이고, ECE는 confidence와 실제 정답률의 정합성을 보는 calibration 지표다 [3].

추가 누수 및 민감도 점검도 같은 방향을 지지했다.

  • donor leakage AUC: 0.559952
  • all-diagnosis gain: +0.030604
  • Ultima gain: +0.025175
  • 두 민감도 점검 모두 calibration은 cheap linear classifier보다 나빠지지 않았다

표현학습 모델의 한계

다른 표현학습 기반 비교는 pca30-B3를 넘지 못했다. 같은 pca30-B3 안에서 k, alpha, pair-local rescue를 바꿔도 의미 있는 gain은 거의 없었다. fast scVI latent + label propagation은 primary score 0.893955, mean ECE 0.069573으로 pca30-B3보다 낮았다 [4]. 이는 남은 오류가 단순한 propagation hyperparameter 문제나 더 매끄러운 latent 하나로 해결되는 문제가 아니라는 뜻이다.

scGPT

scGPT는 single-cell transcriptomic data를 대상으로 학습된 foundation model이다 [5]. 여기서는 scGPT 자체를 새로 학습하거나 일반 성능을 평가한 것이 아니라, scGPT embedding과 PCA400-linear probability가 pca30-B3 기준을 보완하는지 확인했다.

초기 scGPT 결과도 같은 방향이었다. original blood 또는 continual checkpoint의 raw embedding에 linear classifier, prototype, label propagation을 붙인 설정은 모두 기준보다 낮았다. whole-human scGPT raw embedding은 상대적으로 높았지만, raw linear 0.880685, raw label propagation 0.874831로 여전히 pca30-B3를 넘지 못했다. 따라서 foundation-model embedding이 바로 안정적인 local propagation graph가 된다고 보기는 어려웠다.

핵심 관찰은 foundation-model 신호가 기준을 대체하기보다, 기준이 놓치는 label ranking을 보완할 때 더 유효했다는 점이다.

보완적 순위 신호의 결합

whole-human scGPT를 추가하면서 개선 방향이 바뀌었다. 단독 scGPTscGPT embedding 위의 label propagation은 기준을 넘지 못했지만, fold별 PCA400으로 정리한 뒤 linear probability를 만들면 pca30-B3와 다른 오류 구조가 나타났다. 즉, scGPT가 기준을 대체한 것이 아니라, pca30-B3가 약한 일부 label ranking에서 보완 신호를 제공한 결과로 해석했다.

마지막 비교는 embedding을 교체하는 방식이 아니라 probability를 결합하는 방식이었다. pca30-B3는 in-domain local manifold signal을 제공하고, whole-human scGPT PCA400-linear는 보완적 순위 신호를 제공한다.

중첩 검증으로 결합 가중치를 고른 평가에서는 각 outer donor-heldout fold의 held-out donor를 마지막 평가에만 쓰고, outer train donor 안에서 다시 inner donor validation을 만들어 결합 가중치를 골랐다. 이때 inner validation용 표현도 inner-train donor만으로 HVG, scaling, PCA를 다시 맞췄다. 이 결합은 primary score 0.913785pca30-B3 단독을 넘었지만, ECE와 Brier는 여전히 나빠졌다. Table 3은 이 outer-test 평가 결과를 중심으로 정리한다.

setting primary score mean macro AUPRC mean ECE mean Brier
pca30-B3 0.902323 0.899463 0.023626 0.220972
whole-human scGPT
PCA400-linear
0.894952 0.892713 0.071926 0.315177
pca30-B3
+ whole-human scGPT PCA400-linear
중첩 검증 결합
0.913785 0.914734 0.090729 0.238089
Table 3. pca30-B3 기준, whole-human scGPT PCA400-linear 단독, 중첩 검증으로 고른 결합의 outer-test 성능 비교. Primary score와 macro AUPRC는 높을수록 좋다. ECE는 낮을수록 calibration이 좋고, Brier는 낮을수록 probability error가 작다.

세 결과의 역할은 분리해서 해석했다. pca30-B3는 calibration이 안정적인 기준이고, whole-human scGPT PCA400-linear는 단독으로는 기준보다 낮지만 보완적인 ranking signal을 제공했다. 중첩 검증으로 고른 결합은 primary score 기준으로 pca30-B3를 넘었지만, ECE와 Brier는 나빠졌다. 따라서 이 단계의 결론은 calibration이 안정적인 기준과 primary-score 결합 후보를 분리해서 보는 것이다.

이 결과는 결합 신호가 held-out outer test에서도 남는다는 점을 지지하지만, calibration까지 포함한 단일 최종 방법으로 승격시키기에는 부족하다.

남은 경계: MEBEMP-L <-> ERYP

남은 주요 오류 경계는 MEBEMP-L <-> ERYP였다. 이 pair는 완전히 분리 불가능한 경계는 아니었다. donor-heldout pairwise separability는 mean pair AP 0.9233, mean pair AUC 0.9177로 높았고, anchor 분포도 단순한 imbalance로 설명되지는 않았다.

다만 전체 score가 개선되는 동안에도 이 경계는 반복적으로 남았다. 결합은 핵심 boundary에서 개선 여지를 보였지만, 이 결과만으로 문제가 해결됐다고 볼 수는 없다. primary score와 일부 ranking은 좋아졌지만, calibration은 pca30-B3보다 나빠졌다.

결론

HSPC hierarchy benchmark는 low-anchor fine-state recovery 방법을 실험하기 위한 평가 환경으로 성립했다. 핵심은 데이터셋 하나를 고르는 것이 아니라, 가까운 progenitor state, donor-heldout split, low-anchor label budget, inductive prediction 조건을 함께 고정한 데 있었다. 이 조건에서는 단순 metadata shortcut만으로 결과가 설명되지 않았고, 같은 평가 조건 안에서 방법 간 성능 차이를 비교할 여지도 남아 있었다.

모델 적용에서 얻은 일반화 가능한 신호는 세 가지였다.

  1. 가까운 HSPC fine state를 구분할 때는 marker/prototype signal만으로 모든 개선 여지가 설명되지 않았고, 표현 공간에 따라 local neighborhood 기반 성능과 calibration이 함께 달라졌다.
  2. 표현학습 latent나 foundation-model embedding은 더 넓은 prior를 담고 있더라도, 그 공간이 바로 좋은 decision geometry가 되지는 않았다.
  3. foundation-model 신호는 단독 대체보다 기존 local geometry 기준이 놓치는 ranking 오류를 보완할 때 더 유효했다.

scGPT 신호가 완전히 무효였던 것은 아니다. Whole-human scGPT embedding을 fold-local PCA400으로 정리한 뒤 만든 linear probability는 단독으로는 기준보다 낮았지만, pca30-B3와 중첩 검증으로 결합했을 때 outer-test primary score를 높였다. 이 결과는 foundation model의 단독 대체보다, in-domain local geometry와 foundation-model ranking signal의 보완적 결합으로 해석한다.

따라서 이 단계의 결론은 단일 최종 방법이 아니라 역할 분리다. pca30-B3는 calibration이 안정적인 in-domain 기준으로 남았고, pca30-B3 + whole-human scGPT PCA400-linear는 중첩 검증 조건에서 primary score를 높인 결합 후보로 남았다. 다만 결합 이후 ECE와 Brier가 나빠졌기 때문에, 최종 결론은 “primary-score 기준 보완 신호는 확인됐고 calibrated reference는 pca30-B3”로 정리한다.

Appendix: 평가 조건

본문에는 결과 해석에 필요한 수치만 남겼다. 재현과 해석에 필요한 조건은 아래처럼 benchmark contract, 방법명, metric 정의로 나누어 정리한다.

항목 조건
대상 데이터 normal cHSPC 안의 hematopoietic precursor cell population
분류 대상 라벨 MEBEMP-L, CLP, ERYP, BEMP, GMP-L, NKTDP
평가 split donor-heldout. 같은 donor의 cell이 train과 test에 동시에 들어가지 않도록 분리했다.
라벨 조건 20 anchors per class를 primary budget으로 사용했다. Anchor는 학습 시 정답 라벨이 공개된 소수 cell을 뜻한다.
예측 조건 inductive-only. test cell은 학습 때 직접 보지 않고 예측한다.
Appendix Table 1. 본문 결과를 해석할 때 고정한 HSPC hierarchy 평가 조건.
이름 본문에서의 역할
anchor prior anchor label 비율만 사용하는 prior baseline이다. 초기 가능성 점검과 본 평가에서 비교 기준으로 사용했다.
nearest centroid anchor 평균 위치에 가장 가까운 라벨을 주는 prototype matching baseline이다.
cheap classifier 초기 가능성 점검에서 expression signal이 남아 있는지 확인한 간단한 classifier다.
cheap linear classifier 본 평가에서 marker/prototype signal만으로 충분한지 확인한 linear baseline이다.
pca30-B3 30차원 PCA 공간에서 inductive kNN label propagation을 적용한 in-domain 보정 기준이다.
whole-human scGPT PCA400-linear whole-human scGPT embedding을 fold-local PCA400으로 줄인 뒤 linear probability를 만든 보완 신호다.
nested-selected fusion pca30-B3 probability와 whole-human scGPT PCA400-linear probability를 결합하되, fusion weight를 outer train donor 안의 inner validation에서 고른 비교다.
Appendix Table 2. 본문과 표에서 반복해서 쓰는 방법명과 비교상 역할.
지표 또는 분석 해석
primary score 본문에서 방법 간 순위를 비교할 때 사용한 중심 성능 지표다.
macro AUPRC 각 class를 고르게 본 뒤 평균낸 ranking 성능이다. rare label이 섞인 설정에서 class별 성능을 함께 보기 위해 사용했다.
ECE prediction confidence와 실제 정답률의 정합성을 보는 calibration 지표다. Fusion은 primary score를 올렸지만 이 축에서는 불리했다.
Brier probability prediction error를 보는 지표다. 낮을수록 좋으며, 결합은 primary score 개선에도 이 값이 기준보다 나빠졌다.
MEBEMP-L <-> ERYP pair confusion 본문에서 반복적으로 남은 sibling-boundary 오류다. 이 경계는 완전히 뒤섞인 문제라기보다 표현과 ranking 신호가 더 필요한 개선 여지로 해석했다.
Appendix Table 3. 본문 수치를 읽을 때 필요한 metric과 caveat.

References

  1. Furer, N. et al. A reference model of circulating hematopoietic stem cells across the lifespan with applications to diagnostics. Nature Medicine 31, 2442-2451 (2025). DOI: 10.1038/s41591-025-03716-5
  2. Zhu, X. & Ghahramani, Z. Learning from labeled and unlabeled data with label propagation. Technical Report CMU-CALD-02-107 (2002). CMU report
  3. Guo, C. et al. On Calibration of Modern Neural Networks. Proceedings of Machine Learning Research 70, 1321-1330 (2017). PMLR
  4. Lopez, R. et al. Deep generative modeling for single-cell transcriptomics. Nature Methods 15, 1053-1058 (2018). DOI: 10.1038/s41592-018-0229-2
  5. Cui, H. et al. scGPT: toward building a foundation model for single-cell multi-omics using generative AI. Nature Methods 21, 1470-1480 (2024). DOI: 10.1038/s41592-024-02201-0

Experiment Resources

Citation

이 글을 인용할 때는 아래 형식을 사용할 수 있다.

Ilho Ahn, "HSPC hierarchy low-anchor benchmark: pca30-B3와 nested scGPT fusion", Mini Research, Apr 21, 2026.

또는 BibTeX 형식으로는 다음처럼 적을 수 있다.

@article{ahn2026hspchierarchylineage,
  author = {Ilho Ahn},
  title = {HSPC hierarchy low-anchor benchmark: pca30-B3와 nested scGPT fusion},
  journal = {Mini Research},
  year = {2026},
  month = apr,
  url = {https://muted-color.github.io/research/2026/04/21/hspc-hierarchy-benchmark-lineage/}
}