| ПРЕДУПРЕЖДЕНИЕ: Этот репозиторий устарел в пользу https://github.com/cusbg/prankweb! Пожалуйста, подайте там любые проблемы! |
|---|
Этот репозитарь содержит веб -приложение Prankweb. В этом файле мы объясняем, как настроить Prankweb Server и описать API Prankweb REST.
Большое спасибо авторам P2rank, Litemol, Protael, Wildfly и многих других библиотек и инструментов, которые мы используем в этом проекте
Установите Node.js и Gradle (вам также понадобится Java).
Клонировать этот репозиторий, включая все подмодули:
git clone --recursive https://github.com/jendelel/PrankWebApp.gitТеперь вы создаете Prankweb, используя эту команду:
./gradlew clean warЭто составит все подмодули и создаст файл root.war в каталоге Build/Libs.
Чтобы на самом деле запустить Prankweb Server, вам нужно будет загрузить и распаковать сервер приложений jboss Wildfly с http://wildfly.org/downloads/ и настройки переменной среды jboss_home к пути Wildfly.
Prankweb требует пути к каталогам, где хранить загруженные файлы и т. Д. Все хранится в каталоге, мы будем называть это PrankData . Этот каталог содержит файл prankweb.properties , который содержит все необходимые пути и конфигурации. Файл содержит пары (ключ и значение). Вы должны настроить следующие свойства:
Вы также можете указать:
Мы рекомендуем сохранить все данные в каталоге PrankData . Создайте символическую ссылку в JBOSS_HOME/STANDALONE/DATA/PRANKWEB, указывающий на каталог PrankData, используя эти команды:
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 Поскольку сервер запускается P2rank внутри, пожалуйста, увеличьте лимит памяти в $JBOSS_HOME/bin/standalone.conf на Linux или %JBOSS_HOME%/bin/standalone.conf.bat в Windows, чтобы изменить лимит, измените опцию -xmx в операторе Java_opts как минимум на 1024 м, например: Например:
JAVA_OPTS= " -Xms64m -Xmx1024m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true " Чтобы включить сжатие GZIP веб -сервера, добавьте эти две следующие строки , помеченные двумя астериками в файл $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 >
... После того, как вы настроили jboss wildfly, просто запустите JBOSS_HOME/bin/standalone{.sh|.bat} и скопируйте файл ROOT.war end JBOSS_HOME/standalone/deployments или запустите команду gradle deploy Запустите каталог проекта.
Чтобы запустить сервер на порту 80 без суперпользовательских прав, см.: Https://serverfault.com/questions/112795/how-end-run-a-server-on-port-80-s-a-anormal-user-on-linux
Brifly: запустите эту команду End Reroute Port 8080 END 80: sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
URIS (унифицированные идентификаторы ресурсов) следуют за шаблоном / API / origin / type / id , где origin либо upload , либо id , был ли исходный файл PDB был загружен пользователем или загружен из банка данных. type указывает тип файла, запрашиваемый пользователем. Наконец, id - это либо код идентификации PDB, либо строка идентификации, сгенерированную сервером после загрузки пользовательского файла PDB. Мы обслуживаем все следующие данные для каждого загруженного белка или белка из банка данных белка (PDB) с помощью метода GET - тип указан в скобках:
pdb ) - исходный файл, описывающий белок, полученный от пользователя или из базы данныхmsa ) - выравнивание множественных последовательностей (MSA) для каждой цепи белка.hom ) - оценки сохранения, рассчитанные из каждого файла MSA.csv ) - файл JSON (JAVASCRIP Object), сгенерированный P2rank, содержащим результаты прогнозирования.seq ) - файл JSON с белковой последовательности и оценки ее сохранения.vis ) - P2rank также генерирует сценарий Pymol для автономной визуализации.all ) - zip -файл, содержащий все файлы, перечисленные выше. Пользовательский белковый файл также может быть отправлен для анализа с помощью запроса POST. URI: /analyze/file_upload . Запрос должен кодировать файл PDB с помощью идентификатора PDBFile, логической документы, указывающей, следует ли рассчитать оценки сохранения. При желании файлы PDBID или MSA, заканчивающиеся .Fasta могут быть включены для ускорения анализа. Ответ с сервера содержит сгенерированный идентификационный код, который можно использовать для дальнейшего получения запросов.