Skip to main content

abcat

abcatANARCII를 핵심 의존성으로 활용하여 항체 Heavy chain 및 Light chain 서열의 Variable Domain(VH, VL) 및 Constant Domain(CH1, CH2, CH3, CL)을 통합 분석하는 Python CLI/라이브러리 도구입니다.

Variable Domain에 대해서는 ANARCII를 통한 번호 부여(IMGT, Kabat, Chothia 등) 및 CDR1, CDR2, CDR3 루프 분리를 수행하고, Constant Domain에 대해서는 정밀 서열 비교를 통해 Isotype, Subclass, Isoallotype, Allotype을 판정합니다.

Key Features

  1. Variable Domain (VH / VL) 분석 (ANARCII 기반):

    • ANARCII 통합으로 정확한 Variable Domain 경계 인식 및 IMGT/Kabat/Chothia/AHo 번호 부여.
    • CDR1, CDR2, CDR3 및 Framework (FR1, FR2, FR3, FR4) 구간 서열 및 길이 자동 추출.
    • Heavy chain(VH), Light chain(VK, VL) 자동 구분 및 confidence score 제공.
  2. Constant Domain 분석 (Isotype, Subclass, Isoallotype, Allotype):

    • Constant Region (CH1, Hinge, CH2, CH3 / CL) 자동 도출.
    • Isotype 판정: Heavy chain (IgG, IgA, IgM, IgE, IgD), Light chain (Kappa, Lambda).
    • Subclass 판정: IgG1, IgG2, IgG3, IgG4, IgA1, IgA2, IGKC, IGLC1~IGLC7.
    • Allotype 및 Isoallotype 판정: IMGT 다형성 위치(Polymorphic positions) 분석을 통한 알로타입 마커 추출.
      • Heavy chain: G1m1, G1m2, G1m3, G1m17, G1m27, G1m28, G2m.., G2m23, G3m5G3m28, nG1m1, nG1m17, nG3m5, nG3m11, nG3m21, nG4m(a), nG4m(b), IGHE*01IGHE*04 등.
      • Light chain: Km1, Km1,2, Km3 등.
  3. CLI 및 Python API 지원:

    • 단일 서열 및 FASTA 배치 파일 분석 지원.
    • CSV, JSON, 콘솔 테이블 형태의 풍부한 리포팅.

Tech Stack

  • Python: 3.14+
  • Dependency Management: uv
  • V-Domain Analysis: anarcii (https://github.com/oxpig/ANARCII)
  • C-Domain Alignment & Sequence Comparison: biopython
  • Data Models: pydantic
  • CLI Framework: typer / rich
  • Testing & Quality: pytest, ruff, mypy

Architecture & Workflow

[Input Amino Acid Sequence (Full Heavy/Light Chain or V+C)]
                     │
                     ▼
       ┌──────────────────────────┐
       │     ANARCII Wrapper      │  (V-domain Numbering & Classification)
       └─────────────┬────────────┘
                     │
         ┌───────────┴───────────┐
         ▼                       ▼
┌──────────────────┐    ┌───────────────────────────────────┐
│ V-Domain Engine  │    │      Constant Domain Engine       │
│                  │    │                                   │
│ - VH / VL Check  │    │ - Constant Region Extraction      │
│ - IMGT Numbering │    │ - C-Gene Profile Alignment        │
│ - CDR1/2/3 Bounds│    │ - Isotype & Subclass Matching     │
│ - FR1/2/3/4      │    │ - Allotype/Isoallotype Fingerprint│
└────────┬─────────┘    └─────────────────┬─────────────────┘
         │                                │
         └────────────────┬───────────────┘
                          ▼
            ┌──────────────────────────┐
            │ Unified Result (JSON/CSV)│
            └──────────────────────────┘

Key Allotype Fingerprints (Reference)

Subclass / Chain Marker / Allotype IMGT / EU Position Key Polymorphisms
IgG1 (CH1) G1m17 vs G1m3 CH1 IMGT 103, 120 (EU 199, 214) K214 = G1m17, I199/R214 = G1m3, R214 = nG1m17
IgG1 (CH3) G1m1 vs nG1m1 CH3 IMGT 12, 14 (EU 356, 358) D356/L358 = G1m1, E356/M358 = nG1m1
IgG1 (CH3) G1m2 CH3 IMGT 110 (EU 431) G431 = G1m2
IgG1 (CH3) G1m27 CH3 IMGT 101 (EU 422) I422 = G1m27
IgG1 (CH3) G1m28 CH3 IMGT 115, 116 (EU 435, 436) R435/Y436 = G1m28
IgG2 (CH2) G2m23 vs G2m.. CH2 EU 282 M282 = G2m23, V282 = G2m..
IgG3 (CH3) G3m5 vs nG3m5 CH3 EU 435, 436 R435/F436 = G3m5, H435/Y436 = nG3m5
IgG3 (CH3) G3m26 CH3 EU 436 R436 = G3m26
IgG4 (CH2) nG4m(a) vs nG4m(b) CH2 EU 309 L309 = nG4m(a), V309 = nG4m(b)
IgE (CH1, CH2) IGHE*01~IGHE*04 CH1 IMGT 41, CH2 IMGT 41 C141/W246 (*01), W141/W246 (*02), C141/L246 (*03)
Kappa (CL) Km1 vs Km1,2 vs Km3 CL IMGT 45, 83 (EU 153, 191) V153/L191 = Km1, A153/L191 = Km1,2, A153/V191 = Km3

Note on Engineered Antibodies (e.g., Trastuzumab): Trastuzumab의 Heavy Chain Fc는 자연형 G1m1,17 형태가 아닌, CH3 영역이 E356-M358로 엔지니어링되어 G1m1 에피토프가 제거된 비정상(allotypic / engineered) 형태입니다. 따라서 판정 시스템은 G1m17 알로타입만 감지하며(G1m17 only), CH3의 E356/M358 서열은 nG1m1 isoallotype으로 분류됩니다.

Installation

1. From PyPI (Recommended)

PyPI에서 abcat 패키지를 직접 설치하여 바로 사용하실 수 있습니다:

uv pip install abcat

2. Development Setup (using uv)

소스 코드 개발 및 기여를 위한 개발 버전 구축 시 uv를 사용합니다:

# 저장소 클론
git clone https://github.com/user/abcat.git
cd abcat

# 개발 의존성을 포함하여 가상환경 동기화
uv sync --extra dev

# 테스트 실행 및 개발 CLI 실행
uv run pytest
uv run abcat analyze --sequence EVQLVES...

CLI & Python API Usage Example

1. CLI Examples

# 기본 분석 (IMGT scheme)
abcat analyze --sequence EVQLVESGGGLVQPGGSLRLSCAASGFTFSDHYMDWVRQAPGKGLEWVGRIRSKANSYATAYAASVKGRFTISRDDSKNTLYLQMNSLRAEDTAVYYCARFDAYWGQGTLVTVSSASTKGPSVFPLAPSSKSTSGGTAALGCLVKDYFPEPVTVSWNSGALTSGVHTFPAVLQSSGLYSLSSVVTVPSSSLGTQTYICNVNHKPSNTKVDKKVEPKSCDKTHTCPPCPAPELLGGPSVFLFPPKPKDTLMISRTPEVTCVVVDVSHEDPEVKFNWYVDGVEVHNAKTKPREEQYNSTYRVVSVLTVLHQDWLNGKEYKCKVSNKALPAPIEKTISKAKGQPREPQVYTLPPSRDELTKNQVSLTCLVKGFYPSDIAVEWESNGQPENNYKTTPPVLDSDGSFFLYSKLTVDKSRWQQGNVFSCSVMHEALHNHYTQKSLSLSPGK

# 줄바꿈이 포함된 서열 분석 (큰따옴표 "..." 로 감싸서 입력)
abcat analyze --sequence "EVQLLESGGGLVQPGGSLRLSCAASGIDLSTYAMGWVRQAPGKGLEWVGLIHRSGRTYYA
TWAKGRFTISKDSSKNTLYLQMNSLRAEDTAVYYCTRSYPDYSATASIWGQGTTVTVSSA
STKGPSVFPLAPSSKSTSGGTAALGCLVKDYFPEPVTVSWNSGALTSGVHTFPAVLQSSG
LYSLSSVVTVPSSSLGTQTYICNVNHKPSNTKVDKKVEPKSCDKTHTCPPCPAPELLGGP
SVFLFPPKPKDTLMISRTPEVTCVVVDVSHEDPEVKFNWYVDGVEVHNAKTKPREEQYNS
TYRVVSVLTVLHQDWLNGKEYKCKVSNKALPAPIEKTISKAKGQPREPQVYTLPPSREEM
TKNQVSLTCLVKGFYPSDIAVEWESNGQPENNYKTTPPVLDSDGSFFLYSKLTVDKSRWQ
QGNVFSCSVMHEALHNHYTQKSLSLSPGK"

# 넘버링 체계(Scheme) 변경 예제 (imgt, kabat, martin, chothia, aho 지원)
abcat analyze --sequence EVQLVES... --scheme kabat
abcat vdomain --sequence EVQLVES... --scheme martin
abcat vdomain --sequence EVQLVES... --scheme chothia
abcat vdomain --sequence EVQLVES... --scheme aho

# FASTA 배치 파일 분석 및 CSV 저장
abcat batch --input examples/full_antibodies.fasta --output results.csv --format csv --scheme imgt

2. Python API Example

from abcat import analyze_chain, analyze_vdomain

seq = "EVQLVESGGGLVQPGGSLRLSCAASGFTFSDHYMDWVRQAPGKGLEWVGRIRSKANSYATAYAASVKGRFTISRDDSKNTLYLQMNSLRAEDTAVYYCARFDAYWGQGTLVTVSSASTKGPSVFPLAPSSKSTSGGTAALGCLVKDYFPEPVTVSWNSGALTSGVHTFPAVLQSSGLYSLSSVVTVPSSSLGTQTYICNVNHKPSNTKVDKKVEPKSCDKTHTCPPCPAPELLGGPSVFLFPPKPKDTLMISRTPEVTCVVVDVSHEDPEVKFNWYVDGVEVHNAKTKPREEQYNSTYRVVSVLTVLHQDWLNGKEYKCKVSNKALPAPIEKTISKAKGQPREPQVYTLPPSRDELTKNQVSLTCLVKGFYPSDIAVEWESNGQPENNYKTTPPVLDSDGSFFLYSKLTVDKSRWQQGNVFSCSVMHEALHNHYTQKSLSLSPGK"

# Martin scheme으로 분석
result_martin = analyze_chain(seq, scheme="martin")
print("Scheme:", result_martin.v_analysis.scheme)
print("CDR1:", result_martin.v_analysis.cdrs["CDR1"].sequence)
print("CDR2:", result_martin.v_analysis.cdrs["CDR2"].sequence)
print("CDR3:", result_martin.v_analysis.cdrs["CDR3"].sequence)

# Kabat scheme으로 V-Domain만 분석
v_kabat = analyze_vdomain(seq, scheme="kabat")
print("Kabat CDR3:", v_kabat.cdrs["CDR3"].sequence)

PyPI Deployment (GitHub Actions)

본 프로젝트는 GitHub Release 발급 시 uv build를 실행하고, PyPI Trusted Publisher (OIDC)를 통해 최신 버전을 PyPI에 자동 게시하는 GitHub Action 워크플로우를 제공합니다.

License

MIT

References

  • GM Allotypes Reference: Currently testable (serologically) GM allotypes and amino acid substitutions. J Immunol. 2025 Dec 1;214(12):3181–3187. doi: 10.1093/jimmun/vkaf190.
  • Allelic Diversity & Isoallotypes Reference: Warrender AK, Kelton W. Beyond Allotypes: The Influence of Allelic Diversity in Antibody Constant Domains. Front Immunol. 2020 Aug 18;11:2016. doi: 10.3389/fimmu.2020.02016. PMID: 32973808; PMCID: PMC7461860.
  • Lefranc MP, Lefranc G. Using IMGT unique numbering for IG allotypes and Fc-engineered variants of effector properties and half-life of therapeutic antibodies. Immunol Rev. 2024 Nov;328(1):473-506. doi: 10.1111/imr.13399. Epub 2024 Oct 4. PMID: 39367563; PMCID: PMC11659927.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

abcat-0.1.2.tar.gz (15.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

abcat-0.1.2-py3-none-any.whl (17.7 kB view details)

Uploaded Python 3

File details

Details for the file abcat-0.1.2.tar.gz.

File metadata

  • Download URL: abcat-0.1.2.tar.gz
  • Upload date:
  • Size: 15.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for abcat-0.1.2.tar.gz
Algorithm Hash digest
SHA256 56f1e697c96e31623437bd756d5c16b3828efc803c3f2682615a55c8c377cb9e
MD5 a28dc5a1e62d83eaec6cfcbb39c82876
BLAKE2b-256 dab3b1e12aec17a014cc76cba4415b8c03f31a863acf15c7d6d7735be2c83b16

See more details on using hashes here.

Provenance

The following attestation bundles were made for abcat-0.1.2.tar.gz:

Publisher: publish.yml on partrita/abcat

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file abcat-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: abcat-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 17.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for abcat-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 d34880b71afe9fc663819f2e0983a9573de5d56175b416db835d4100aceecf8f
MD5 f7a93b0977c9dd8e4ecf82dbd7e3e1ce
BLAKE2b-256 b839c87245c713fc03c60903036a4cbd489e30fc2073d4944809dfdc51df937b

See more details on using hashes here.

Provenance

The following attestation bundles were made for abcat-0.1.2-py3-none-any.whl:

Publisher: publish.yml on partrita/abcat

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.1.3

2 files

This release

0.1.2 This release

2 files

0.1.1

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page