The SPLASH is an unambiguous, database-independent spectral identifier, just as the InChIKey is designed to serve as a unique identifier for chemical structures. It contains separate blocks that define different layers of information, separated by dashes. For example, the full SPLASH of a caffeine mass spectrum above is splash10-0002-0900000000-b112e4e059e1ecf98c5f
. The first block is the SPLASH identifier, the second and third are summary blocks, and the fourth is the unique hash block.
The SPLASH began as the MoNA (Massbank of North America) hash, designed to identify duplicate spectra within the database. This idea developed further during the 2015 Metabolomics conference, where the SPLASH collaboration was formed. Currently, the specification has been formalized for mass spectrometry data. Additional specifications for IR, UV and NMR spectrometry are planned.
If you would like to contribute to the development of the SPLASH, report an issue, or suggest improvements, please visit our GitHub Repository and create a new Issue or Pull Request.
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.
The SPLASH for mass spectrometry has been published in Nature Biotechnology and the source code for reference implementations is freely available on our GitHub Repository.
Citing SPLASH:
Wohlgemuth, G, et al., SPLASH, a Hashed Identifier for Mass Spectra. Nature Biotechnology 34, 1099-101 (2016).
Language | Source | Validated |
---|---|---|
Java | source code | |
C++ | source code | |
Python | source code | |
C# | source code | |
R | source code | |
Ruby | source code | |
Scala | source code |
Currently the following software packages and databases have implemented the SPLASH:
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 |
Wikidata | database |
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
Note: Please be sure to use https
when submitting POST
requests.
https://splash.fiehnlab.ucdavis.edu/splash/it
{ "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):
Upon complication of your request, your response should be a SPLASH code:
splash10-0udi-0900000000-f5bf6f6a4a1520a35d4f
100:1 101:2 102:3
100 1;101 2;102 3
100 1
101 2
102 3
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
https://splash.fiehnlab.ucdavis.edu/splash/validate
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" }
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" }