External Structure Proxy for GNPS. The goal of this software to enable GNPS to link out to other resources as well as provide end points for GNPS to export data.
- https://external.gnps2.org/gnpslibraryjson - All Library Spectra in GNPS
- https://external.gnps2.org/gnpslibraryformattedwithpeaksjson - All Library Spectra in GNPS with Peaks
- https://external.gnps2.org/gnpslibraryfornpatlasjson - All Library Spectra in GNPS formatted for NPAtlas to consume
- https://external.gnps2.org/gnpslibraryfornpatlastsv - All Library Spectra in GNPS formatted for NPAtlas to consume
- https://external.gnps2.org/gnpslibrary/ALL_GNPS.mgf - MGF for ALL GNPS
- https://external.gnps2.org/gnpslibrary/GNPS-LIBRARY.mgf - MGF for GNPS-LIBRARY
- List of Metabolights Imported Datasets - https://external.gnps2.org/datasets/metabolights
- List of Metabolomics Workbench Imported Datasets - https://external.gnps2.org/datasets/metabolomicsworkbench
This is accessible at
/massiveftpproxy?ftppath=<massive path to file>
- Run the server with
make-server-compose-interactive - Check the active ports (typically 5010, but can be seen in
docker ps) and ensure they're forwarded if needed - Web serivce is now live at http://localhost:5010
- If starting for the first time, collect the GNPS libraries by visiting http://localhost:5010
ML/matchms cleaning is permanently disabled. The main snapshot last completed on July 17, 2026; individual library dates are shown on the downloads page in UTC. Failed runs updated the HTML reports after that date, so report timestamps do not indicate data freshness. Existing downloads remain available.
The cleaning schedule, post-download triggers, and worker service are removed. Legacy admin cleaning URLs return HTTP 410, and legacy task/direct utility calls fail without launching Nextflow or writing outputs.
When deploying this change, stop and remove the old worker before rebuilding:
docker stop externalstructureproxy-library_harmonization_worker followed by
docker rm externalstructureproxy-library_harmonization_worker. Removing its
Compose definition alone does not stop an existing container. Then rebuild and
recreate the web and library generation services to load the disabled triggers.