Motivação: As propriedades de ligação versáteis dos anticorpos os tornaram uma classe extremamente importante de bioterapêutica. No entanto, o desenvolvimento terapêutico de anticorpos é uma tarefa complexa, cara e demorada, com o anticorpo final precisando não apenas ter uma ligação forte e específica, mas também ser minimamente impactada por quaisquer problemas de desenvolvimento. O sucesso dos modelos de idiomas baseados em transformadores no espaço de sequência de proteínas e a disponibilidade de vastas quantidades de sequências de anticorpos, levaram ao desenvolvimento de muitos modelos de linguagem específicos de anticorpos para ajudar a orientar a descoberta e o design de anticorpos. A diversidade de anticorpos surge principalmente de V (d) J recombinação, mutações dentro dos CDRs e/ou de um pequeno número de mutações longe da linha germinativa fora dos CDRs. Consequentemente, uma parcela significativa do domínio variável de todas as seqüências naturais de anticorpos permanece na linha germinativa. Isso afeta o pré-treinamento dos modelos de linguagem específicos de anticorpos, onde essa faceta dos dados de sequência introduz um viés predominante em relação aos resíduos da linha germinativa. Isso representa um desafio, à medida que as mutações da linha germinativa são frequentemente vitais para gerar ligação específica e potente a um alvo, o que significa que os modelos de idiomas precisam ser capazes de sugerir mutações -chave para longe da linha germinativa.
Resultados: Neste estudo, exploramos as implicações do viés da linha germinativa, examinando seu impacto nos modelos de linguagem específicos de proteína geral e anticorpo. Desenvolvemos e treinamos uma série de novos modelos de linguagem específicos de anticorpos otimizados para prever resíduos não-germinativos. Em seguida, comparamos nosso modelo final, Ablang-2, com modelos atuais e mostramos como ele sugere um conjunto diversificado de mutações válidas com alta probabilidade cumulativa. O Ablang-2 é treinado em dados não pareados e emparelhados e está disponível gratuitamente (https://github.com/oxpig/ablang2.git).
Disponibilidade e implementação: o Ablang2 é um pacote Python disponível em https://github.com/oxpig/ablang2.git.
Emparelhado com tcrlang: A arquitetura do Ablang2 pode ser inicializada com pesos do modelo treinados em sequências de TCR emparelhadas. Este modelo pode ser usado de maneira idêntica ao Ablang2 nas seqüências de TCR. A única funcionalidade ausente é a falta do comando alinhado. A geração de codificações de sequência e resíduo, bem como o mascaramento são iguais. Para um exemplo, consulte o caderno.
O Ablang está disponível gratuitamente e pode ser instalado com PIP.
pip install ablang2ou diretamente do github.
pip install -U git+https://github.com/oxpig/AbLang2.gitNB: Se você deseja alinhar sua saída retornada (ou seja, use o argumento "align = true"), precisa instalar manualmente os pandas e uma versão do ANARCI no mesmo ambiente. A ANARCI também pode ser instalada usando Bioconda; No entanto, esta versão é mantida por terceiros.
conda install -c bioconda anarciO Ablang2 pode ser usado de maneiras diferentes e para uma variedade de USECASES. Os blocos de construção centrais são o tokenizer, o Abep e o 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)
Construímos um invólucro para redes de usos específicos que podem ser explorados por meio de um notebook Jupyter a seguir.
@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}
}