Giter Site home page Giter Site logo

spectrum_similarity's Introduction

Project description

The scoring functions to assess spectrum similarity play a crucial role in many computational mass spectrometry algorithms. These scoring functions can be used to compare an acquired MS/MS spectrum against two different types of target spectra: either against a theoretical MS/MS spectrum derived from a peptide from a sequence database, or against another, previously acquired acquired MS/MS spectrum. The former is typically encountered in database searching, while the latter is used in spectrum clustering, spectral library searching, or the detection of unique spectra between different data sets in comparative proteomics studies.

The most commonly used scoring functions in experimental versus theoretical spectrum matching could be divided into two groups:

  • non-probabilistic (cross correlations which was used for SEQUEST)
  • probabilistic (cumulative binomial probability derived scoring functions in Andromeda and MS Amanda)

Scoring functions for the comparison of two experimental spectra:

  • Normalized dot product (most commonly used in spectrum library search algorithms such as SpectraST, BiblioSpec)
  • Pearson’s and Spearman's correlation coefficients

Avaliable scoring functions

This project contains the enlisted scoring functions in [Project description](## Project description). The scoring functions in order to compare an acquired MS/MS spectrum against:

  • a theoretical spectrum via

  • SEQUEST-like scoring function (non-probabilistic)

  • Andromeda-like scoring function (probabilistic)

  • another acquired spectrum via

  • Dot product

  • Normalized dot product

  • Normalized dot product with introducting weights from peak intensities

  • Pearson's r

  • Spearman's rho

  • Mean Squared Error (MSE) (and also root MSE)

  • Median Squared Error (MdSE) (and also root MdSE)

  • Probabilistic scoring functon (including peak intensities)

Citation

Yılmaz et al: J Proteome Res., 2016, 15 (6), pp 1963–1970 (DOI:10.1021/acs.jproteome.6b00140)

If you use our differential pipeline stand-alone tool or GUI version, please include the reference above.


Download

Differential pipeline

The probabilistic scoring function was succesfully applied on the differential pipeline in order to compare two experimental data sets in a differential analysis.

A stand-alone program and the GUI version of this stand-alone program can be downloaded here.

A pairwise spectrum view GUI

A pairwise spectrum view GUI enables the manual inspection of how spectra actually look alike and can be downloaded here.

Book chapter

The scoring functions enlisted [Avaliable scoring functions] were used to evaluate their ability to assess spectrum similarity by evaluating them on one of the CPTAC data sets. This has been described in a book chapter.

The program to compare spectra with the avaliable scoring functions, against either theoretical or experimental spectra can be downloaded here.

The settings to perform spectrum comparison are in the bookChapter.properties file.


Usage

See the wiki for additional information on how to setup, run and configure spectrum comparison related projects.

spectrum_similarity's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

spectrum_similarity's Issues

There may be an error when calculating the number of peaks matched

image
Because the existence of fragment tolerance, a peak may match two or more peaks. Like the picture show, p3 will match p1 and p2. However, in your code(/src/main/java/cal/cumulativeBinomialProbability/spectra/CompareAndScore.java line from 150 to 215), you did not use a array to store all possible matching peaks but only use a variable to store one possible matching peak. Is it a problem?
Thanks

the program spectrum_similarity_pairwise_GUI-0.1.jar exception

1. run a probabilistic based scoring function to compare two given spectra data sets

  • my mgf file(two mgf file with the same content)
    image
  • my setting
    image
  • program output
java -cp .\scoring_pipeline-1.3.jar main.ScorePipelineStarter
2018-03-12 17:15:19 INFO  MainController:474 - starting spectrum similarity score pipeline
2018-03-12 17:15:20 INFO  ScorePipeline:677 - Successfully sent analytics event.
2018-03-12 17:15:20 INFO  ScorePipeline:677 - Successfully sent analytics event.
2018-03-12 17:15:20 INFO  MainController:179 - The version of score.pipeline :1.3
2018-03-12 17:15:20 INFO  MainController:190 - Run is ready to start with NF_None_TR_None_PPR_None_CHR_None_PRECTOL_0_MSRobin.txt for msrobin
2018-03-12 17:15:20 INFO  MainController:191 - Only calculate +/-2 slices up and down: false
2018-03-12 17:15:20 INFO  MainController:256 - a name of an mgf from the spectra.folder=data1.mgf
2018-03-12 17:15:20 INFO  MainController:257 - a name of an mgf from the spectra.to.compare.folder=data2.mgf
10%10%2018-03-12 17:15:20 INFO  MainController:280 - Size of MSnSpectra at spectra.folder=1
2018-03-12 17:15:20 INFO  MainController:281 - Size of MSnSpectra at spectra.to.compare.folder=1
2018-03-12 17:15:20 INFO  MainController:484 - finished spectrum similarity score pipeline

2. when I was ready to run the program spectrum_similarity_pairwise_GUI-0.1.jar to see the result I came the exception ArrayIndexOutOfBoundsException, what can I do to solve the problem?

image

java  -jar
 .\spectrum_similarity_pairwise_GUI-0.1.jar
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 2
        at gui_spectral_match_visualization.MainGUI.prepareTable(MainGUI.java:177)
        at gui_spectral_match_visualization.MainGUI.<init>(MainGUI.java:89)
        at gui_spectral_match_visualization.MainGUI$20.run(MainGUI.java:1060)
        at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
        at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
        at java.awt.EventQueue.access$500(EventQueue.java:97)
        at java.awt.EventQueue$3.run(EventQueue.java:709)
        at java.awt.EventQueue$3.run(EventQueue.java:703)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

Thanks!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.