| AVERTISSEMENT: Ce référentiel a été obsolète en faveur de https://github.com/cusbg/prankweb! Veuillez déposer des problèmes là-bas! |
|---|
Ce repositaire contient une application Web Prankweb. Dans ce fichier, nous expliquons comment configurer le serveur Pankweb et décrire l'API PRANKWEB REST.
Un grand merci aux auteurs de P2Rank, Litemol, Protael, Wildfly et de nombreuses autres bibliothèques et outils que nous utilisons dans ce projet
Installez Node.js et Gradle (vous aurez également besoin de Java).
Clone ce référentiel, y compris tous les sous-modules:
git clone --recursive https://github.com/jendelel/PrankWebApp.gitMaintenant, vous construisez Pankweb en utilisant cette commande:
./gradlew clean warCela compilera tous les sous-modules et créera un fichier root.war dans le répertoire build / libs.
Pour en fait, exécutez PrankWeb Server, vous devrez télécharger et déballer JBoss Wildfly Application Server à partir de http://wildfly.org/downloads/ et de configurer la variable environnement JBOSS_HOME à Wildfly Path.
Pankweb nécessite des chemins de cheminement pour les répertoires où stocker des fichiers téléchargés, etc. Tout est stocké dans le répertoire, nous l'appellerons PrankData . Ce répertoire contient un fichier prankweb.properties , qui contient tous les chemins et configurations nécessaires. Le fichier contient des paires (clé et valeur). Vous devez configurer les propriétés suivantes:
Vous pouvez également spécifier:
Nous vous recommandons de stocker toutes les données dans le répertoire PrankData . Créez un lien symbolique dans jboss_home / standalone / data / Pankweb pointant vers le répertoire Prankdata à l'aide de ces commandes:
Windows:
cd /d %JBOSS_HOME% s tandalone d ata
mklink /D PrankWeb {path to PrankData directory}Linux:
cd $JBOSS_HOME /standalone/data
ln -s -d {path to PrankData directory} PrankWeb Étant donné que le serveur exécute P2RANK en interne, veuillez augmenter la limite de mémoire dans $JBOSS_HOME/bin/standalone.conf sur linux ou %JBOSS_HOME%/bin/standalone.conf.bat sur Windows pour modifier la limite, modifiez l'option -xmx dans la déclaration java_opts en au moins 1024m par exemple:
JAVA_OPTS= " -Xms64m -Xmx1024m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true " Pour activer la compression GZIP du serveur Web, ajoutez ces deux lignes suivantes marquées avec deux astéariques au fichier $JBOSS_HOME/standalone/configuration/standalone.xml :
...
< subsystem xmlns = " urn:jboss:domain:undertow:3.1 " >
< buffer-cache name = " default " />
< server name = " default-server " >
< http-listener name = " default " socket-binding = " http " redirect-socket = " https " enable-http2 = " true " />
< https-listener name = " https " socket-binding = " https " security-realm = " ApplicationRealm " enable-http2 = " true " />
< host name = " default-host " alias = " localhost " >
< location name = " / " handler = " welcome-content " />
< filter-ref name = " server-header " />
< filter-ref name = " x-powered-by-header " />
**< filter-ref name = " gzipFilter " predicate = " regex[pattern='(?:application/javascript|text/css|text/html|text/plain)(;.*)?', value=%{o,Content-Type}, full-match=true] " />**
</ host >
</ server >
< servlet-container name = " default " >
< jsp-config />
< websockets />
</ servlet-container >
< handlers >
< file name = " welcome-content " path = " ${jboss.home.dir}/welcome-content " />
</ handlers >
< filters >
< response-header name = " server-header " header-name = " Server " header-value = " WildFly/10 " />
< response-header name = " x-powered-by-header " header-name = " X-Powered-By " header-value = " Undertow/1 " />
**< gzip name = " gzipFilter " />**
</ filters >
</ subsystem >
... Après avoir configuré JBoss Wildfly, il suffit d'exécuter JBOSS_HOME/bin/standalone{.sh|.bat} et copier le fichier ROOT.war end JBOSS_HOME/standalone/deployments ou exécuter la commande gradle deploy Démarrez le répertoire du projet.
Pour exécuter le serveur sur le port 80 sans droits de super utilisateur, veuillez consulter: https://serverfault.com/questions/112795/how-end-run-a-server-on-port-80-as-a-normal-user-on-linux
Brifly: Exécutez cette commande Fin Reroute Port 8080 End 80: sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
L'URIS (Uniform Resource Identificateurs) suivent le modèle / API / origin / type / id , où origin est soit upload , soit id identifiant si le fichier PDB d'origine a été téléchargé par l'utilisateur ou téléchargé à partir de la banque de données. Le type indique le type de fichier demandé par l'utilisateur. Enfin, id est soit le code d'identification PDB ou la chaîne d'identification générée par le serveur après le téléchargement d'un fichier PDB personnalisé. Nous servons toutes les données suivantes pour chaque protéine ou protéine téléchargée de la banque de données de protéines (PDB) via la méthode GET - le type est indiqué entre parenthèses:
pdb ) - Fichier d'origine décrivant la protéine reçue d'un utilisateur ou de la base de donnéesmsa ) - Alignement de séquence multiples (MSA) pour chaque chaîne de la protéine.hom ) - Scores de conservation calculées à partir de chaque fichier MSA.csv ) - Fichier JSON (Notation d'objet JavaScript) généré par P2Rank contenant les résultats de prédiction.seq ) - Fichier JSON avec la séquence protéique et ses scores de conservation.vis ) - P2RANK génère également un script PyMol pour la visualisation hors ligne.all ) - Un fichier zip contenant tous les fichiers répertoriés ci-dessus. Le fichier de protéines personnalisé peut également être soumis pour analyse via la demande post-demande. L'URI est: /analyze/file_upload . La demande doit coder le fichier PDB avec l'identifiant pdbfile, booléen doconservation indiquant si les scores de conservation doivent être calculés. Facultativement, les fichiers PDBID ou MSA se terminant par .fasta peuvent être inclus pour accélérer l'analyse. La réponse du serveur contient le code d'identification généré qui peut être utilisé pour les demandes de GET supplémentaires.