SPLASH - The Spectral Hash Identifier

SPLASH

Welcome to the SPLASH Validation and Computational Page

What is the SPLASH?

The SPLASH, is an unique identifier for Spectra, as the InChI Key is an unique identifier for chemical compounds.

The first implementation of the SPLASH, was the MoNA (Massbank of North America) hash and during the 2015 Metabolomics conference in turned out that people like the idea of an unique spectra identifier, similar to the InChI Key. Based on the received feedback, a subset of the attendies started to develop a set of specifications, which allowed us to easily calculate unique and short identifiers for a wide range of Spectra. This includes MS, IR, UV and NMR spectra at this point.

If you like to contribute to the development of the splash or just want to let us know what you think about the concept, please contact us at wohlgemuth@ucdavis.edu

What can I use it for?

The primary usage of the SPLASH is as a database identifier for unique spectra, and can thereby be used as an easy lookup tool and for cross-reference identification. It also allows for coarse similarity comparisons without any knowledge of the spectra themselves. We hope that developers will adopt the SPLASH into their systems so that we may easily discover overlap between mass spectral databases and begin to use it to reference spectra between publications.

Available implementations of the SPLASH algorithm
language source validated
Java source code
C++ source code
Python source code
C# source code
R source code
Ruby source code
Scala source code
Where can I find the SPLASH specification?

The SPLASH specification is currently under review for publication. If you wish to implement the SPLASH or learn more about the algorithm, please refer to the provided reference implementations.

Who is using SPLASH?

Currently the following software packages and databases are using the splash key.

name type
MoNA (MassBank of North America) database/repository
MassBank database/repository
HMDB (Human Metabolome Database) database
GNPS (Global National Products Social Molecular Networking) database
MetaboLights database
mzCloud database
>HUPO Mass Spectrometry Ontology mass spectrometry controlled vocabulary
BinBase database/software
BinView software
MS-DIAL software
MSDK (Mass Spectrometry Development Kit) programming framework
MZmine programming framework
RMassBank MS Processing Workflow
Bioclipse programming framework
SPLASH Your Spectra

To 'SPLASH' your spectra easily, we provide you with a simple REST api, this can be easily utilized from any programming language and so allows you to compute the splash as easily as possible, without the need of providing your own implementation

Request URL:
http://splash.fiehnlab.ucdavis.edu/splash/it
the request needs to be done, as POST with a JSON load.
Example load
{
    "ions":
        [
                {
                    "mass": 100,
                    "intensity": 1
                },
                {
                    "mass": 101,
                    "intensity": 2
                },
                {
                    "mass": 102,
                    "intensity": 3
                }
         ],
         "type": "MS"
}
                    

The type codes are as followed (please note that at this time, only the MS SPLASH is available):

  1. MS
  2. NMR
  3. UV
  4. IR
  5. RAMAN
Example response

Upon complication of your request, your response should be a SPLASH code:

splash10-0udi-0900000000-f5bf6f6a4a1520a35d4f
Validate Your Splash Implementation

Since we plan on only maintaining a limited set of reference implementation, we are providing a simple REST-based tool to easily validate your implementation against the reference implementation. This does not mean you should not developed your own suite of test's to ensure your API works as desired.

The main advantage of the validation api is to test that your SPLASH implementation produces results consistent with the reference implementation

Request URL:
http://splash.fiehnlab.ucdavis.edu/splash/validate
the request needs to be done, as POST with a JSON load.
Example load
this is an example for a validate object, send to the validation system. Please be aware that you need to provide all the fields.
{
    "spectrum": {
        "ions":
            [
                {
                    "mass": 100,
                    "intensity": 1
                },
                {
                    "mass": 101,
                    "intensity": 2
                },
                {
                    "mass": 102,
                    "intensity": 3
                }
            ],
            "type": "MS"
    },
    "splash":"splash10-0udi-0900000000-f5bf6f6a4a1520a35d4f"
}
            
Example response

The following is an example validation response:

{
    "request": {
        "spectrum": {
            "origin": None,
            "ions": [
                {"mass": 100.0, "intensity": 1.0},
                {"mass": 101.0, "intensity": 2.0},
                {"mass": 102.0, "intensity": 3.0}
            ],
            "type": "MS"
        },
        "splash": "splash10-0udi-0900000000-f5bf6f6a4a1520a35d4f"
    },
    "validationSuccessful": true,
    "referenceSplash": "splash10-0udi-0900000000-f5bf6f6a4a1520a35d4f"
 }