동기 부여 : 항체의 다목적 결합 특성은 그들을 매우 중요한 종류의 생물 치료제로 만들었습니다. 그러나, 치료 항체 발달은 복잡하고 비싸고 시간이 많이 걸리는 과제이며, 최종 항체는 강력하고 구체적인 결합을 가질뿐만 아니라 개발 가능성 문제에 의해 최소한으로 영향을 받는다. 단백질 서열 공간에서 변압기 기반 언어 모델의 성공과 방대한 양의 항체 서열의 이용 가능성은 항체 발견 및 설계를 안내하기 위해 많은 항체-특이 적 언어 모델의 개발로 이어졌다. 항체 다양성은 주로 V (D) 재조합, CDR 내의 돌연변이 및/또는 CDR 외부의 생식선으로부터 떨어진 소수의 돌연변이로부터 발생한다. 결과적으로, 모든 천연 항체 서열의 가변 도메인의 상당 부분은 생식선으로 남아있다. 이것은 항체-특이 적 언어 모델의 사전 훈련에 영향을 미치며, 서열 데이터 의이 측면은 생식선 잔기에 대한 우세한 편향을 도입한다. 생식선으로부터 떨어진 돌연변이가 목표에 대한 특이적이고 강력한 결합을 생성하는 데 종종 중요하기 때문에 이것은 언어 모델이 생식선에서 멀리 떨어진 주요 돌연변이를 제안 할 수 있어야한다는 것을 의미합니다.
결과 : 이 연구에서 우리는 생식선 바이어스의 의미를 탐구하여 일반 단백질 및 항체-특이 적 언어 모델에 미치는 영향을 조사합니다. 우리는 비 게름 라인 잔류 물을 예측하기 위해 최적화 된 일련의 새로운 항체-특이 적 언어 모델을 개발하고 훈련시킨다. 그런 다음 최종 모델 인 Ablang-2를 현재 모델과 비교하고 누적 확률이 높은 다양한 유효한 돌연변이 세트를 어떻게 제안하는지 보여줍니다. Ablang-2는 짝을 이루지 않은 데이터와 쌍을 이루는 데이터에 대해 교육을 받았으며 자유롭게 사용할 수 있습니다 (https://github.com/oxpig/ablang2.git).
가용성 및 구현 : Ablang2는 https://github.com/oxpig/ablang2.git에서 사용할 수있는 Python 패키지입니다.
tcrlang-paired : ablang2 아키텍처는 쌍을 이루는 TCR 시퀀스에서 훈련 된 모델 가중치로 초기화 될 수 있습니다. 이 모델은 TCR 시퀀스에서 ABLANG2와 동일한 방법으로 사용할 수 있습니다. 누락 된 기능은 정렬 명령이 부족하다는 것입니다. 시퀀스 및 잔류 물 인코딩 및 마스킹의 생성은 모두 동일합니다. 예를 들어 노트북을 참조하십시오.
Ablang은 자유롭게 사용할 수 있으며 PIP와 함께 설치할 수 있습니다.
pip install ablang2또는 Github에서 직접.
pip install -U git+https://github.com/oxpig/AbLang2.gitNB : 반환 된 출력을 정렬하려면 (즉, "Align = True"인수를 사용하려면 동일한 환경에 팬더 와 Anarci 버전을 수동으로 설치해야합니다. anarci는 Bioconda를 사용하여 설치할 수도 있습니다. 그러나이 버전은 제 3자가 유지 관리합니다.
conda install -c bioconda anarciAblang2는 다양한 방식으로 그리고 다양한 usecase에 사용될 수 있습니다. 중앙 빌딩 블록은 토큰 화기, Abrep 및 Ablang입니다.
import ablang2
# Download and initialise the model
ablang = ablang2.pretrained(model_to_use='ablang2-paired', random_init=False, ncpu=1, device='cpu')
seq = [
'EVQLLESGGEVKKPGASVKVSCRASGYTFRNYGLTWVRQAPGQGLEWMGWISAYNGNTNYAQKFQGRVTLTTDTSTSTAYMELRSLRSDDTAVYFCARDVPGHGAAFMDVWGTGTTVTVSS', # The heavy chain (VH) needs to be the first element
'DIQLTQSPLSLPVTLGQPASISCRSSQSLEASDTNIYLSWFQQRPGQSPRRLIYKISNRDSGVPDRFSGSGSGTHFTLRISRVEADDVAVYYCMQGTHWPPAFGQGTKVDIK' # The light chain (VL) needs to be the second element
]
# Tokenize input sequences
seqs = [f"{seq[0]}|{seq[1]}"] # Input needs to be a list, with | used to separated the VH and VL
tokenized_seq = ablang.tokenizer(seqs, pad=True, w_extra_tkns=False, device="cpu")
# Generate rescodings
with torch.no_grad():
rescoding = ablang.AbRep(tokenized_seq).last_hidden_states
# Generate logits/likelihoods
with torch.no_grad():
likelihoods = ablang.AbLang(tokenized_seq)
우리는 다음 Jupyter 노트북을 통해 탐색 할 수있는 특정 usecases 용 래퍼를 만들었습니다.
@article{Olsen2024,
title={Addressing the antibody germline bias and its effect on language models for improved antibody design},
author={Tobias H. Olsen, Iain H. Moal and Charlotte M. Deane},
journal={bioRxiv},
doi={https://doi.org/10.1101/2024.02.02.578678},
year={2024}
}