La mise en œuvre du papier Du, Z., Ding, X., Xu, Y., & Li, Y. (2023) .Unidl4biopep: une architecture d'apprentissage en profondeur universel pour la classification binaire en bioactivité peptidique. Briefings en bioinformatique, BBAD135. serveur Web disponible sur server_link
Mises à jour: Xingjian Ding Libérez la version Pytorch d'Unidl4BiOpep-ASL pour l'ensemble de données déséquilibré. Cette méthode a utilisé une autre fonction de perte (fonction de perte asymétrique, version modifiée de la fonction de perte focale), qui a la capacité de mener des côtés positifs et négatifs en même temps.
2024-11-21 Mises à jour: tous les ensembles de données utilisés dans cette étude sont téléchargés dans les dossiers correspondants et l'étiquette 1 signifie que le positif dans ces propriétés (par exemple: 1 est toxique, 0 est non toxique; 1 est allergène et 0 est non allergène; De nos références, s'il n'y a qu'un seul ensemble de données à l'intérieur du dossier, cela signifie que la division de l'ensemble de données n'a pas été fournie par la référence d'origine. Au-delà des 20 ensembles de données d'origine, nous ajoutons deux autres ensembles de données (protéines allergènes et peptides et peptides pénétrants cellulaires), les deux modèles sont également développés avec l'architecture de modèle Unidl4BiOpep et disponibles sur notre serveur Web.
Mises à jour 2024-01-06: Nous ajoutons les informations de protabilité aux résultats de prédiction, vous obtiendrez à la fois actif et non actif et une protabilité (0,98) pour indiquer la probabilité que notre modèle prédit. Vous permettez d'être plus facile d'accéder aux résultats du modèle. (Veuillez télécharger votre fichier, puis faire la prédiction, vous obtiendrez les nouvelles fonctionnalités)!
2023-07-04 Mises à jour: nous redéignons le fichier de modèle (Pretrained_Model_Usage_Template.Ipynb). Maintenant, il peut utiliser automatiquement votre ressource GPU pour l'intégration des peptides et l'accélération de prédiction du modèle. Merci pour tous les commentaires de ces projets.
2023-05-07 Mises à jour: nous ajoutons un nouveau modèle conçu (gpu_unidl4biopep_template_for_other_bioactivity.ipynb). Il peut reconnaître automatiquement votre GPU si disponible et utiliser votre GPU pour les incorporations de peptides et l'accélération d'ajustement du modèle. Ajoutez également une section pour la transformation du fichier fasta.format en fichiers CSV.
Mises à jour: nous ajoutons une version avancée (UNIDL4BIOPEP-FL) en utilisant une fonction de perte focale pour un ensemble de données déséquilibré et un modèle pour votre utilisation (UNIDL4BIOPEP_FL_TEMPLATE_FOR_OOTH_BIOATIVITY.IPYNB).
Utilisation de UNIDL4BIOPEP-FL pour l'ensemble de données déséquilibré : veuillez sélectionner votre groupe minoritaire comme groupe positif (étiqueté 1) et le groupe majoritaire comme groupe négatif (étiqueté comme 0); Suggestions de tunning hyperparamètre: gamma (0,1,2,3,4,5) et pos_weight (, 0,1,0.2, ... 1.0) ou pas besoin de spécifier pos_weight.
AVIS: Le modèle peut également être utilisé pour la classification multiclasse (nous adoptons la fonction softmax au dernier couche de sortie), vous pouvez donc simplement modifier les numéros de nœud de couche de sortie. (N'hésitez pas à me contacter ou à soumettre votre question dans la partie du problème.)
Mises à jour: le serveur Web avec les modèles Advanced 26 est disponible sur https://nepc2pvmzy.us-East-1.awsapprunner.com/; Le référentiel de développement du serveur Web est disponible sur UNIDL4BIOPEP_WEBSERVER.
AVIS: UNIDL4BIOPEP n'est disponible librement que pour la recherche universitaire; Pour l'utilisation commerciale, veuillez nous contacter , [email protected]; [email protected]; [email protected];
Si le contenu vous est utile, veuillez le jouer et le citer . Veuillez citer comme: Du, Z., Ding, X., Xu, Y., & Li, Y. (2023) .Unidl4biopep: une architecture d'apprentissage en profondeur universel pour la classification binaire en bioactivité peptidique. Briefings en bioinformatique, BBAD135.
Les dépendances Majoy utilisées dans ce projet sont les suivantes:
Python 3.8.16
fair-esm 2.0.0
keras 2.9.0
pandas 1.3.5
numpy 1.21.6
scikit-learn 1.0.2
tensorflow 2.9.2
torch 1.13.0+cu116
focal-loss
Les bibliothèques Python plus détaillées utilisées dans ce projet sont référées aux requirements.txt . Toute l'implémentation peut être en baisse dans Google Colab et tout ce dont vous avez besoin est juste un navigateur et un compte Google. Installez tous les packages ci-dessus par !pip install package_name==2.0.0
AVIS: Tout mon ensemble de données utilise 0 et 1 pour représenter respectivement positif et négatif. Encore une fois, 0 est positif et 1 est négatif.
Vérifiez simplement le fichier Pretrained_Model_Usage_Template.Ipynb
Tout ce dont vous avez besoin est de préparer vos données pour la prédiction dans un fichier de format XLSX et d'ouvrir Pretrained_Model_Usage_Template.Ipynb dans Google Colab. Ensuite, téléchargez vos données et formalisez un ensemble de données (pour la formation du modèle). Ensuite, vous êtes prêt à partir.
Tout ce que vous avez à faire est de préparer vos ensembles de données dans un format XLSX et deux colonnes (la première colonne est la séquence et la deuxième colonne est étiquette). Vous pouvez simplement télécharger le fichier de jeu de données du format XLSX à partir de n'importe quel dossier de ce référentiel. Avant de charger votre ensemble de données, veuillez mélanger vos ensembles de données et les diviser en tant qu'ensemble de données de train et les ensembles de données de test comme exigence.
Vous pouvez également utiliser un ensemble de données Split dans le code Python avec les codes suivants, puis vous pouvez plus remplacer la section de chargement et d'incorporation de données . Remplacez simplement cette partie par les codes suivants.
Mises à jour: j'ai ajouté une nouvelle section dans unidl4biopep_template_for_other_bioactivity.ipynb pour vous adapter un chargement de données de format xlsx et des incorporations (utilisez-le simplement).
import numpy as np
import pandas as pd
# whole dataset loading and dataset splitting
dataset = pd.read_excel('whole_sample_dataset.xlsx',na_filter = False) # take care the NA sequence problem
# generate the peptide embeddings
sequence_list = dataset['sequence']
embeddings_results = pd.DataFrame()
for seq in sequence_list:
format_seq = [seq,seq] # the setting is just following the input format setting in ESM model, [name,sequence]
tuple_sequence = tuple(format_seq)
peptide_sequence_list = []
peptide_sequence_list.append(tuple_sequence) # build a summarize list variable including all the sequence information
# employ ESM model for converting and save the converted data in csv format
one_seq_embeddings = esm_embeddings(peptide_sequence_list)
embeddings_results= pd.concat([embeddings_results,one_seq_embeddings])
embeddings_results.to_csv('whole_sample_dataset_esm2_t6_8M_UR50D_unified_320_dimension.csv')
# loading the y dataset for model development
y = dataset['label']
y = np.array(y) # transformed as np.array for CNN model
# read the peptide embeddings
X_data_name = 'whole_sample_dataset_esm2_t6_8M_UR50D_unified_320_dimension.csv'
X_data = pd.read_csv(X_data_name,header=0, index_col = 0,delimiter=',')
X = np.array(X_data)
# split dataset as training and test dataset as ratio of 8:2
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split( X, y, test_size=0.2, random_state=123)
# normalize the X data range
from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
scaler.fit(X_train)
X_train = scaler.transform(X_train) # normalize X to 0-1 range
X_test = scaler.transform(X_test)
Après la transoformation, vous êtes prêt et bon à faire. Remarque: veuillez vérifier la dimension de votre ensemble de données avant d'exécuter en cas d'erreur occring.
# check the dimension of the dataset before model development
print(X_train.shape)
print(X_test.shape)
print(y_train.shape)
print(y_test.shape)
N'hésitez pas à apporter vos modifications personnalisées. Faites simplement défiler vers les sections d'architecture du modèle et faites des révisions en fonction de vos attentes.
Dans mes expériences, cette architecture semble assez bonne et vous devrez peut-être faire un grand changement pour faire quelque chose de différent si vous le souhaitez.