From 426bbddf9532bfe1722a11b248ac9552248c80ac Mon Sep 17 00:00:00 2001 From: root Date: Fri, 19 Jan 2024 16:30:55 +0800 Subject: [PATCH] use sequence_base.py --- tcr_pmhc_complexes.py | 26 +------------------------- 1 file changed, 1 insertion(+), 25 deletions(-) diff --git a/tcr_pmhc_complexes.py b/tcr_pmhc_complexes.py index fd88b23..5950561 100644 --- a/tcr_pmhc_complexes.py +++ b/tcr_pmhc_complexes.py @@ -12,34 +12,10 @@ from Bio.Data import IUPACData from pydantic import BaseModel, Field, FilePath, field_validator from typing import Optional, Dict, List, Any, Union from pathlib import Path - +from sequence_base import ProteinSequence, BaseProteinSequence # 使用 BioPython 导入氨基酸缩写 AMINO_ACIDS = set(IUPACData.protein_letters) -class BaseProteinSequence(BaseModel): - sequence: str - - @classmethod - def validate_amino_acids(cls, sequence: str) -> str: - if not set(sequence).issubset(AMINO_ACIDS): - raise ValueError('Sequence contains invalid amino acids, not conforming to IUPAC standards') - return sequence - -class ProteinSequence(BaseModel): - label_asym_id: str - auth_asym_id: str - sequence: str - is_id_consistent: bool = Field(default=False) - - @property - def is_id_consistent(self) -> bool: - return self.label_asym_id == self.auth_asym_id - - def display_chain_id(self) -> str: - if not self.is_id_consistent: - return f"{self.label_asym_id} [auth {self.auth_asym_id}]" - return self.label_asym_id - class ProteinComplex(BaseModel): pdb_id: str tcr_alpha: Optional[ProteinSequence] = None