RAILIN est une boîte à outils Python pour l'attribution automatisée des chaînes latérales d'acides aminés à partir des fréquences de résonance magnétique nucléaire. Ce problème peut être formulé comme un problème d'affectation linéaire et résolu par des techniques d'optimisation sous contraintes. RAILIN utilise une approche de classification MAP (maximum apostériori) pour estimer la probabilité que les fréquences de résonance de chaque système de spin correspondent à l'un des 21 acides aminés. La connaissance préalable est fournie par la structure primaire de la protéine. Cette séquence d'acides aminés est utilisée pour formuler un problème d'affectation linéaire contrainte, qui à son tour est résolu à l'aide de la programmation linéaire en nombres entiers. Un problème de programmation en nombres entiers est un programme mathématique d'optimisation ou de faisabilité dans lequel tout ou partie des variables sont limitées à des nombres entiers. Dans de nombreux contextes, le terme fait référence à la programmation linéaire entière (ILP), dans laquelle la fonction objectif et les contraintes (autres que les contraintes entières) sont linéaires.
usage: railin.py [-h] [--reffile REFFILE] [-a ASSIGNMENTS] [-t TOLERANCE]
[-s {Joint,JointNew,CplexILP,ILP,Single}] [-v]
resfile seqfile
positional arguments:
resfile Path to list of pseudo-residues in ASCII format.
seqfile Path to sequence file in FASTA format.
optional arguments:
-h, --help show this help message and exit
--reffile REFFILE Path to BMRB reference shifts in ASCII format.
-a ASSIGNMENTS, --assignments ASSIGNMENTS
Number of assignments to be computed (default: 100).
-t TOLERANCE, --tolerance TOLERANCE
Linking Tolerance in ppm (default: 0.6).
-s {Joint,JointNew,CplexILP,ILP,Single}, --strategy {Joint,JointNew,CplexILP,ILP,Single}
Assignment strategy (default: CplexILP).
-v, --verbose Turn on verbosity option.
RAILIN dépend des packages suivants :
numpy
-- obligatoire (numpy.scipy.org)scipy
-- obligatoire (scipy.org)matplotlib
-- obligatoire (matplotlib.org)networkx
-- obligatoire (networkx.github.io/)IBM ILOG CPLEX Optimizer
- obligatoire (cplex-optimizer)Pour vérifier si l'un des packages ci-dessus est déjà installé sur votre système, essayez :
$ python
>> > import numpy
>> > import scipy
>> > import matplotlib
>> > import networkx
>> > import cplex
ImportError signifie que le package n’est pas installé.
$ sudo apt-get install python-numpy
$ sudo apt-get install python-scipy
$ sudo apt-get install python-matplotlib
$ sudo apt-get install python-networkx
À des fins de test, une version d'essai peut être trouvée ici. Pour bénéficier de toutes les fonctionnalités, vous devez vous inscrire sur ibm.com et obtenir une copie sous licence.