| ADVERTENCIA: ¡Este repositorio se ha desaprobado a favor de https://github.com/cusbg/prankweb! ¡Por favor presente cualquier problema allí! |
|---|
Este repositario contiene la aplicación web de prankweb. En este archivo, explicamos cómo configurar el servidor Prankweb y describir la API REST de Prankweb.
Muchas gracias a los autores de P2Rank, Litemol, Protael, Wildfly y muchas otras bibliotecas y herramientas que utilizamos en este proyecto
Instale Node.js y Gradle (también necesitará Java).
Clone Este repositorio, incluidos todos los submódulos:
git clone --recursive https://github.com/jendelel/PrankWebApp.gitAhora, construyes prankweb usando este comando:
./gradlew clean warEsto compilará todos los submódulos y creará el archivo root.war en el directorio Build/Libs.
En realidad, ejecutar el servidor de prankweb, deberá descargar y desempaquetar el servidor de aplicaciones JBoss Wildfly desde http://wildfly.org/downloads/ y configurar la variable de entorno JBOSS_HOME a Wildfly ruta.
Prankweb requiere rutas a directorios donde almacenar archivos cargados, etc. Todo se almacena en el directorio, lo llamaremos PrankData . Este directorio contiene el archivo prankweb.properties , que contiene todas las rutas y configuraciones necesarias. El archivo contiene pares (clave y valor). Debe configurar las siguientes propiedades:
También puede especificar:
Recomendamos almacenar todos los datos en el directorio PrankData . Cree un enlace simbólico en jboss_home/standalone/data/prankweb apuntando al directorio prankdata usando estos comandos:
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 Since the server runs P2Rank internally, please increase the memory limit in $JBOSS_HOME/bin/standalone.conf on Linux or %JBOSS_HOME%/bin/standalone.conf.bat on Windows To change the limit, change the -Xmx option in JAVA_OPTS statement to at least 1024m For example:
JAVA_OPTS= " -Xms64m -Xmx1024m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true " Para habilitar la compresión de GZIP del servidor web, agregue estas dos líneas siguientes marcadas con dos Asterics al archivo $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 >
... Después de configurar JBoss Wildfly, simplemente ejecute JBOSS_HOME/bin/standalone{.sh|.bat} y copie el archivo ROOT.war end JBOSS_HOME/standalone/deployments o ejecute el comando gradle deploy inicie el directorio del proyecto.
Para ejecutar el servidor en el puerto 80 sin derechos de usuario súper, consulte: https://serverfault.com/questions/112795/how-end-run-a-server-on-port-80-as-a-normal-user-on-linux
Brifly: Ejecute este comando final de la red de remoute 8080 Fin 80: sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
El URIS (Identificadores de recursos uniformes) siga el patrón / API / origin / type / id , donde origin se upload o id si el archivo PDB original fue cargado por el usuario o se descargó desde el banco de datos. El type indica el tipo de archivo solicitado por el usuario. Por último, id es código de identificación PDB o cadena de identificación generada por el servidor después de que se haya cargado un archivo PDB personalizado. Servimos todos los siguientes datos para cada proteína o proteína cargada del Banco de datos de proteínas (PDB) a través del método GET: el tipo se establece entre paréntesis:
pdb ): archivo original que describe la proteína recibida de un usuario o de la base de datosmsa ): alineación de secuencias múltiples (MSA) para cada cadena de la proteína.hom ): puntajes de conservación calculados a partir de cada archivo MSA.csv ): el archivo JSON (notación del objeto JavaScript) generado por P2Rank que contiene los resultados de la predicción.seq ): archivo JSON con la secuencia de proteínas y sus puntajes de conservación.vis ): P2Rank también genera un script de Pymol para la visualización fuera de línea.all ): un archivo zip que contiene todos los archivos enumerados anteriormente. El archivo de proteína personalizado también se puede enviar para su análisis a través de la solicitud posterior. El URI es: /analyze/file_upload . La solicitud debe codificar el archivo PDB con el identificador PDBFile, la doconservación booleana que indica si se deben calcular las puntuaciones de conservación. Opcionalmente, los archivos PDBID o MSA que terminan con .FASTA se pueden incluir para acelerar el análisis. La respuesta del servidor contiene el código de identificación generado que se puede utilizar para obtener solicitudes.