Comments (2)
Hi Ben, indeed, the annotate_peptide_fragments
function and subsequent plotting will color fragments that match the theoretical fragments of the peptide. If I understand your question correctly, instead you want to highlight peaks that match between both spectra? That isn't directly supported, but you should still be able to do it with some "hacking".
To highlight matching peaks you first need to determine those peaks. You could do that like this:
fragment_mz_tolerance = 0.05
peak_matches = []
j = 0
for i in range(len(spectrum1.mz)):
while j < len(spectrum2.mz) and spectrum2.mz[j] + fragment_mz_tolerance < spectrum1.mz[i]:
j += 1
if abs(spectrum1.mz[i] - spectrum2.mz[j]) < fragment_mz_tolerance:
peak_matches.append((i, j))
Next, you need to annotate the matching peaks:
import spectrum_utils.spectrum as sus
spectrum1.annotation = np.full_like(spectrum1.mz, None, object)
spectrum2.annotation = np.full_like(spectrum2.mz, None, object)
for i, j in peak_matches:
fragment_annotation = sus.PeptideFragmentAnnotation(1, spectrum1.mz[i], 'z', 0)
fragment_annotation.ion_type = 'match'
spectrum1.annotation[peak_match[0]] = spectrum2.annotation[peak_match[1]] = \
fragment_annotation
Finally, choose a color for the matching peaks and plot the spectra:
import spectrum_utils.plot as sup
sup.colors['match'] = 'red'
fig, ax = plt.subplots(figsize=(12, 6))
sup.mirror(spectrum1, spectrum2, {'color_ions': True, 'annotate_ions': False}, ax=ax)
plt.show()
plt.close()
Please let me know if this works for you.
Note: I just wrote the code snippets here without testing them, so maybe some minor fixes are needed to actually run it.
from spectrum_utils.
Greetings,
Sorry for the late response. Your suggestions works!
from spectrum_utils.
Related Issues (20)
- Alternative dependency for fastobo? HOT 3
- [Feature request] Diagnostic information when a wrong mass mode is used HOT 1
- [Bug] Unpinned matplotlib version leads to unexpected results HOT 4
- Urlencode USI
- Unable to install in python 3.11 HOT 1
- Fix annotation of fragments with isotopic peaks
- 'MsmsSpectrumJit' object has no attribute 'annotate_proforma' HOT 2
- Update GNPS USI resolver to GNPS2 HOT 2
- function: noise peak removal HOT 1
- ValueError: Unknown precursor m/z from USI. Specify the precursor m/z directly. HOT 2
- Matplotlib Version HOT 2
- Manual fragment annotation (in version 0.4.2) HOT 2
- Can't successfully plot an annotated spectrum HOT 1
- annotate using custom fragment list HOT 3
- Get a less rounded mz_delta value in ppm for annotations? HOT 1
- Annotating modified lysine Immonium NH3 neutral loss HOT 4
- Deprecated dependency
- Update XLMOD location
- Lark-Cython for faster grammar parsing
- Cross-link spectra annotation HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from spectrum_utils.