Motivation: Il a été démontré que les modèles généraux du langage des protéines résument la sémantique des séquences protéiques en représentations qui sont utiles pour les méthodes prédictives de pointe. Cependant, pour les problèmes spécifiques aux anticorps, tels que la restauration des résidus perdus en raison d'erreurs de séquençage, un modèle formé uniquement sur les anticorps peut être plus puissant. Les anticorps sont l'un des rares types de protéines où le volume de données de séquence nécessaire pour de tels modèles de langage est disponible, par exemple dans la base de données d'espace d'anticorps observé (OEA).
Résultats: Ici, nous introduisons Ablang, un modèle de langue formé sur les séquences d'anticorps dans la base de données OAS. Nous démontrons la puissance d'Ablang en l'utilisant pour restaurer les résidus manquants dans les données de séquence d'anticorps, un problème clé avec le séquençage du répertoire des récepteurs des cellules B, par exemple, plus de 40% des séquences OAS manquent les 15 premiers acides aminés. Ablang restaure mieux les résidants manquants des séquences d'anticorps que l'utilisation de germinasines IMGT ou le modèle général du langage protéique ESM-1B. De plus, Ablang ne nécessite pas de connaissance de la lignée germinale de l'anticorps et est sept fois plus rapide que ESM-1B.
Disponibilité et implémentation: Ablang est un package Python disponible sur https://github.com/oxpig/ablang.
Ablang est disponible gratuitement et peut être installé avec PIP.
pip install ablangou directement à partir de github.
pip install -U git+https://github.com/oxpig/AbLang.gitNB: Si vous utilisez l'argument "align = true", vous devez installer manuellement une version d'Anarci dans le même environnement. Anarci peut également être installé à l'aide de Bioconda; Cependant, cette version est maintenue par un tiers.
conda install -c bioconda anarciUn cahier Jupyter montrant les différents cas d'utilisation d'Ablang et de ses éléments constitutifs peut être trouvé ici.
Actuellement, Ablang peut être utilisé pour générer trois représentations / codages différents pour les séquences d'anticorps.
Res-codings: Ces codages sont de 768 valeurs pour chaque résidu, utiles pour les prédictions spécifiques aux résidus.
CODINGS SEQ: Ces codages sont de 768 valeurs pour chaque séquence, utiles pour les prédictions spécifiques de séquence. La même longueur d'encodages pour chaque séquence signifie que ces encodages suppriment également la nécessité d'aligner les séquences d'anticorps.
Res-Likelihains: Ces codages sont la probabilité de chaque acide aminé à chaque position dans une séquence d'anticorps donnée, utile pour explorer les mutations possibles. L'ordre des acides aminés suit le vocabulaire Ablang.
Ces représentations peuvent être utilisées pour une pléthore d'applications de conception d'anticorps. Par exemple, nous avons utilisé les réponses à l'ablang pour restaurer les résidus manquants dans les séquences d'anticorps en raison soit des erreurs de séquençage, telles que des bases ambiguës, soit les limites des techniques de séquençage utilisées.
La restauration des séquences d'anticorps peut être effectuée en utilisant le mode "Restaurer" comme indiqué ci-dessous.
import ablang
heavy_ablang = ablang.pretrained("heavy") # Use "light" if you are working with light chains
heavy_ablang.freeze()
seqs = [
'EV*LVESGPGLVQPGKSLRLSCVASGFTFSGYGMHWVRQAPGKGLEWIALIIYDESNKYYADSVKGRFTISRDNSKNTLYLQMSSLRAEDTAVFYCAKVKFYDPTAPNDYWGQGTLVTVSS',
'*************PGKSLRLSCVASGFTFSGYGMHWVRQAPGKGLEWIALIIYDESNK*YADSVKGRFTISRDNSKNTLYLQMSSLRAEDTAVFYCAKVKFYDPTAPNDYWGQGTL*****',
]
heavy_ablang(seqs, mode='restore')
La sortie de ce qui précède est visible ci-dessous.
array(['EVQLVESGPGLVQPGKSLRLSCVASGFTFSGYGMHWVRQAPGKGLEWIALIIYDESNKYYADSVKGRFTISRDNSKNTLYLQMSSLRAEDTAVFYCAKVKFYDPTAPNDYWGQGTLVTVSS',
'QVQLVESGGGVVQPGKSLRLSCVASGFTFSGYGMHWVRQAPGKGLEWIALIIYDESNKYYADSVKGRFTISRDNSKNTLYLQMSSLRAEDTAVFYCAKVKFYDPTAPNDYWGQGTLVTVSS'],
dtype='<U121')Pour la restauration d'un nombre inconnu de résidus manquants aux extrémités des séquences d'anticorps, le paramètre "Aligner" peut être défini sur True.
seqs = [
'EV*LVESGPGLVQPGKSLRLSCVASGFTFSGYGMHWVRQAPGKGLEWIALIIYDESNKYYADSVKGRFTISRDNSKNTLYLQMSSLRAEDTAVFYCAKVKFYDPTAPNDYWGQGTLVTVSS',
'PGKSLRLSCVASGFTFSGYGMHWVRQAPGKGLEWIALIIYDESNK*YADSVKGRFTISRDNSKNTLYLQMSSLRAEDTAVFYCAKVKFYDPTAPNDYWGQGTL',
]
heavy_ablang(seqs, mode='restore', align=True)
La sortie de ce qui précède est visible ci-dessous.
array(['EVQLVESGPGLVQPGKSLRLSCVASGFTFSGYGMHWVRQAPGKGLEWIALIIYDESNKYYADSVKGRFTISRDNSKNTLYLQMSSLRAEDTAVFYCAKVKFYDPTAPNDYWGQGTLVTVSS',
'QVQLVESGGGVVQPGKSLRLSCVASGFTFSGYGMHWVRQAPGKGLEWIALIIYDESNKYYADSVKGRFTISRDNSKNTLYLQMSSLRAEDTAVFYCAKVKFYDPTAPNDYWGQGTLVTVSS'],
dtype='<U121') @article{Olsen2022,
title={AbLang: An antibody language model for completing antibody sequences},
author={Tobias H. Olsen, Iain H. Moal and Charlotte M. Deane},
journal={bioRxiv},
doi={https://doi.org/10.1101/2022.01.20.477061},
year={2022}
}