forked from PNNL-Comp-Mass-Spec/UIMF-Library
-
Notifications
You must be signed in to change notification settings - Fork 0
SProst/UIMF-Library
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
==============
UIMF Library
==============
This software package includes a library of C# functions to create,
modify and extract data from UIMF files. UIMF files are SQLite
databases of mass spectrometry data acquired at Pacific Northwest
National Laboratory (PNNL).
How to use the UIMFLibrary in C#:
------------------------------
1) Copy UIMFLibrary.dll and System.Data.SQLite.DLL from
UIMFLibrary\bin\x86 or
UIMFLibrary\bin\x64 to your project
2) Open Solution Explorer, add UIMFLibrary to your Project/References
3) Add this using statement at the top of your code:
using UIMFLibrary;
4) Declare the DataReader and DataWriter classes in your main code:
5) Now the functions can be called as such:
UIMFReader DataReader = new UIMFReader(filePath);
DataReader.GetSpectrum(frameNumber, frameType, scanNumber, out mzArray, out intensityArray)
......
UIMFWriter DataWriter = new UIMFWriter(filePath);
DataWriter.CreateTables();
How to use the UIMFLibrary in C++:
-------------------------------
1) Copy UIMFLibrary.dll and System.Data.SQLite.DLL from
UIMFLibrary\bin\x86 or
UIMFLibrary\bin\x64 to your project
2) Open the Solution Explorer, add UIMFLibrary to your Project/References
3) Add this using statement at the top of your code:
using namespace UIMFLibrary;
4) In your .h file, declare the DataReader and DataWriter classes:
gcroot<UIMFReader*> ReadUIMF;
gcroot<UIMFWriter*> WriteUIMF;
5) In you .cpp file, instantantiate the reader and the writer:
6) Now the functions can be called as such:
ReadUIMF = new UIMFReader(filePath);
ReadUIMF->GetSpectrum(frameNumber, scanNumber, mzArray, intensityArray);
......
WriteUIMF = new UIMFWriter(filePath);
WriteUIMF->CreateTables();
Examples:
---------
To see examples of how to create, modify, and extract data out of the database,
refer to the UIMFLibrary_Demo solution.
UIMF database structure:
------------------------
Four tables are included in the UIMF database file:
Global_Parameters
Frame_Parameters
Frame_Scans
Log_Entries
Global_Parameters table:
-----------------------
Column Name Data Type Comment
---------- ---------- -------
DateStarted string Date Experiment was acquired
NumFrames int Number of frames in dataset
TimeOffset int Offset from 0. All bin numbers must be offset by this amount
BinWidth double Width of TOF bins (in ns)
Bins int Total TOF bins in a frame
TOFCorrectionTime float Time Delay correction
FrameDataBlobVersion float Version of FrameDataBlob in table Frame_Parameters
ScanDataBlobVersion float Version of ScanInfoBlob in table Frame_Parameters
TOFIntensityType string Data type of intensity in each TOF record (ADC is int/TDC is short/FOLDED is float)
DatasetType string Type of dataset (HMS/HMSMS/HMS-MSn)
Prescan_TOFPulses int Prescan TOP Pulses
Prescan_Accumulations int Prescan Accumulations
Prescan_TICThreshold int Prescan TIC Threshold
Prescan_Continuous bool Prescan continous mode (True or False)
Prescan_Profile string Prescan Profile File Name
Instrument_Name string Instrument name
Frame_Parameters table:
----------------------
Column Name Data Type Comment
----------- --------- -------
FrameNum int (Primary Key) Frame number
StartTime double Start time of frame
Duration double Duration of frame
Accumulations short Number of collected and summed acquisitions in a frame
FrameType short Bitmap: 0=MS (Legacy); 1=MS (Regular); 2=MS/MS (Frag); 3=Calibration; 4=Prescan
Scans int Number of TOF scans
IMFProfile string File name for IMF Profile
TOFLOsses double TOF Losses
AverageTOFLength double Average time between TOF trigger pulses
CalibrationSlope double Value of k0
CalibrationIntercept double Value of t0
a2 double secondary coefficients for residual mass error correction
b2 double secondary coefficients for residual mass error correction
c2 double secondary coefficients for residual mass error correction
d2 double secondary coefficients for residual mass error correction
e2 double secondary coefficients for residual mass error correction
f2 double secondary coefficients for residual mass error correction
Temperature double Ambient temperature
voltHVRack1 double HVRack Voltage
voltHVRack2 double HVRack Voltage
voltHVRack3 double HVRack Voltage
voltHVRack4 double HVRack Voltage
voltCapInlet double Capilary Inlet Voltage
voltEntranceIFTIn double IFT In Voltage
voltEntranceIFTOut double IFT Out Voltage
voltEntranceCondLmt double Cond Limit Voltage
voltTrapOut double Trap Out Voltage
voltTrapIn double Trap In Voltage
voltJetDist double Jet Disruptor Voltage
voltQuad1 double Fragmentation Quadrupole Voltage
voltCond1 double Fragmentation Conductance Voltage
voltQuad2 double Fragmentation Quadrupole Voltage
voltCond2 double Fragmentation Conductance Voltage
voltIMSOut double IMS Out Voltage
voltExitIFTIn double IFT In Voltage
voltExitIFTOut double IFT Out Voltage
voltExitCondLimit double Cond Limit Voltage
PressureFront double Pressure at front of Drift Tube
PressureBack double Pressure at back of Drift Tube
MPBitOrder short Determines original size of bit sequence
FragmentationProfile binary (BLOB) Voltage profile used in fragmentation, Length number of Scans
HighPressureFunnelPressure double
IonFunnelTrapPressure double
QuadropolePressure double
ESIVoltage double
FloatVolage double
CALIBRATIONDONE int Set to 1 after a frame has been calibrated
Decoded int Set to 1 after a frame has been decoded
Frame_Scans table:
-----------------
Column Name Data Type Comment
----------- --------- -------
FrameNum int Contains the frame number
ScanNum short Contains the TOF pulse number the spectra are located in
NonZeroCount int Nonzero intensities
BPI double/float/int Base Peak Intensity per Scan
BPI_MZ double m/z associated with BPI
TIC double/float/int Total Ion Chromatogram per Scan
Intensities binary (BLOB) Intensities in compressed binary format
Log_Entries table:
-----------------
Column Name Data Type Comment
----------- --------- -------
Entry_ID int Log entry ID
Posted_By string Log source
Posting_Time string DateTime
Type string Message type
Message string Log message
---------------------------------------------------------------------------------------------------------------
Written by Yan Shi for the Department of Energy (PNNL, Richland, WA)
Copyright 2009, Battelle Memorial Institute. All Rights Reserved.
Additional contributions by Anuj Shah, Matthew Monroe, Gordon Slysz, Kevin Crowell, and Bill Danielson
E-mail: matthew.monroe@pnnl.gov or proteomics@pnl.gov
Website: http://omics.pnl.gov/software/
----------------------------------------------------------------------------------------------------------------
About
Used to create, modify and extract data from UIMF files, which are SQLite databases of mass spectrometry data acquired at Pacific Northwest National Laboratory (PNNL)
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published
Languages
- C# 100.0%