Motivación: las propiedades de unión versátiles de los anticuerpos los han convertido en una clase extremadamente importante de bioterapéutica. Sin embargo, el desarrollo de anticuerpos terapéuticos es una tarea compleja, costosa y que requiere mucho tiempo, con el anticuerpo final que necesita no solo tener una unión fuerte y específica, sino también verse mínimamente afectada por cualquier problema de desarrollo. El éxito de los modelos de lenguaje basados en transformadores en el espacio de secuencia de proteínas y la disponibilidad de grandes cantidades de secuencias de anticuerpos, ha llevado al desarrollo de muchos modelos de lenguaje específicos de anticuerpos para ayudar a guiar el descubrimiento y el diseño de anticuerpos. La diversidad de anticuerpos surge principalmente de la recombinación V (D) J, mutaciones dentro de los CDRS y/o de un pequeño número de mutaciones lejos de la línea germinal fuera de los CDR. En consecuencia, una porción significativa del dominio variable de todas las secuencias de anticuerpos naturales sigue siendo la línea germinal. Esto afecta el pre-entrenamiento de modelos de lenguaje específicos de anticuerpos, donde esta faceta de los datos de secuencia introduce un sesgo prevaleciente hacia los residuos de la línea germinal. Esto plantea un desafío, ya que las mutaciones lejos de la línea germinal a menudo son vitales para generar unión específica y potente a un objetivo, lo que significa que los modelos de lenguaje deben poder sugerir mutaciones clave lejos de la línea germinal.
Resultados: En este estudio, exploramos las implicaciones del sesgo de la línea germinal, examinando su impacto en los modelos de lenguaje de proteínas generales y de anticuerpos específicos. Desarrollamos y entrenamos una serie de nuevos modelos de lenguaje específicos de anticuerpos optimizados para predecir los residuos no germinales. Luego comparamos nuestro modelo final, Ablang-2, con modelos actuales y mostramos cómo sugiere un conjunto diverso de mutaciones válidas con alta probabilidad acumulativa. Ablang-2 está entrenado en datos no apareados y emparejados, y está disponible gratuitamente (https://github.com/oxpig/ablang2.git).
Disponibilidad e implementación: Ablang2 es un paquete de Python disponible en https://github.com/oxpig/ablang2.git.
Tcrlang-Paired: la arquitectura ABLANG2 se puede inicializar con pesos modelo entrenados en secuencias TCR emparejadas. Este modelo se puede usar de manera idéntica a ABLANG2 en secuencias TCR. La única funcionalidad faltante es la falta del comando alinearse. La generación de codificaciones de secuencia y residuos, así como el enmascaramiento, son todos los mismos. Para obtener un ejemplo, consulte el cuaderno.
Ablang está disponible gratuitamente y se puede instalar con PIP.
pip install ablang2o directamente de Github.
pip install -U git+https://github.com/oxpig/AbLang2.gitNB: Si desea que su salida devuelta se alinee (es decir, use el argumento "Alinee = True"), debe instalar manualmente Pandas y una versión de ANARCI en el mismo entorno. Anarci también se puede instalar usando BioConda; Sin embargo, esta versión es mantenida por un tercero.
conda install -c bioconda anarciABLANG2 se puede usar de diferentes maneras y para una variedad de cascos. Los bloques de construcción centrales son el tokenizer, Abrep y 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)
Hemos construido un envoltorio para casos de uso específicos que se pueden explorar a través de un siguiente cuaderno de Jupyter.
@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}
}