KNIME molecule viewer nodes.
A 3D viewer for large molecules for the KNIME workflow system.
KNIME node which launches a web browser with a molecule viewer powered by NGL.
If you are using KNIME workflows with large molecules and you want to view them in 3D then the molviewer nodes are able to handle this. * Provides cheminformatics trying to model proteins within KNIME a way to view them * Adds nodes to KNIME to visualize proteins, small molecules and pharmacophores * Adds support to KNIME to handle viewing big molecules * Used to compare pharmacophore generation tools * Used to check ligand repurposing
This project uses a web user interface based on https://github.com/3D-e-Chem/molviewer-tsx .
Installation
Requirements:
- KNIME, https://www.knime.org, version 3.1 or higher
Steps to get the MolViewer KNIME node inside KNIME:
- Goto Help > Install new software ... menu
- Press add button
- Fill text fields with
https://3d-e-chem.github.io/updates
- Select --all sites-- in
work with
pulldown - Select the node called
MolViewer nodes for KNIME
- Install software
- Restart KNIME
Usage
- Create a new KNIME workflow.
- Find node in Node navigator panel under Community Nodes > 3D-e-Chem > Molviewer.
- Drag node to workflow canvas.
- Give molviewer nodes Proteins, Ligands and/or Pharmacophores as input.
- Open the view of the molviewer node, this will launch a web browser with the molecules visualized.
In web browser you can
- Rotate/translate/zoom molecules with mouse
- Toggle which molecules are visible
- Transmit visible molecules as HiLite selection back to KNIME or do the reverse from KNIME to molviewer
- and more
See example workflow in examples/
directory.
Build
mvn verify
An Eclipse update site will be made in p2/target/repository
repository.
The update site can be used to perform a local installation.
Development
Steps to get development environment setup:
- Download KNIME SDK from https://www.knime.org/downloads/overview
- Install/Extract/start KNIME SDK
- Start SDK
Install m2e (Maven integration for Eclipse) + KNIME Testing framework
- Goto Help > Install new software ...
Make sure the following Update sites are in the pull down list otherwise add them
- http://download.eclipse.org/releases/mars
- http://download.eclipse.org/eclipse/updates/4.5
- http://update.knime.org/analytics-platform/3.1
- https://3d-e-chem.github.io/updates
Select --all sites-- in work with pulldown
- Select m2e (Maven integration for Eclipse)
- Select
KNIME Testing framework
- Select
Splash & node category for 3D-e-Chem KNIME nodes
- Install software & restart
Import this repo as an Existing Maven project
During import the Tycho Eclipse providers must be installed.
Update plugin libs directory
The server/libs/
directory are filled with dependencies specified in the server/pom.libs.xml
file.
Update libs directory with
mvn -f server/pom.libs.xml dependency:copy-dependencies -DoutputDirectory=libs
The jars in the libs directory should be listed in the Bundle-ClassPath property of the server/META-INF/MANIFEST.MF
file.
TODO incorporate fill libs/ command in mvn package
Web interface
The web interface in the server/src/main/resources/webapp
directory. Is a distribution from the https://github.com/3D-e-Chem/molviewer-tsx repository.
Tests
Tests for the node are in tests/src
directory.
Tests can be executed with mvn verify
, they will be run in a separate KNIME environment.
Test results will be written to test/target/surefire-reports
directory.
Unit tests
Unit tests written in Junit4 format can be put in tests/src/java
.
Workflow tests
See https://github.com/3D-e-Chem/knime-testflow#3-add-test-workflow
New release
- Update versions in pom files with
mvn org.eclipse.tycho:tycho-versions-plugin:set-version -DnewVersion=<version>-SNAPSHOT
command. - Commit and push changes
- Create package with
mvn package
, will create update site inp2/target/repository
- Test node by installing it from local update site
- Append new release to an update site
- Make clone of an update site repo
- Append release to the update site with
mvn install -Dtarget.update.site=<path to update site>
- Add files, commit and push changes of update site repo.
- Create a Github release
- Update Zenodo entry, fix authors and license
- Make nodes available to 3D-e-Chem KNIME feature by following steps at https://github.com/3D-e-Chem/knime-node-collection#new-release
Technical architecture
In the background a web server is started when the view of the node is opened. The webserver has * on /api, a rest interface
- to retrieve data from KNIME node input ports, /api/ligands
- to propogate selections in web page to KNIME node using the hilite mechanism of KNIME, /api/ligands/hilite
server sent events, /api/broadcast
- on /, ui based on https://github.com/3D-e-Chem/molviewer-tsx
- on /swagger.json and /swagger.yaml, swagger endpoints
- on /swagger-ui, swagger ui
Server sent events are used to inform the web page that:
- view closed
- input changed
- hilite changed
This project uses Eclipse Tycho to perform build steps.