From 8498f2481784804250cc22246d35c7e9f4a902a9 Mon Sep 17 00:00:00 2001 From: sverhoeven Date: Fri, 20 Sep 2024 13:14:42 +0000 Subject: [PATCH 1/9] Use haddock3 install which comes with cns executable --- .devcontainer/docker-compose.yml | 8 -------- .github/workflows/docker.yml | 4 +--- .gitignore | 1 - README.md | 1 - deploy/Dockerfile.bartenderhaddock3 | 14 ++++---------- deploy/README.md | 10 +++------- deploy/arq/README.md | 2 -- deploy/arq/docker-compose.yml | 8 -------- deploy/containerslurm/Dockerfile | 13 ++++--------- deploy/containerslurm/README.md | 2 -- deploy/containerslurm/docker-compose.yml | 5 ----- deploy/portal/README.md | 3 +-- deploy/remoteslurm/docker-compose.yml | 4 ---- 13 files changed, 13 insertions(+), 62 deletions(-) diff --git a/.devcontainer/docker-compose.yml b/.devcontainer/docker-compose.yml index 77dcdb97..8fe0701e 100644 --- a/.devcontainer/docker-compose.yml +++ b/.devcontainer/docker-compose.yml @@ -58,10 +58,6 @@ services: - type: bind source: ../deploy/arq/bartender-config.yaml target: /opt/bartender/config.yaml - - type: bind - source: ../deploy/cns - target: /opt/haddock3/bin/cns - read_only: true - bartender-certs:/certs:ro - bartender-job-data:/jobs depends_on: @@ -111,10 +107,6 @@ services: - type: bind source: ../deploy/arq/bartender-config.yaml target: /opt/bartender/config.yaml - - type: bind - source: ../deploy/cns - target: /opt/haddock3/bin/cns - read_only: true - bartender-job-data:/jobs depends_on: redis: diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 8824cddb..bd5567a6 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -31,7 +31,7 @@ jobs: with: images: ghcr.io/i-vresse/bartender labels: | - org.opencontainers.image.description=bartender web service with haddock3, lightdock, gdock executables. Image does not contain real cns executable, downstream should bind or copy it to /opt/haddock3/bin/cns. + org.opencontainers.image.description=bartender web service with haddock3, lightdock, gdock executables. Image does contain cns executable, which is free non-profit users, see https://github.com/haddocking/haddock3/blob/main/DISCLAIMER.md. org.opencontainers.image.url=https://github.com/i-VRESSE/haddock3-webapp/blob/main/deploy/README.md#images org.opencontainers.image.documentation.url=https://github.com/i-VRESSE/haddock3-webapp/blob/main/deploy/README.md#images - name: Login to DockerHub @@ -142,8 +142,6 @@ jobs: run: npm ci - name: Install Playwright Browsers run: npx playwright install --with-deps - - name: Fake cns - run: cp /usr/bin/uptime deploy/cns - name: Docker meta id: meta uses: docker/metadata-action@v5 diff --git a/.gitignore b/.gitignore index 838ab6fe..36be0bee 100644 --- a/.gitignore +++ b/.gitignore @@ -16,7 +16,6 @@ node_modules /public_key.pem Caddyfile -/deploy/cns /test-results/ /playwright-report/ /blob-report/ diff --git a/README.md b/README.md index 804c9607..f71b829e 100644 --- a/README.md +++ b/README.md @@ -93,7 +93,6 @@ See [docs/scenarios.md](docs/scenarios.md) for more information on how the web a ### Develop inside devcontainer You can develop inside a [devcontainer](https://containers.dev/) inside Visual Studio Code. The devcontainer includes all services required by the webapp. -You just have to supply the cns executable as `./deploy/cns` file, see [deployment](deploy/README.md), before building/starting the containers. When you exit VS code the containers will keep running, kill by running `docker compose -f .devcontainer/docker-compose.yml -p haddock3-webapp_devcontainer down` in the terminal or in VS Code reopen folder outside container. diff --git a/deploy/Dockerfile.bartenderhaddock3 b/deploy/Dockerfile.bartenderhaddock3 index 0c0d7b01..12ce1eeb 100644 --- a/deploy/Dockerfile.bartenderhaddock3 +++ b/deploy/Dockerfile.bartenderhaddock3 @@ -2,7 +2,7 @@ FROM python:3.9-slim-bookworm AS builder LABEL org.opencontainers.image.source=https://github.com/i-VRESSE/haddock3-webapp/blob/main/deploy/Dockerfile.bartenderhaddock3 LABEL org.opencontainers.image.licenses=Apache-2.0 -LABEL org.opencontainers.image.description="bartender web service with haddock3, lightdock, gdock executables. Image does not contain real cns executable, downstream should bind or copy it to /opt/haddock3/bin/cns." +LABEL org.opencontainers.image.description="bartender web service with haddock3, lightdock, gdock executables. Image does contain cns executable, which is free non-profit users, see https://github.com/haddocking/haddock3/blob/main/DISCLAIMER.md." ARG HADDOCK3_GHORG=haddocking ARG HADDOCK3_VERSION=main @@ -48,17 +48,11 @@ RUN pip install . # haddock3 ============================================================================================================ WORKDIR /opt/haddock3 -RUN echo cachebust=6 && git clone --depth 1 -b ${HADDOCK3_VERSION} --recursive https://github.com/${HADDOCK3_GHORG}/haddock3.git . -WORKDIR /opt/haddock3/src/fcc/src -RUN make -WORKDIR /opt/haddock3/src/fast-rmsdmatrix/src -RUN chmod u+x Makefile && make fast-rmsdmatrix -WORKDIR /opt/haddock3 +RUN echo cachebust=8 && git clone --depth 1 -b ${HADDOCK3_VERSION} https://github.com/${HADDOCK3_GHORG}/haddock3.git . # Do not need kaleido (226Mb) for the webapp -RUN grep -v kaleido requirements.txt > requirements.pruned.txt && pip install -r requirements.pruned.txt -RUN python setup.py develop && mkdir -p bin +RUN grep -v kaleido requirements.txt > requirements.pruned.txt && mv requirements.pruned.txt requirements.txt +RUN pip install . WORKDIR / -ENV PYTHONPATH=/opt/haddock3/src # final image ========================================================================================================= diff --git a/deploy/README.md b/deploy/README.md index 5008755a..dc5b5e69 100644 --- a/deploy/README.md +++ b/deploy/README.md @@ -1,11 +1,7 @@ # Deployments -> [!NOTE] -> All deployment methods require the `cns` executable to available in this directory. -> -> On Apple M1 and later versions, the `cns` executable should be compiled for the linux arm64 platform. On Intel or AMD processors the `cns` executable should be compiled for the linux amd64 platform. -> -> The `cns` executable should have its execute bit set with `chmod +x cns`. +-> [!NOTE] +-> All deployment methods contain the `cns` executable which is free non-profit users, see https://github.com/haddocking/haddock3/blob/main/DISCLAIMER.md. ## Methods @@ -55,7 +51,7 @@ When a pull request is closed, you are reminded in a comment to remove the image Bartender web service with haddock3, lightdock, gdock executables. -Image does not contain real cns executable, downstream should bind or copy it to /opt/haddock3/bin/cns. +Image does contain cns executable, which is free non-profit users, see https://github.com/haddocking/haddock3/blob/main/DISCLAIMER.md. This image can be used to run the diff --git a/deploy/arq/README.md b/deploy/arq/README.md index c6a902f4..5be87e40 100644 --- a/deploy/arq/README.md +++ b/deploy/arq/README.md @@ -3,8 +3,6 @@ ```shell # Must be in root of repo cd ../.. -# Need cns executable in deploy directory, so it can be mounted into the Docker container -cp deploy/cns # Pull, create and start webapp and its services docker compose -f deploy/arq/docker-compose.yml up ``` diff --git a/deploy/arq/docker-compose.yml b/deploy/arq/docker-compose.yml index 6c9227dc..febf7123 100644 --- a/deploy/arq/docker-compose.yml +++ b/deploy/arq/docker-compose.yml @@ -63,10 +63,6 @@ services: source: ./bartender-config.yaml target: /opt/bartender/config.yaml read_only: true - - type: bind - source: ../cns - target: /opt/haddock3/bin/cns - read_only: true - bartender-certs:/certs:ro - bartender-job-data:/jobs depends_on: @@ -117,10 +113,6 @@ services: source: ./bartender-config.yaml target: /opt/bartender/config.yaml read_only: true - - type: bind - source: ../cns - target: /opt/haddock3/bin/cns - read_only: true - bartender-job-data:/jobs depends_on: redis: diff --git a/deploy/containerslurm/Dockerfile b/deploy/containerslurm/Dockerfile index 49b48f56..f4774d6c 100644 --- a/deploy/containerslurm/Dockerfile +++ b/deploy/containerslurm/Dockerfile @@ -42,13 +42,8 @@ ENV GDOCK_PATH=/opt/gdock # haddock3 ============================================================================================================ WORKDIR /opt/haddock3 -RUN echo cachebust=6 && git clone --depth 1 -b ${HADDOCK3_VERSION} --recursive https://github.com/${HADDOCK3_GHORG}/haddock3.git . -WORKDIR /opt/haddock3/src/fcc/src -RUN make -WORKDIR /opt/haddock3/src/fast-rmsdmatrix/src -RUN chmod u+x Makefile && make fast-rmsdmatrix -WORKDIR /opt/haddock3 -RUN grep -v kaleido requirements.txt > requirements.pruned.txt && /usr/local/bin/pip install -r requirements.pruned.txt -RUN /usr/local/bin/pip install . && \ - mkdir -p /usr/local/lib/python3.9/bin +RUN echo cachebust=7 && git clone --depth 1 -b ${HADDOCK3_VERSION} https://github.com/${HADDOCK3_GHORG}/haddock3.git . +# Do not need kaleido (226Mb) for the webapp +RUN grep -v kaleido requirements.txt > requirements.pruned.txt && mv requirements.pruned.txt requirements.txt +RUN pip install . WORKDIR / diff --git a/deploy/containerslurm/README.md b/deploy/containerslurm/README.md index 071ee43f..38798aaa 100644 --- a/deploy/containerslurm/README.md +++ b/deploy/containerslurm/README.md @@ -5,8 +5,6 @@ To test against a local container with [Slurm](https://github.com/xenon-middlewa ```shell # Must be in root of repo cd ../.. -# Need cns executable in deploy directory, so it can be mounted into the Docker container -cp deploy/cns docker compose -f deploy/remoteslurm/docker-compose.yml -f deploy/containerslurm/docker-compose.yml up --build ``` diff --git a/deploy/containerslurm/docker-compose.yml b/deploy/containerslurm/docker-compose.yml index 82def1ae..c3068d7d 100644 --- a/deploy/containerslurm/docker-compose.yml +++ b/deploy/containerslurm/docker-compose.yml @@ -14,8 +14,3 @@ services: context: .. dockerfile: containerslurm/Dockerfile privileged: true - volumes: - - type: bind - source: ../cns - target: /usr/local/lib/python3.9/bin/cns - read_only: true diff --git a/deploy/portal/README.md b/deploy/portal/README.md index 72666d1e..a77f56f2 100644 --- a/deploy/portal/README.md +++ b/deploy/portal/README.md @@ -1,10 +1,9 @@ # Haddock3 webapp within BonvinLab computational stuctural biology portal -See [docs of portal mode](../docs/portal.md) for more information. +See [docs of portal mode](../../docs/portal.md) for more information. ```shell # Inside csbportal repo -cp haddock3-webapp/deploy/cns # Start csbportal with haddock3-webapp/deploy/portal/docker-compose.yml included in up command ``` diff --git a/deploy/remoteslurm/docker-compose.yml b/deploy/remoteslurm/docker-compose.yml index c9d5eca3..4f854744 100644 --- a/deploy/remoteslurm/docker-compose.yml +++ b/deploy/remoteslurm/docker-compose.yml @@ -57,10 +57,6 @@ services: - type: bind source: ./mypicker.py target: /opt/bartender/mypicker.py - - type: bind - source: ../deploy/cns - target: /opt/haddock3/bin/cns - read_only: true - bartender-certs:/certs:ro - bartender-job-data:/jobs # To use a local private ssh key to login to the remote slurm machine From b819764bc4d4cd3d84563f6e8a48eeef3157a716 Mon Sep 17 00:00:00 2001 From: sverhoeven Date: Fri, 20 Sep 2024 13:22:23 +0000 Subject: [PATCH 2/9] Format note --- deploy/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/deploy/README.md b/deploy/README.md index dc5b5e69..c5e4dbbf 100644 --- a/deploy/README.md +++ b/deploy/README.md @@ -1,7 +1,7 @@ # Deployments --> [!NOTE] --> All deployment methods contain the `cns` executable which is free non-profit users, see https://github.com/haddocking/haddock3/blob/main/DISCLAIMER.md. +> [!NOTE] +> All deployment methods contain the `cns` executable which is free non-profit users, see https://github.com/haddocking/haddock3/blob/main/DISCLAIMER.md. ## Methods From 0502e6be5f88a0ad03a24245cb70abbb4a044962 Mon Sep 17 00:00:00 2001 From: sverhoeven Date: Fri, 20 Sep 2024 13:27:12 +0000 Subject: [PATCH 3/9] Make deployment more prominent + english --- .github/workflows/docker.yml | 2 +- README.md | 9 +++++---- deploy/Dockerfile.bartenderhaddock3 | 2 +- deploy/README.md | 4 ++-- 4 files changed, 9 insertions(+), 8 deletions(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index bd5567a6..79d65f5c 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -31,7 +31,7 @@ jobs: with: images: ghcr.io/i-vresse/bartender labels: | - org.opencontainers.image.description=bartender web service with haddock3, lightdock, gdock executables. Image does contain cns executable, which is free non-profit users, see https://github.com/haddocking/haddock3/blob/main/DISCLAIMER.md. + org.opencontainers.image.description=bartender web service with haddock3, lightdock, gdock executables. Image does contain cns executable, which is free for non-profit users, see https://github.com/haddocking/haddock3/blob/main/DISCLAIMER.md. org.opencontainers.image.url=https://github.com/i-VRESSE/haddock3-webapp/blob/main/deploy/README.md#images org.opencontainers.image.documentation.url=https://github.com/i-VRESSE/haddock3-webapp/blob/main/deploy/README.md#images - name: Login to DockerHub diff --git a/README.md b/README.md index f71b829e..ff570001 100644 --- a/README.md +++ b/README.md @@ -39,6 +39,10 @@ Web app->>+Bartender: State of job Web app->>+Bartender: Result of job ``` +## Deployment + +Deployments with containers are explained in [deploy/README.md](deploy/README.md). + ## Setup The web app is written in [Node.js](https://nodejs.org/) to install dependencies run: @@ -158,7 +162,7 @@ npm run typecheck For testing see [docs/testing.md](docs/testing.md). -## Deployment +## Start production server First, build your app for production: @@ -172,9 +176,6 @@ Then run the app in production mode: export $(cat .env |grep -v '#' |xargs) npm start ``` - -Other deployments with containers are explained in [deploy/README.md](deploy/README.md). - ## Stack The tech stack is explained in [docs/stack.md](docs/stack.md). diff --git a/deploy/Dockerfile.bartenderhaddock3 b/deploy/Dockerfile.bartenderhaddock3 index 12ce1eeb..b9763ba6 100644 --- a/deploy/Dockerfile.bartenderhaddock3 +++ b/deploy/Dockerfile.bartenderhaddock3 @@ -2,7 +2,7 @@ FROM python:3.9-slim-bookworm AS builder LABEL org.opencontainers.image.source=https://github.com/i-VRESSE/haddock3-webapp/blob/main/deploy/Dockerfile.bartenderhaddock3 LABEL org.opencontainers.image.licenses=Apache-2.0 -LABEL org.opencontainers.image.description="bartender web service with haddock3, lightdock, gdock executables. Image does contain cns executable, which is free non-profit users, see https://github.com/haddocking/haddock3/blob/main/DISCLAIMER.md." +LABEL org.opencontainers.image.description="bartender web service with haddock3, lightdock, gdock executables. Image does contain cns executable, which is free for non-profit users, see https://github.com/haddocking/haddock3/blob/main/DISCLAIMER.md." ARG HADDOCK3_GHORG=haddocking ARG HADDOCK3_VERSION=main diff --git a/deploy/README.md b/deploy/README.md index c5e4dbbf..8fdc8c71 100644 --- a/deploy/README.md +++ b/deploy/README.md @@ -1,7 +1,7 @@ # Deployments > [!NOTE] -> All deployment methods contain the `cns` executable which is free non-profit users, see https://github.com/haddocking/haddock3/blob/main/DISCLAIMER.md. +> All deployment methods contain the `cns` executable which is free for non-profit users, see https://github.com/haddocking/haddock3/blob/main/DISCLAIMER.md. ## Methods @@ -51,7 +51,7 @@ When a pull request is closed, you are reminded in a comment to remove the image Bartender web service with haddock3, lightdock, gdock executables. -Image does contain cns executable, which is free non-profit users, see https://github.com/haddocking/haddock3/blob/main/DISCLAIMER.md. +Image does contain cns executable, which is free for non-profit users, see https://github.com/haddocking/haddock3/blob/main/DISCLAIMER.md. This image can be used to run the From ddd07e5cba473c63bd88ccaf0df94dc93d7e66ab Mon Sep 17 00:00:00 2001 From: sverhoeven Date: Fri, 20 Sep 2024 13:30:14 +0000 Subject: [PATCH 4/9] FOrmat --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ff570001..c46d2dec 100644 --- a/README.md +++ b/README.md @@ -176,6 +176,7 @@ Then run the app in production mode: export $(cat .env |grep -v '#' |xargs) npm start ``` + ## Stack The tech stack is explained in [docs/stack.md](docs/stack.md). From 266d50dd5d6df33bb1884494df27a1b019e3acf1 Mon Sep 17 00:00:00 2001 From: Stefan Verhoeven Date: Wed, 2 Oct 2024 10:30:54 +0200 Subject: [PATCH 5/9] Update catalogs --- app/catalogs/haddock3.expert.json | 421 +----------------------------- app/catalogs/haddock3.guru.json | 421 +----------------------------- 2 files changed, 24 insertions(+), 818 deletions(-) diff --git a/app/catalogs/haddock3.expert.json b/app/catalogs/haddock3.expert.json index 83deaeb2..caf264ae 100644 --- a/app/catalogs/haddock3.expert.json +++ b/app/catalogs/haddock3.expert.json @@ -1071,15 +1071,6 @@ "type": "string", "format": "uri-reference" }, - "numc2sym": { - "default": 0, - "title": "Number of C2 symmetry restraints", - "description": "Defines the number of C2 symmetry restraints.", - "$comment": "Defines the number of C2 symmetry restraints. For each, a pair of segments on which the symmetry restraint is applied will have to be defined. Those must all have the same length.", - "type": "number", - "maximum": 40, - "minimum": 0 - }, "c2sym": { "type": "array", "title": "C2 symmetry restraints", @@ -1145,15 +1136,6 @@ "additionalProperties": false } }, - "numc3sym": { - "default": 0, - "title": "Number of C3 symmetry restraints", - "description": "Defines the number of C3 symmetry restraints.", - "$comment": "Defines the number of C3 symmetry restraints. For each, three segments on which the symmetry restraint is applied will have to be defined. Those must all have the same length.", - "type": "number", - "maximum": 10, - "minimum": 0 - }, "c3sym": { "type": "array", "title": "C3 symmetry restraints", @@ -1246,15 +1228,6 @@ "additionalProperties": false } }, - "numc4sym": { - "default": 0, - "title": "Number of C4 symmetry restraints", - "description": "Defines the number of C4 symmetry restraints.", - "$comment": "Defines the number of C4 symmetry restraints. For each, four segments on which the symmetry restraint is applied will have to be defined. Those must all have the same length.", - "type": "number", - "maximum": 10, - "minimum": 0 - }, "c4sym": { "type": "array", "title": "C4 symmetry restraints", @@ -1374,15 +1347,6 @@ "additionalProperties": false } }, - "numc5sym": { - "default": 0, - "title": "Number of C5 symmetry restraints", - "description": "Defines the number of C5 symmetry restraints.", - "$comment": "Defines the number of C5 symmetry restraints. For each, five segments on which the symmetry restraint is applied will have to be defined. Those must all have the same length.", - "type": "number", - "maximum": 10, - "minimum": 0 - }, "c5sym": { "type": "array", "title": "C5 symmetry restraints", @@ -1529,15 +1493,6 @@ "additionalProperties": false } }, - "numc6sym": { - "default": 0, - "title": "Number of C6 symmetry restraints", - "description": "Defines the number of C6 symmetry restraints.", - "$comment": "Defines the number of C6 symmetry restraints. For each, six segments on which the symmetry restraint is applied will have to be defined. Those must all have the same length.", - "type": "number", - "maximum": 10, - "minimum": 0 - }, "c6sym": { "type": "array", "title": "C6 symmetry restraints", @@ -1711,15 +1666,6 @@ "additionalProperties": false } }, - "nums3sym": { - "default": 0, - "title": "Number of S3 symmetry restraints", - "description": "Defines the number of S3 symmetry restraints.", - "$comment": "Defines the number of S3 symmetry restraints. For each, three segments on which the symmetry restraint is applied will have to be defined. Those must all have the same length.", - "type": "number", - "maximum": 10, - "minimum": 0 - }, "s3sym": { "type": "array", "title": "S3 symmetry restraints", @@ -1828,15 +1774,6 @@ "maximum": 1000, "minimum": 0 }, - "numncs": { - "default": 0, - "title": "Number of non-crystallographic symmetry restraints", - "description": "Number of non-crystallographic symmetry restraints (NCS).", - "$comment": "Number of non-crystallographic symmetry restraints. For each pairs of segments will have to be defined. Note that those must contain exactly the same residues/atom combinations.", - "type": "number", - "maximum": 100, - "minimum": 0 - }, "ncs": { "type": "array", "title": "Non-crystallographic symmetry restraints", @@ -2261,15 +2198,6 @@ "maximum": 1000, "minimum": -1 }, - "nfle": { - "default": 0, - "title": "Number of fully flexible segments", - "description": "This defines the number of fully flexible segments.", - "$comment": "This parameter defines the number of fully flexible segments for all molecules. If >=1 then those must be defined manually with segment ID (segid) in the fle_seg_* variable, followed by the starting and ending residue numbers in the fle_sta_* and fle_end_* variables.", - "type": "number", - "maximum": 1000, - "minimum": 0 - }, "fle": { "type": "array", "title": "Fully flexible segments", @@ -2386,44 +2314,26 @@ "ui:widget": "file", "ui:group": "symmetry" }, - "numc2sym": { - "ui:group": "symmetry" - }, "c2sym": { "ui:field": "table", "ui:group": "symmetry" }, - "numc3sym": { - "ui:group": "symmetry" - }, "c3sym": { "ui:field": "table", "ui:group": "symmetry" }, - "numc4sym": { - "ui:group": "symmetry" - }, "c4sym": { "ui:field": "table", "ui:group": "symmetry" }, - "numc5sym": { - "ui:group": "symmetry" - }, "c5sym": { "ui:field": "table", "ui:group": "symmetry" }, - "numc6sym": { - "ui:group": "symmetry" - }, "c6sym": { "ui:field": "table", "ui:group": "symmetry" }, - "nums3sym": { - "ui:group": "symmetry" - }, "s3sym": { "ui:field": "table", "ui:group": "symmetry" @@ -2434,9 +2344,6 @@ "kncs": { "ui:group": "symmetry" }, - "numncs": { - "ui:group": "symmetry" - }, "ncs": { "ui:field": "table", "ui:group": "symmetry" @@ -2560,9 +2467,6 @@ "nseg20": { "ui:group": "flexibility" }, - "nfle": { - "ui:group": "flexibility" - }, "fle": { "ui:field": "table", "ui:group": "flexibility" @@ -3151,15 +3055,6 @@ "type": "string", "format": "uri-reference" }, - "numc2sym": { - "default": 0, - "title": "Number of C2 symmetry restraints", - "description": "Defines the number of C2 symmetry restraints.", - "$comment": "Defines the number of C2 symmetry restraints. For each, a pair of segments on which the symmetry restraint is applied will have to be defined. Those must all have the same length.", - "type": "number", - "maximum": 40, - "minimum": 0 - }, "c2sym": { "type": "array", "title": "C2 symmetry restraints", @@ -3225,15 +3120,6 @@ "additionalProperties": false } }, - "numc3sym": { - "default": 0, - "title": "Number of C3 symmetry restraints", - "description": "Defines the number of C3 symmetry restraints.", - "$comment": "Defines the number of C3 symmetry restraints. For each, three segments on which the symmetry restraint is applied will have to be defined. Those must all have the same length.", - "type": "number", - "maximum": 10, - "minimum": 0 - }, "c3sym": { "type": "array", "title": "C3 symmetry restraints", @@ -3326,15 +3212,6 @@ "additionalProperties": false } }, - "numc4sym": { - "default": 0, - "title": "Number of C4 symmetry restraints", - "description": "Defines the number of C4 symmetry restraints.", - "$comment": "Defines the number of C4 symmetry restraints. For each, four segments on which the symmetry restraint is applied will have to be defined. Those must all have the same length.", - "type": "number", - "maximum": 10, - "minimum": 0 - }, "c4sym": { "type": "array", "title": "C4 symmetry restraints", @@ -3454,15 +3331,6 @@ "additionalProperties": false } }, - "numc5sym": { - "default": 0, - "title": "Number of C5 symmetry restraints", - "description": "Defines the number of C5 symmetry restraints.", - "$comment": "Defines the number of C5 symmetry restraints. For each, five segments on which the symmetry restraint is applied will have to be defined. Those must all have the same length.", - "type": "number", - "maximum": 10, - "minimum": 0 - }, "c5sym": { "type": "array", "title": "C5 symmetry restraints", @@ -3609,15 +3477,6 @@ "additionalProperties": false } }, - "numc6sym": { - "default": 0, - "title": "Number of C6 symmetry restraints", - "description": "Defines the number of C6 symmetry restraints.", - "$comment": "Defines the number of C6 symmetry restraints. For each, six segments on which the symmetry restraint is applied will have to be defined. Those must all have the same length.", - "type": "number", - "maximum": 10, - "minimum": 0 - }, "c6sym": { "type": "array", "title": "C6 symmetry restraints", @@ -3791,15 +3650,6 @@ "additionalProperties": false } }, - "nums3sym": { - "default": 0, - "title": "Number of S3 symmetry restraints", - "description": "Defines the number of S3 symmetry restraints.", - "$comment": "Defines the number of S3 symmetry restraints. For each, three segments on which the symmetry restraint is applied will have to be defined. Those must all have the same length.", - "type": "number", - "maximum": 10, - "minimum": 0 - }, "s3sym": { "type": "array", "title": "S3 symmetry restraints", @@ -3908,15 +3758,6 @@ "maximum": 1000, "minimum": 0 }, - "numncs": { - "default": 0, - "title": "Number of non-crystallographic symmetry restraints", - "description": "Number of non-crystallographic symmetry restraints (NCS).", - "$comment": "Number of non-crystallographic symmetry restraints. For each pairs of segments will have to be defined. Note that those must contain exactly the same residues/atom combinations.", - "type": "number", - "maximum": 100, - "minimum": 0 - }, "ncs": { "type": "array", "title": "Non-crystallographic symmetry restraints", @@ -4386,15 +4227,6 @@ "maximum": 1000, "minimum": -1 }, - "nfle": { - "default": 0, - "title": "Number of fully flexible segments", - "description": "This defines the number of fully flexible segments.", - "$comment": "This parameter defines the number of fully flexible segments for all molecules. If >=1 then those must be defined manually with segment ID (segid) in the fle_seg_* variable, followed by the starting and ending residue numbers in the fle_sta_* and fle_end_* variables.", - "type": "number", - "maximum": 1000, - "minimum": 0 - }, "fle": { "type": "array", "title": "Fully flexible segments", @@ -4556,44 +4388,26 @@ "ui:widget": "file", "ui:group": "symmetry" }, - "numc2sym": { - "ui:group": "symmetry" - }, "c2sym": { "ui:field": "table", "ui:group": "symmetry" }, - "numc3sym": { - "ui:group": "symmetry" - }, "c3sym": { "ui:field": "table", "ui:group": "symmetry" }, - "numc4sym": { - "ui:group": "symmetry" - }, "c4sym": { "ui:field": "table", "ui:group": "symmetry" }, - "numc5sym": { - "ui:group": "symmetry" - }, "c5sym": { "ui:field": "table", "ui:group": "symmetry" }, - "numc6sym": { - "ui:group": "symmetry" - }, "c6sym": { "ui:field": "table", "ui:group": "symmetry" }, - "nums3sym": { - "ui:group": "symmetry" - }, "s3sym": { "ui:field": "table", "ui:group": "symmetry" @@ -4604,9 +4418,6 @@ "kncs": { "ui:group": "symmetry" }, - "numncs": { - "ui:group": "symmetry" - }, "ncs": { "ui:field": "table", "ui:group": "symmetry" @@ -4745,9 +4556,6 @@ "nseg20": { "ui:group": "flexibility" }, - "nfle": { - "ui:group": "flexibility" - }, "fle": { "ui:field": "table", "ui:group": "flexibility" @@ -5269,15 +5077,6 @@ "type": "string", "format": "uri-reference" }, - "numc2sym": { - "default": 0, - "title": "Number of C2 symmetry restraints", - "description": "Defines the number of C2 symmetry restraints.", - "$comment": "Defines the number of C2 symmetry restraints. For each, a pair of segments on which the symmetry restraint is applied will have to be defined. Those must all have the same length.", - "type": "number", - "maximum": 40, - "minimum": 0 - }, "c2sym": { "type": "array", "title": "C2 symmetry restraints", @@ -5343,15 +5142,6 @@ "additionalProperties": false } }, - "numc3sym": { - "default": 0, - "title": "Number of C3 symmetry restraints", - "description": "Defines the number of C3 symmetry restraints.", - "$comment": "Defines the number of C3 symmetry restraints. For each, three segments on which the symmetry restraint is applied will have to be defined. Those must all have the same length.", - "type": "number", - "maximum": 10, - "minimum": 0 - }, "c3sym": { "type": "array", "title": "C3 symmetry restraints", @@ -5444,15 +5234,6 @@ "additionalProperties": false } }, - "numc4sym": { - "default": 0, - "title": "Number of C4 symmetry restraints", - "description": "Defines the number of C4 symmetry restraints.", - "$comment": "Defines the number of C4 symmetry restraints. For each, four segments on which the symmetry restraint is applied will have to be defined. Those must all have the same length.", - "type": "number", - "maximum": 10, - "minimum": 0 - }, "c4sym": { "type": "array", "title": "C4 symmetry restraints", @@ -5572,15 +5353,6 @@ "additionalProperties": false } }, - "numc5sym": { - "default": 0, - "title": "Number of C5 symmetry restraints", - "description": "Defines the number of C5 symmetry restraints.", - "$comment": "Defines the number of C5 symmetry restraints. For each, five segments on which the symmetry restraint is applied will have to be defined. Those must all have the same length.", - "type": "number", - "maximum": 10, - "minimum": 0 - }, "c5sym": { "type": "array", "title": "C5 symmetry restraints", @@ -5727,15 +5499,6 @@ "additionalProperties": false } }, - "numc6sym": { - "default": 0, - "title": "Number of C6 symmetry restraints", - "description": "Defines the number of C6 symmetry restraints.", - "$comment": "Defines the number of C6 symmetry restraints. For each, six segments on which the symmetry restraint is applied will have to be defined. Those must all have the same length.", - "type": "number", - "maximum": 10, - "minimum": 0 - }, "c6sym": { "type": "array", "title": "C6 symmetry restraints", @@ -5909,15 +5672,6 @@ "additionalProperties": false } }, - "nums3sym": { - "default": 0, - "title": "Number of S3 symmetry restraints", - "description": "Defines the number of S3 symmetry restraints.", - "$comment": "Defines the number of S3 symmetry restraints. For each, three segments on which the symmetry restraint is applied will have to be defined. Those must all have the same length.", - "type": "number", - "maximum": 10, - "minimum": 0 - }, "s3sym": { "type": "array", "title": "S3 symmetry restraints", @@ -6026,15 +5780,6 @@ "maximum": 1000, "minimum": 0 }, - "numncs": { - "default": 0, - "title": "Number of non-crystallographic symmetry restraints", - "description": "Number of non-crystallographic symmetry restraints (NCS).", - "$comment": "Number of non-crystallographic symmetry restraints. For each pairs of segments will have to be defined. Note that those must contain exactly the same residues/atom combinations.", - "type": "number", - "maximum": 100, - "minimum": 0 - }, "ncs": { "type": "array", "title": "Non-crystallographic symmetry restraints", @@ -6496,15 +6241,6 @@ "maximum": 1000, "minimum": -1 }, - "nfle": { - "default": 0, - "title": "Number of fully flexible segments", - "description": "This defines the number of fully flexible segments.", - "$comment": "This parameter defines the number of fully flexible segments for all molecules. If >=1 then those must be defined manually with segment ID (segid) in the fle_seg_* variable, followed by the starting and ending residue numbers in the fle_sta_* and fle_end_* variables.", - "type": "number", - "maximum": 1000, - "minimum": 0 - }, "fle": { "type": "array", "title": "Fully flexible segments", @@ -6630,44 +6366,26 @@ "ui:widget": "file", "ui:group": "symmetry" }, - "numc2sym": { - "ui:group": "symmetry" - }, "c2sym": { "ui:field": "table", "ui:group": "symmetry" }, - "numc3sym": { - "ui:group": "symmetry" - }, "c3sym": { "ui:field": "table", "ui:group": "symmetry" }, - "numc4sym": { - "ui:group": "symmetry" - }, "c4sym": { "ui:field": "table", "ui:group": "symmetry" }, - "numc5sym": { - "ui:group": "symmetry" - }, "c5sym": { "ui:field": "table", "ui:group": "symmetry" }, - "numc6sym": { - "ui:group": "symmetry" - }, "c6sym": { "ui:field": "table", "ui:group": "symmetry" }, - "nums3sym": { - "ui:group": "symmetry" - }, "s3sym": { "ui:field": "table", "ui:group": "symmetry" @@ -6678,9 +6396,6 @@ "kncs": { "ui:group": "symmetry" }, - "numncs": { - "ui:group": "symmetry" - }, "ncs": { "ui:field": "table", "ui:group": "symmetry" @@ -6813,9 +6528,6 @@ "nseg20": { "ui:group": "flexibility" }, - "nfle": { - "ui:group": "flexibility" - }, "fle": { "ui:field": "table", "ui:group": "flexibility" @@ -7446,7 +7158,7 @@ "type": "string", "format": "uri-reference" }, - "numc2sym": { + "nc2sym": { "default": 0, "title": "Number of C2 symmetry restraints", "description": "Defines the number of C2 symmetry restraints.", @@ -7520,7 +7232,7 @@ "additionalProperties": false } }, - "numc3sym": { + "nc3sym": { "default": 0, "title": "Number of C3 symmetry restraints", "description": "Defines the number of C3 symmetry restraints.", @@ -7621,7 +7333,7 @@ "additionalProperties": false } }, - "numc4sym": { + "nc4sym": { "default": 0, "title": "Number of C4 symmetry restraints", "description": "Defines the number of C4 symmetry restraints.", @@ -7749,7 +7461,7 @@ "additionalProperties": false } }, - "numc5sym": { + "nc5sym": { "default": 0, "title": "Number of C5 symmetry restraints", "description": "Defines the number of C5 symmetry restraints.", @@ -7904,7 +7616,7 @@ "additionalProperties": false } }, - "numc6sym": { + "nc6sym": { "default": 0, "title": "Number of C6 symmetry restraints", "description": "Defines the number of C6 symmetry restraints.", @@ -8086,7 +7798,7 @@ "additionalProperties": false } }, - "nums3sym": { + "ns3sym": { "default": 0, "title": "Number of S3 symmetry restraints", "description": "Defines the number of S3 symmetry restraints.", @@ -8187,96 +7899,6 @@ "additionalProperties": false } }, - "ncs_on": { - "default": false, - "title": "Non-crystallographic symmetry restraints", - "description": "Non-crystallographic symmetry restraints to ensure two molecules will have the same conformation.", - "$comment": "Non-crystallographic symmetry restraints to ensure two molecules will have the same conformation. This does not apply any symmetry between the two molecules but rather defines restraints such as the RMSD between those is 0.", - "type": "boolean" - }, - "kncs": { - "default": 1, - "title": "Force constant for non-crystallographic restraints", - "description": "Force constant for non-crystallographic restraints", - "$comment": "Force constant for non-crystallographic restraints", - "type": "number", - "maximum": 1000, - "minimum": 0 - }, - "numncs": { - "default": 0, - "title": "Number of non-crystallographic symmetry restraints", - "description": "Number of non-crystallographic symmetry restraints (NCS).", - "$comment": "Number of non-crystallographic symmetry restraints. For each pairs of segments will have to be defined. Note that those must contain exactly the same residues/atom combinations.", - "type": "number", - "maximum": 100, - "minimum": 0 - }, - "ncs": { - "type": "array", - "title": "Non-crystallographic symmetry restraints", - "items": { - "type": "object", - "properties": { - "sta1": { - "title": "Residue number of first residue", - "description": "Residue number of first residue in the first NCS segment", - "$comment": "Residue number of first residue in the first NCS segment", - "type": "number", - "maximum": 9999, - "minimum": -9999, - "format": "residue" - }, - "end1": { - "title": "Residue number of last residue", - "description": "Residue number of last residue in the first NCS segment", - "$comment": "Residue number of last residue in the first NCS segment", - "type": "number", - "maximum": 9999, - "minimum": -9999, - "format": "residue" - }, - "seg1": { - "title": "Segment ID of first NCS segment", - "description": "Segment ID of first NCS segment", - "$comment": "Segment ID of first NCS segment", - "type": "string", - "minLength": 0, - "maxLength": 100, - "format": "chain" - }, - "sta2": { - "title": "Residue number of first residue", - "description": "Residue number of first residue in the second NCS segment", - "$comment": "Residue number of first residue in the second NCS segment", - "type": "number", - "maximum": 9999, - "minimum": -9999, - "format": "residue" - }, - "end2": { - "title": "Residue number of last residue", - "description": "Residue number of last residue in the second NCS segment", - "$comment": "Residue number of last residue in the second NCS segment", - "type": "number", - "maximum": 9999, - "minimum": -9999, - "format": "residue" - }, - "seg2": { - "title": "Segment ID of second NCS segment", - "description": "Segment ID of second NCS segment", - "$comment": "Segment ID of second NCS segment", - "type": "string", - "minLength": 0, - "maxLength": 100, - "format": "chain" - } - }, - "required": [], - "additionalProperties": false - } - }, "w_dist": { "default": 0.01, "title": "Weight of the distance restraint energy", @@ -8490,61 +8112,48 @@ "ui:widget": "file", "ui:group": "symmetry" }, - "numc2sym": { + "nc2sym": { "ui:group": "symmetry" }, "c2sym": { "ui:field": "table", "ui:group": "symmetry" }, - "numc3sym": { + "nc3sym": { "ui:group": "symmetry" }, "c3sym": { "ui:field": "table", "ui:group": "symmetry" }, - "numc4sym": { + "nc4sym": { "ui:group": "symmetry" }, "c4sym": { "ui:field": "table", "ui:group": "symmetry" }, - "numc5sym": { + "nc5sym": { "ui:group": "symmetry" }, "c5sym": { "ui:field": "table", "ui:group": "symmetry" }, - "numc6sym": { + "nc6sym": { "ui:group": "symmetry" }, "c6sym": { "ui:field": "table", "ui:group": "symmetry" }, - "nums3sym": { + "ns3sym": { "ui:group": "symmetry" }, "s3sym": { "ui:field": "table", "ui:group": "symmetry" }, - "ncs_on": { - "ui:group": "symmetry" - }, - "kncs": { - "ui:group": "symmetry" - }, - "numncs": { - "ui:group": "symmetry" - }, - "ncs": { - "ui:field": "table", - "ui:group": "symmetry" - }, "w_dist": { "ui:group": "scoring" }, @@ -8641,12 +8250,6 @@ "items": { "flatten": true } - }, - "ncs": { - "indexed": true, - "items": { - "flatten": true - } } } }, diff --git a/app/catalogs/haddock3.guru.json b/app/catalogs/haddock3.guru.json index 5fd80a96..25d27616 100644 --- a/app/catalogs/haddock3.guru.json +++ b/app/catalogs/haddock3.guru.json @@ -1081,15 +1081,6 @@ "type": "string", "format": "uri-reference" }, - "numc2sym": { - "default": 0, - "title": "Number of C2 symmetry restraints", - "description": "Defines the number of C2 symmetry restraints.", - "$comment": "Defines the number of C2 symmetry restraints. For each, a pair of segments on which the symmetry restraint is applied will have to be defined. Those must all have the same length.", - "type": "number", - "maximum": 40, - "minimum": 0 - }, "c2sym": { "type": "array", "title": "C2 symmetry restraints", @@ -1155,15 +1146,6 @@ "additionalProperties": false } }, - "numc3sym": { - "default": 0, - "title": "Number of C3 symmetry restraints", - "description": "Defines the number of C3 symmetry restraints.", - "$comment": "Defines the number of C3 symmetry restraints. For each, three segments on which the symmetry restraint is applied will have to be defined. Those must all have the same length.", - "type": "number", - "maximum": 10, - "minimum": 0 - }, "c3sym": { "type": "array", "title": "C3 symmetry restraints", @@ -1256,15 +1238,6 @@ "additionalProperties": false } }, - "numc4sym": { - "default": 0, - "title": "Number of C4 symmetry restraints", - "description": "Defines the number of C4 symmetry restraints.", - "$comment": "Defines the number of C4 symmetry restraints. For each, four segments on which the symmetry restraint is applied will have to be defined. Those must all have the same length.", - "type": "number", - "maximum": 10, - "minimum": 0 - }, "c4sym": { "type": "array", "title": "C4 symmetry restraints", @@ -1384,15 +1357,6 @@ "additionalProperties": false } }, - "numc5sym": { - "default": 0, - "title": "Number of C5 symmetry restraints", - "description": "Defines the number of C5 symmetry restraints.", - "$comment": "Defines the number of C5 symmetry restraints. For each, five segments on which the symmetry restraint is applied will have to be defined. Those must all have the same length.", - "type": "number", - "maximum": 10, - "minimum": 0 - }, "c5sym": { "type": "array", "title": "C5 symmetry restraints", @@ -1539,15 +1503,6 @@ "additionalProperties": false } }, - "numc6sym": { - "default": 0, - "title": "Number of C6 symmetry restraints", - "description": "Defines the number of C6 symmetry restraints.", - "$comment": "Defines the number of C6 symmetry restraints. For each, six segments on which the symmetry restraint is applied will have to be defined. Those must all have the same length.", - "type": "number", - "maximum": 10, - "minimum": 0 - }, "c6sym": { "type": "array", "title": "C6 symmetry restraints", @@ -1721,15 +1676,6 @@ "additionalProperties": false } }, - "nums3sym": { - "default": 0, - "title": "Number of S3 symmetry restraints", - "description": "Defines the number of S3 symmetry restraints.", - "$comment": "Defines the number of S3 symmetry restraints. For each, three segments on which the symmetry restraint is applied will have to be defined. Those must all have the same length.", - "type": "number", - "maximum": 10, - "minimum": 0 - }, "s3sym": { "type": "array", "title": "S3 symmetry restraints", @@ -1838,15 +1784,6 @@ "maximum": 1000, "minimum": 0 }, - "numncs": { - "default": 0, - "title": "Number of non-crystallographic symmetry restraints", - "description": "Number of non-crystallographic symmetry restraints (NCS).", - "$comment": "Number of non-crystallographic symmetry restraints. For each pairs of segments will have to be defined. Note that those must contain exactly the same residues/atom combinations.", - "type": "number", - "maximum": 100, - "minimum": 0 - }, "ncs": { "type": "array", "title": "Non-crystallographic symmetry restraints", @@ -2297,15 +2234,6 @@ "maximum": 1000, "minimum": -1 }, - "nfle": { - "default": 0, - "title": "Number of fully flexible segments", - "description": "This defines the number of fully flexible segments.", - "$comment": "This parameter defines the number of fully flexible segments for all molecules. If >=1 then those must be defined manually with segment ID (segid) in the fle_seg_* variable, followed by the starting and ending residue numbers in the fle_sta_* and fle_end_* variables.", - "type": "number", - "maximum": 1000, - "minimum": 0 - }, "fle": { "type": "array", "title": "Fully flexible segments", @@ -2422,44 +2350,26 @@ "ui:widget": "file", "ui:group": "symmetry" }, - "numc2sym": { - "ui:group": "symmetry" - }, "c2sym": { "ui:field": "table", "ui:group": "symmetry" }, - "numc3sym": { - "ui:group": "symmetry" - }, "c3sym": { "ui:field": "table", "ui:group": "symmetry" }, - "numc4sym": { - "ui:group": "symmetry" - }, "c4sym": { "ui:field": "table", "ui:group": "symmetry" }, - "numc5sym": { - "ui:group": "symmetry" - }, "c5sym": { "ui:field": "table", "ui:group": "symmetry" }, - "numc6sym": { - "ui:group": "symmetry" - }, "c6sym": { "ui:field": "table", "ui:group": "symmetry" }, - "nums3sym": { - "ui:group": "symmetry" - }, "s3sym": { "ui:field": "table", "ui:group": "symmetry" @@ -2470,9 +2380,6 @@ "kncs": { "ui:group": "symmetry" }, - "numncs": { - "ui:group": "symmetry" - }, "ncs": { "ui:field": "table", "ui:group": "symmetry" @@ -2605,9 +2512,6 @@ "nseg20": { "ui:group": "flexibility" }, - "nfle": { - "ui:group": "flexibility" - }, "fle": { "ui:field": "table", "ui:group": "flexibility" @@ -3209,15 +3113,6 @@ "type": "string", "format": "uri-reference" }, - "numc2sym": { - "default": 0, - "title": "Number of C2 symmetry restraints", - "description": "Defines the number of C2 symmetry restraints.", - "$comment": "Defines the number of C2 symmetry restraints. For each, a pair of segments on which the symmetry restraint is applied will have to be defined. Those must all have the same length.", - "type": "number", - "maximum": 40, - "minimum": 0 - }, "c2sym": { "type": "array", "title": "C2 symmetry restraints", @@ -3283,15 +3178,6 @@ "additionalProperties": false } }, - "numc3sym": { - "default": 0, - "title": "Number of C3 symmetry restraints", - "description": "Defines the number of C3 symmetry restraints.", - "$comment": "Defines the number of C3 symmetry restraints. For each, three segments on which the symmetry restraint is applied will have to be defined. Those must all have the same length.", - "type": "number", - "maximum": 10, - "minimum": 0 - }, "c3sym": { "type": "array", "title": "C3 symmetry restraints", @@ -3384,15 +3270,6 @@ "additionalProperties": false } }, - "numc4sym": { - "default": 0, - "title": "Number of C4 symmetry restraints", - "description": "Defines the number of C4 symmetry restraints.", - "$comment": "Defines the number of C4 symmetry restraints. For each, four segments on which the symmetry restraint is applied will have to be defined. Those must all have the same length.", - "type": "number", - "maximum": 10, - "minimum": 0 - }, "c4sym": { "type": "array", "title": "C4 symmetry restraints", @@ -3512,15 +3389,6 @@ "additionalProperties": false } }, - "numc5sym": { - "default": 0, - "title": "Number of C5 symmetry restraints", - "description": "Defines the number of C5 symmetry restraints.", - "$comment": "Defines the number of C5 symmetry restraints. For each, five segments on which the symmetry restraint is applied will have to be defined. Those must all have the same length.", - "type": "number", - "maximum": 10, - "minimum": 0 - }, "c5sym": { "type": "array", "title": "C5 symmetry restraints", @@ -3667,15 +3535,6 @@ "additionalProperties": false } }, - "numc6sym": { - "default": 0, - "title": "Number of C6 symmetry restraints", - "description": "Defines the number of C6 symmetry restraints.", - "$comment": "Defines the number of C6 symmetry restraints. For each, six segments on which the symmetry restraint is applied will have to be defined. Those must all have the same length.", - "type": "number", - "maximum": 10, - "minimum": 0 - }, "c6sym": { "type": "array", "title": "C6 symmetry restraints", @@ -3849,15 +3708,6 @@ "additionalProperties": false } }, - "nums3sym": { - "default": 0, - "title": "Number of S3 symmetry restraints", - "description": "Defines the number of S3 symmetry restraints.", - "$comment": "Defines the number of S3 symmetry restraints. For each, three segments on which the symmetry restraint is applied will have to be defined. Those must all have the same length.", - "type": "number", - "maximum": 10, - "minimum": 0 - }, "s3sym": { "type": "array", "title": "S3 symmetry restraints", @@ -3966,15 +3816,6 @@ "maximum": 1000, "minimum": 0 }, - "numncs": { - "default": 0, - "title": "Number of non-crystallographic symmetry restraints", - "description": "Number of non-crystallographic symmetry restraints (NCS).", - "$comment": "Number of non-crystallographic symmetry restraints. For each pairs of segments will have to be defined. Note that those must contain exactly the same residues/atom combinations.", - "type": "number", - "maximum": 100, - "minimum": 0 - }, "ncs": { "type": "array", "title": "Non-crystallographic symmetry restraints", @@ -4603,15 +4444,6 @@ "maximum": 1000, "minimum": -1 }, - "nfle": { - "default": 0, - "title": "Number of fully flexible segments", - "description": "This defines the number of fully flexible segments.", - "$comment": "This parameter defines the number of fully flexible segments for all molecules. If >=1 then those must be defined manually with segment ID (segid) in the fle_seg_* variable, followed by the starting and ending residue numbers in the fle_sta_* and fle_end_* variables.", - "type": "number", - "maximum": 1000, - "minimum": 0 - }, "fle": { "type": "array", "title": "Fully flexible segments", @@ -4773,44 +4605,26 @@ "ui:widget": "file", "ui:group": "symmetry" }, - "numc2sym": { - "ui:group": "symmetry" - }, "c2sym": { "ui:field": "table", "ui:group": "symmetry" }, - "numc3sym": { - "ui:group": "symmetry" - }, "c3sym": { "ui:field": "table", "ui:group": "symmetry" }, - "numc4sym": { - "ui:group": "symmetry" - }, "c4sym": { "ui:field": "table", "ui:group": "symmetry" }, - "numc5sym": { - "ui:group": "symmetry" - }, "c5sym": { "ui:field": "table", "ui:group": "symmetry" }, - "numc6sym": { - "ui:group": "symmetry" - }, "c6sym": { "ui:field": "table", "ui:group": "symmetry" }, - "nums3sym": { - "ui:group": "symmetry" - }, "s3sym": { "ui:field": "table", "ui:group": "symmetry" @@ -4821,9 +4635,6 @@ "kncs": { "ui:group": "symmetry" }, - "numncs": { - "ui:group": "symmetry" - }, "ncs": { "ui:field": "table", "ui:group": "symmetry" @@ -5016,9 +4827,6 @@ "nseg20": { "ui:group": "flexibility" }, - "nfle": { - "ui:group": "flexibility" - }, "fle": { "ui:field": "table", "ui:group": "flexibility" @@ -5552,15 +5360,6 @@ "type": "string", "format": "uri-reference" }, - "numc2sym": { - "default": 0, - "title": "Number of C2 symmetry restraints", - "description": "Defines the number of C2 symmetry restraints.", - "$comment": "Defines the number of C2 symmetry restraints. For each, a pair of segments on which the symmetry restraint is applied will have to be defined. Those must all have the same length.", - "type": "number", - "maximum": 40, - "minimum": 0 - }, "c2sym": { "type": "array", "title": "C2 symmetry restraints", @@ -5626,15 +5425,6 @@ "additionalProperties": false } }, - "numc3sym": { - "default": 0, - "title": "Number of C3 symmetry restraints", - "description": "Defines the number of C3 symmetry restraints.", - "$comment": "Defines the number of C3 symmetry restraints. For each, three segments on which the symmetry restraint is applied will have to be defined. Those must all have the same length.", - "type": "number", - "maximum": 10, - "minimum": 0 - }, "c3sym": { "type": "array", "title": "C3 symmetry restraints", @@ -5727,15 +5517,6 @@ "additionalProperties": false } }, - "numc4sym": { - "default": 0, - "title": "Number of C4 symmetry restraints", - "description": "Defines the number of C4 symmetry restraints.", - "$comment": "Defines the number of C4 symmetry restraints. For each, four segments on which the symmetry restraint is applied will have to be defined. Those must all have the same length.", - "type": "number", - "maximum": 10, - "minimum": 0 - }, "c4sym": { "type": "array", "title": "C4 symmetry restraints", @@ -5855,15 +5636,6 @@ "additionalProperties": false } }, - "numc5sym": { - "default": 0, - "title": "Number of C5 symmetry restraints", - "description": "Defines the number of C5 symmetry restraints.", - "$comment": "Defines the number of C5 symmetry restraints. For each, five segments on which the symmetry restraint is applied will have to be defined. Those must all have the same length.", - "type": "number", - "maximum": 10, - "minimum": 0 - }, "c5sym": { "type": "array", "title": "C5 symmetry restraints", @@ -6010,15 +5782,6 @@ "additionalProperties": false } }, - "numc6sym": { - "default": 0, - "title": "Number of C6 symmetry restraints", - "description": "Defines the number of C6 symmetry restraints.", - "$comment": "Defines the number of C6 symmetry restraints. For each, six segments on which the symmetry restraint is applied will have to be defined. Those must all have the same length.", - "type": "number", - "maximum": 10, - "minimum": 0 - }, "c6sym": { "type": "array", "title": "C6 symmetry restraints", @@ -6192,15 +5955,6 @@ "additionalProperties": false } }, - "nums3sym": { - "default": 0, - "title": "Number of S3 symmetry restraints", - "description": "Defines the number of S3 symmetry restraints.", - "$comment": "Defines the number of S3 symmetry restraints. For each, three segments on which the symmetry restraint is applied will have to be defined. Those must all have the same length.", - "type": "number", - "maximum": 10, - "minimum": 0 - }, "s3sym": { "type": "array", "title": "S3 symmetry restraints", @@ -6309,15 +6063,6 @@ "maximum": 1000, "minimum": 0 }, - "numncs": { - "default": 0, - "title": "Number of non-crystallographic symmetry restraints", - "description": "Number of non-crystallographic symmetry restraints (NCS).", - "$comment": "Number of non-crystallographic symmetry restraints. For each pairs of segments will have to be defined. Note that those must contain exactly the same residues/atom combinations.", - "type": "number", - "maximum": 100, - "minimum": 0 - }, "ncs": { "type": "array", "title": "Non-crystallographic symmetry restraints", @@ -6814,15 +6559,6 @@ "maximum": 1000, "minimum": -1 }, - "nfle": { - "default": 0, - "title": "Number of fully flexible segments", - "description": "This defines the number of fully flexible segments.", - "$comment": "This parameter defines the number of fully flexible segments for all molecules. If >=1 then those must be defined manually with segment ID (segid) in the fle_seg_* variable, followed by the starting and ending residue numbers in the fle_sta_* and fle_end_* variables.", - "type": "number", - "maximum": 1000, - "minimum": 0 - }, "fle": { "type": "array", "title": "Fully flexible segments", @@ -6948,44 +6684,26 @@ "ui:widget": "file", "ui:group": "symmetry" }, - "numc2sym": { - "ui:group": "symmetry" - }, "c2sym": { "ui:field": "table", "ui:group": "symmetry" }, - "numc3sym": { - "ui:group": "symmetry" - }, "c3sym": { "ui:field": "table", "ui:group": "symmetry" }, - "numc4sym": { - "ui:group": "symmetry" - }, "c4sym": { "ui:field": "table", "ui:group": "symmetry" }, - "numc5sym": { - "ui:group": "symmetry" - }, "c5sym": { "ui:field": "table", "ui:group": "symmetry" }, - "numc6sym": { - "ui:group": "symmetry" - }, "c6sym": { "ui:field": "table", "ui:group": "symmetry" }, - "nums3sym": { - "ui:group": "symmetry" - }, "s3sym": { "ui:field": "table", "ui:group": "symmetry" @@ -6996,9 +6714,6 @@ "kncs": { "ui:group": "symmetry" }, - "numncs": { - "ui:group": "symmetry" - }, "ncs": { "ui:field": "table", "ui:group": "symmetry" @@ -7143,9 +6858,6 @@ "nseg20": { "ui:group": "flexibility" }, - "nfle": { - "ui:group": "flexibility" - }, "fle": { "ui:field": "table", "ui:group": "flexibility" @@ -7856,7 +7568,7 @@ "type": "string", "format": "uri-reference" }, - "numc2sym": { + "nc2sym": { "default": 0, "title": "Number of C2 symmetry restraints", "description": "Defines the number of C2 symmetry restraints.", @@ -7930,7 +7642,7 @@ "additionalProperties": false } }, - "numc3sym": { + "nc3sym": { "default": 0, "title": "Number of C3 symmetry restraints", "description": "Defines the number of C3 symmetry restraints.", @@ -8031,7 +7743,7 @@ "additionalProperties": false } }, - "numc4sym": { + "nc4sym": { "default": 0, "title": "Number of C4 symmetry restraints", "description": "Defines the number of C4 symmetry restraints.", @@ -8159,7 +7871,7 @@ "additionalProperties": false } }, - "numc5sym": { + "nc5sym": { "default": 0, "title": "Number of C5 symmetry restraints", "description": "Defines the number of C5 symmetry restraints.", @@ -8314,7 +8026,7 @@ "additionalProperties": false } }, - "numc6sym": { + "nc6sym": { "default": 0, "title": "Number of C6 symmetry restraints", "description": "Defines the number of C6 symmetry restraints.", @@ -8496,7 +8208,7 @@ "additionalProperties": false } }, - "nums3sym": { + "ns3sym": { "default": 0, "title": "Number of S3 symmetry restraints", "description": "Defines the number of S3 symmetry restraints.", @@ -8597,96 +8309,6 @@ "additionalProperties": false } }, - "ncs_on": { - "default": false, - "title": "Non-crystallographic symmetry restraints", - "description": "Non-crystallographic symmetry restraints to ensure two molecules will have the same conformation.", - "$comment": "Non-crystallographic symmetry restraints to ensure two molecules will have the same conformation. This does not apply any symmetry between the two molecules but rather defines restraints such as the RMSD between those is 0.", - "type": "boolean" - }, - "kncs": { - "default": 1, - "title": "Force constant for non-crystallographic restraints", - "description": "Force constant for non-crystallographic restraints", - "$comment": "Force constant for non-crystallographic restraints", - "type": "number", - "maximum": 1000, - "minimum": 0 - }, - "numncs": { - "default": 0, - "title": "Number of non-crystallographic symmetry restraints", - "description": "Number of non-crystallographic symmetry restraints (NCS).", - "$comment": "Number of non-crystallographic symmetry restraints. For each pairs of segments will have to be defined. Note that those must contain exactly the same residues/atom combinations.", - "type": "number", - "maximum": 100, - "minimum": 0 - }, - "ncs": { - "type": "array", - "title": "Non-crystallographic symmetry restraints", - "items": { - "type": "object", - "properties": { - "sta1": { - "title": "Residue number of first residue", - "description": "Residue number of first residue in the first NCS segment", - "$comment": "Residue number of first residue in the first NCS segment", - "type": "number", - "maximum": 9999, - "minimum": -9999, - "format": "residue" - }, - "end1": { - "title": "Residue number of last residue", - "description": "Residue number of last residue in the first NCS segment", - "$comment": "Residue number of last residue in the first NCS segment", - "type": "number", - "maximum": 9999, - "minimum": -9999, - "format": "residue" - }, - "seg1": { - "title": "Segment ID of first NCS segment", - "description": "Segment ID of first NCS segment", - "$comment": "Segment ID of first NCS segment", - "type": "string", - "minLength": 0, - "maxLength": 100, - "format": "chain" - }, - "sta2": { - "title": "Residue number of first residue", - "description": "Residue number of first residue in the second NCS segment", - "$comment": "Residue number of first residue in the second NCS segment", - "type": "number", - "maximum": 9999, - "minimum": -9999, - "format": "residue" - }, - "end2": { - "title": "Residue number of last residue", - "description": "Residue number of last residue in the second NCS segment", - "$comment": "Residue number of last residue in the second NCS segment", - "type": "number", - "maximum": 9999, - "minimum": -9999, - "format": "residue" - }, - "seg2": { - "title": "Segment ID of second NCS segment", - "description": "Segment ID of second NCS segment", - "$comment": "Segment ID of second NCS segment", - "type": "string", - "minLength": 0, - "maxLength": 100, - "format": "chain" - } - }, - "required": [], - "additionalProperties": false - } - }, "w_dist": { "default": 0.01, "title": "Weight of the distance restraint energy", @@ -8912,61 +8534,48 @@ "ui:widget": "file", "ui:group": "symmetry" }, - "numc2sym": { + "nc2sym": { "ui:group": "symmetry" }, "c2sym": { "ui:field": "table", "ui:group": "symmetry" }, - "numc3sym": { + "nc3sym": { "ui:group": "symmetry" }, "c3sym": { "ui:field": "table", "ui:group": "symmetry" }, - "numc4sym": { + "nc4sym": { "ui:group": "symmetry" }, "c4sym": { "ui:field": "table", "ui:group": "symmetry" }, - "numc5sym": { + "nc5sym": { "ui:group": "symmetry" }, "c5sym": { "ui:field": "table", "ui:group": "symmetry" }, - "numc6sym": { + "nc6sym": { "ui:group": "symmetry" }, "c6sym": { "ui:field": "table", "ui:group": "symmetry" }, - "nums3sym": { + "ns3sym": { "ui:group": "symmetry" }, "s3sym": { "ui:field": "table", "ui:group": "symmetry" }, - "ncs_on": { - "ui:group": "symmetry" - }, - "kncs": { - "ui:group": "symmetry" - }, - "numncs": { - "ui:group": "symmetry" - }, - "ncs": { - "ui:field": "table", - "ui:group": "symmetry" - }, "w_dist": { "ui:group": "scoring" }, @@ -9063,12 +8672,6 @@ "items": { "flatten": true } - }, - "ncs": { - "indexed": true, - "items": { - "flatten": true - } } } }, From 59cbde42ee16e50651823df7e8289c571bcd952e Mon Sep 17 00:00:00 2001 From: Stefan Verhoeven Date: Wed, 2 Oct 2024 10:32:50 +0200 Subject: [PATCH 6/9] Fix test --- app/models/application.server.test.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/models/application.server.test.ts b/app/models/application.server.test.ts index d42f3d11..3020420c 100644 --- a/app/models/application.server.test.ts +++ b/app/models/application.server.test.ts @@ -211,7 +211,7 @@ mode = 'local' postprocess = true clean = true offline = false -less_io = true +debug = false ncores = 1 [alascan] @@ -239,7 +239,7 @@ mode = 'local' postprocess = true clean = true offline = false -less_io = true +debug = false ncores = 1 [clustfcc] From 45724aca4aba3841ea8abc782d9f7527c9f9021f Mon Sep 17 00:00:00 2001 From: Stefan Verhoeven Date: Wed, 2 Oct 2024 10:51:25 +0200 Subject: [PATCH 7/9] Use py3.12 + dont skip kaleido dep As it part of the deps now --- deploy/Dockerfile.bartenderhaddock3 | 10 +++++----- deploy/containerslurm/Dockerfile | 8 +++----- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/deploy/Dockerfile.bartenderhaddock3 b/deploy/Dockerfile.bartenderhaddock3 index b9763ba6..83b5d0ff 100644 --- a/deploy/Dockerfile.bartenderhaddock3 +++ b/deploy/Dockerfile.bartenderhaddock3 @@ -1,5 +1,5 @@ # Dockerfile for bartender web service with haddock3, lightdock, gdock executables. -FROM python:3.9-slim-bookworm AS builder +FROM python:3.12-slim-bookworm AS builder LABEL org.opencontainers.image.source=https://github.com/i-VRESSE/haddock3-webapp/blob/main/deploy/Dockerfile.bartenderhaddock3 LABEL org.opencontainers.image.licenses=Apache-2.0 LABEL org.opencontainers.image.description="bartender web service with haddock3, lightdock, gdock executables. Image does contain cns executable, which is free for non-profit users, see https://github.com/haddocking/haddock3/blob/main/DISCLAIMER.md." @@ -48,15 +48,15 @@ RUN pip install . # haddock3 ============================================================================================================ WORKDIR /opt/haddock3 -RUN echo cachebust=8 && git clone --depth 1 -b ${HADDOCK3_VERSION} https://github.com/${HADDOCK3_GHORG}/haddock3.git . -# Do not need kaleido (226Mb) for the webapp -RUN grep -v kaleido requirements.txt > requirements.pruned.txt && mv requirements.pruned.txt requirements.txt +RUN echo cachebust=9 && git clone --depth 1 -b ${HADDOCK3_VERSION} https://github.com/${HADDOCK3_GHORG}/haddock3.git . RUN pip install . +# For restraints web service +RUN pip install fastapi uvicorn WORKDIR / # final image ========================================================================================================= -FROM python:3.9-slim-bookworm +FROM python:3.12-slim-bookworm COPY --from=builder /wait /wait COPY --from=builder /venv /venv diff --git a/deploy/containerslurm/Dockerfile b/deploy/containerslurm/Dockerfile index f4774d6c..c07f3b89 100644 --- a/deploy/containerslurm/Dockerfile +++ b/deploy/containerslurm/Dockerfile @@ -23,7 +23,7 @@ RUN apt-get update && \ RUN add-apt-repository -y ppa:deadsnakes/ppa && \ DEBIAN_FRONTEND=noninteractive TZ=Etc/UTC apt install -y python3.9 python3.9-dev python3.9-distutils && \ wget https://bootstrap.pypa.io/get-pip.py && \ - python3.9 get-pip.py && \ + python3 get-pip.py && \ rm get-pip.py && \ pip install -U pip==23.3.2 @@ -36,14 +36,12 @@ RUN /usr/local/bin/pip install lightdock==${LIGHTDOCK_VERSION} WORKDIR /opt/gdock RUN git clone --depth 1 -b ${GDOCK_VERSION} https://github.com/gdocking/gdock.git . RUN pip install matplotlib==3.8.4 # dont install 3.9.0rc2 -RUN python3.9 setup.py develop +RUN python3 setup.py develop RUN bash install.sh /opt/gdock ENV GDOCK_PATH=/opt/gdock # haddock3 ============================================================================================================ WORKDIR /opt/haddock3 -RUN echo cachebust=7 && git clone --depth 1 -b ${HADDOCK3_VERSION} https://github.com/${HADDOCK3_GHORG}/haddock3.git . -# Do not need kaleido (226Mb) for the webapp -RUN grep -v kaleido requirements.txt > requirements.pruned.txt && mv requirements.pruned.txt requirements.txt +RUN echo cachebust=8 && git clone --depth 1 -b ${HADDOCK3_VERSION} https://github.com/${HADDOCK3_GHORG}/haddock3.git . RUN pip install . WORKDIR / From 74891cf3b31799e2cd54180b89d3c7fd80bc8672 Mon Sep 17 00:00:00 2001 From: Stefan Verhoeven Date: Wed, 2 Oct 2024 12:03:02 +0200 Subject: [PATCH 8/9] Downgrade to py3.9 + make cns work + use bartender with redis fix Downgrade of python to 3.9 was needed because lightdock installation failed. --- deploy/Dockerfile.bartenderhaddock3 | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/deploy/Dockerfile.bartenderhaddock3 b/deploy/Dockerfile.bartenderhaddock3 index 83b5d0ff..c9fb9e78 100644 --- a/deploy/Dockerfile.bartenderhaddock3 +++ b/deploy/Dockerfile.bartenderhaddock3 @@ -1,5 +1,5 @@ # Dockerfile for bartender web service with haddock3, lightdock, gdock executables. -FROM python:3.12-slim-bookworm AS builder +FROM python:3.9-slim-bookworm AS builder LABEL org.opencontainers.image.source=https://github.com/i-VRESSE/haddock3-webapp/blob/main/deploy/Dockerfile.bartenderhaddock3 LABEL org.opencontainers.image.licenses=Apache-2.0 LABEL org.opencontainers.image.description="bartender web service with haddock3, lightdock, gdock executables. Image does contain cns executable, which is free for non-profit users, see https://github.com/haddocking/haddock3/blob/main/DISCLAIMER.md." @@ -22,7 +22,7 @@ RUN apt-get update && \ && \ apt-get clean && rm -rf /var/lib/apt/lists/* \ && \ - pip install --upgrade pip + pip install --upgrade pip wheel RUN python3 -m venv /venv ENV PATH=/venv/bin:$PATH @@ -43,7 +43,7 @@ ENV GDOCK_PATH=/opt/gdock # bartender ========================================================================================================== WORKDIR /opt/bartender -RUN echo cachebust=1 && git clone --depth 1 -b ${BARTENDER_VERSION} https://github.com/i-VRESSE/bartender.git . +RUN echo cachebust=2 && git clone --depth 1 -b ${BARTENDER_VERSION} https://github.com/i-VRESSE/bartender.git . RUN pip install . # haddock3 ============================================================================================================ @@ -56,11 +56,13 @@ WORKDIR / # final image ========================================================================================================= -FROM python:3.12-slim-bookworm +FROM python:3.9-slim-bookworm COPY --from=builder /wait /wait COPY --from=builder /venv /venv COPY --from=builder /opt/haddock3 /opt/haddock3 +# cns executable installed by haddock3 is linked against gcc library quadmath so we need to copy it as well +COPY --from=builder /lib/x86_64-linux-gnu/libquadmath.so.0 /lib/x86_64-linux-gnu/libquadmath.so.0 # Just copy the required files COPY --from=builder /opt/bartender/alembic.ini /opt/bartender/alembic.ini COPY --from=builder /opt/bartender/src/bartender/db/migrations /opt/bartender/src/bartender/db/migrations From 25f92c155efc89e3fe60670a0489457bfebba66c Mon Sep 17 00:00:00 2001 From: Stefan Verhoeven Date: Wed, 2 Oct 2024 12:11:13 +0200 Subject: [PATCH 9/9] Prep for 0.3.5 release --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index d878cb3c..a89fdb48 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "haddock3-webapp", "private": true, - "version": "0.3.4", + "version": "0.3.5", "sideEffects": false, "type": "module", "scripts": {