https://github.com/lawrencecollins/bafpipe
Automated deconvolution of Bruker mass spectra datasets using UniDec
https://github.com/lawrencecollins/bafpipe
bruker deconvolution mass-spectrometry protein unidec
Last synced: 19 days ago
JSON representation
Automated deconvolution of Bruker mass spectra datasets using UniDec
- Host: GitHub
- URL: https://github.com/lawrencecollins/bafpipe
- Owner: lawrencecollins
- License: other
- Created: 2024-03-11T13:37:32.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2025-11-26T15:41:50.000Z (4 months ago)
- Last Synced: 2026-01-08T21:58:58.461Z (2 months ago)
- Topics: bruker, deconvolution, mass-spectrometry, protein, unidec
- Language: Python
- Homepage:
- Size: 3.87 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# BafPipe
Automated deconvolution of mass spectra datasets using [UniDec](https://github.com/michaelmarty/UniDec).
Cite Marty et al. Anal. Chem. 2015. DOI: 10.1021/acs.analchem.5b00140
Automates the UniDec deconvolution algorithms for large Bruker mass spectra datasets and quantifies relative peak intensity. Converts Bruker .baf to numpy arrays using baf2sql and then automates unidec to deconvolute protein mass spectra and quantify species.
`pip install BafPipe`
The software uses an input excel file containing deconvolution parameters, species identities/masses and data plotting parameters.
### Setting up the input file
Sheet 1 of input file contains the directory folder of your mass spectra and the unidec configuration parameters.
You can also add masses to detect and a corresponding colour. These are done by stipulating **Species** + *name* and **Color** + *name* in the Parameter column, followed by the desired mass or colour in the Input column.
**Example input directory**
| Parameter | Input | Comments |
| --- | --- |--- |
|Directory|D:\mass spec\protein labelling|
|Species Protein| 48127|
|Color Protein| orange|
|Start Scan| 490 |
|End Scan|540 |
|Tolerance (Da) |10 |Peak matching tolerance |
|Config masslb |15000| Deconvolution window low mass|
|Config massub |50000| Deconvolution window high mass|
|Config massbins| 1|Mass bins for deconvolution - sample mass every|
|Config peakwindow| 10| |
|Config minmz| 700| m/z lower bounds (defaults to 0)|
|Config maxmz| |m/z upper bounds (defaults to 10e12)|
|Config startz| 1 | |
|Config endz| 100 | |
|Config numz| 100 | |
|Config numit| 60 |number of iterations of deconvolution algorithm|
Each file within the directory can be linked to custom variables defined in a second sheet of the input directory. This comes in handy if wanting to filter data or perform analyses/comparison on subsets of your experiment.
Any column names can be defined aside from 'Name' in column 0. Name corresponds to your filename (can be partial match).
Make sure var_ids=True ```load_input_file(var_ids = True)```
**Example variables table**
|Name| var1 |var2|var3|
| --- | --- | --- | --- |
|Nexp 1 |1 |1 |1|
|Nexp 2 |2 |13 |3|
|Nexp 3 |1 |25 |3|
|Nexp 4 |3 |25 |1|
|Nexp 5 |2 |13 |5|
### Running the code
```
from bafpipe.pipe import *
path = r"C:\users\input_file.xlsx
bafpipe = on_bafpipe(path)
```
Quantified results will be exported to Excel results table containing MS metadata from .xml (including aquisition time, e.g. for kinetics/real time MS)
#### Other functions:
##### loading input file with var IDs:
from bafpipe.ms_processing import *
eng = BafPipe()
eng.load_input_file(path, unzip=False, clearhdf5=True, var_ids=True)
eng.on_unidec()
```
This will export quantified results to the Excel results table with additional sample metadata.