THIS REPO IS UNMAINTAINED. This was a university project done for a computational biology course in my Master's degree. I DO NOT advise to use this code to truly identify membrane location of transmembrane proteins as the result will be at best imprecise, and at worst really incorrect.
membrane_plane.py
est un programme permettant (parfois) de déterminer la position de la membrane sur une protéine transmembranaire uniquement à partir de l'information de structure de celle-ci telle que fournie par un fichier PDB.
Il s'inspire fortement des algorithmes décrits dans Transmembrane proteins in the Protein Data Bank: identification and classification (Tusnády et al. 2004) et dans Membrane positioning for high-and low-resolution protein structures through a binary classification approach (Postic et al. 2016).
Les dépendances requises sont disponibles à la racine, dans le fichier membrane_lin.yml
. Pour installer automatiquement ces dépendances dans un environnement conda, saisir la commande :
conda env create -f membrane_lin.yml
Ou pour aller plus vite et si mamba a été installé :
mamba env create -f membrane_lin.yml
L'installation est identique à celle pour Linux, il suffit d'utiliser le fichier membrane_win.yml
à la place du fichier membrane_lin.yml
.
membrane_plane
supporte le choix du modèle et de la chaîne sur lesquels effectuer la détection de la membrane (paramètres -m
et -c
). Il est également possible de ne travailler que sur une certaine sélection de résidus (paramètres -fr
et -lr
).
En revanche, ce programme ne supporte pas les chaînes comportant des hétéro-atomes (HETATM) ou des atomes ayant une position alternative (ALTLOC).
Une description complète des options de membrane_plane
est disponible via la commande :
python ./scripts/membrane_plane.py -h
Le seul argument obligatoire est le chemin/nom du fichier PDB à traiter. Le programme produit une sortie console renseignant sur l'épaisseur de la membrane et le nombre de résidus que celle-ci englobe. Un fichier PDB nommé {mon_pdb}_membrane_{options}.pdb
est enregistré dans le dossier contenant le fichier PDB d'origine. Ce nouveau fichier PDB contient, en plus des résidus de la chaîne initiale, deux résidus représentant chacun une paroi de la membrane. Ouvrir le fichier avec PyMol (par exemple) permet de visualiser la position de la membrane par rapport à la protéine transmembranaire.
Le mode de debug (paramètre -d
) permet également une visualisation 3D de la localisation de la membrane mais celle-ci est plus basique.
Les fichiers PDB utilisés dans les exemples suivants sont disponibles dans le dossier data
.
En ne renseignant que le chemin du fichier PDB à traiter, tous les paramètres prendront leur valeur par défaut :
python ./scripts/membrane_plane.py ./data/2n90.pdb
Le fichier de sortie sera alors : 2n90_membrane_m0_cA_fr1_lr39.pdb
On peut sélectionner le modèle sur lequel travailler grâce à l'option -m
(ou --model
) ainsi que la chaîne avec -c
(ou --chain
). Ici on sélectionne le modèle 2 et la chaine B :
python ./scripts/membrane_plane.py ./data/2n90.pdb -m 2 -c 'B'
Le fichier de sortie sera alors : 2n90_membrane_m2_cB_fr101_lr139.pdb
Si le modèle ou la chaîne n'existe pas au sein de la protéine, le premier modèle et la première chaîne de la structure seront traités. Par défaut, le modèle est fixé à 0 et la chaîne A.
On peut également ne travailler que sur une sous-sélection de résidus grâce aux options -f
(ou -first_residue
) et -l
(ou -last_residue
). La sortie PDB inclura cependant tous les résidus d'origine afin d'éviter de casser les structures. Ici on sélectionne les résidus 10 à 30 :
python ./scripts/membrane_plane.py ./data/2n90.pdb -f 10 l 30
Le fichier de sortie sera alors : 2n90_membrane_m0_cA_fr10_lr30.pdb
Si ces résidus n'existe pas au sein du modèle et de la chaîne, tous les résidus de la chaîne et du modèle seront traités, comme si les options -r
et -l
n'avaient pas été renseignées.
Par défaut, les paramètres de calcul sont fixés de manière à limiter le temps d'exécution. Se référer à la documentation du programme pour le détail de ces options (-h
ou --help
).
Afin d'éviter les noms de fichier à rallonge, les paramètres de calcul ne sont pas renseignés dans le nom des fichiers PDB de sortie.
Il est bien entendu possible de combiner toutes ces options.
Ce programme est sous GNU General Public License v3.0. Pour plus d'informations, consultez le fichier LICENSE.