
Product
Introducing Pull Request Stories to Help Security Teams Track Supply Chain Risks
Socket’s new Pull Request Stories give security teams clear visibility into dependency risks and outcomes across scanned pull requests.
This Python package is designed for efficient compression of Mass Spectrometry (MS/MS) data. It is based on the MassComp algorithm, which is described in the following paper: https://doi.org/10.1186/s12859-019-2962-7
0.2.0
To install the MS/MS Data Compression package, run:
pip install msms-compression
The package includes the following main compressor classes:
SpectrumCompressorUrl
: Utilizes URL-safe Base64 encoding.SpectrumCompressor
: Uses Base85 encoding.from msms_compression import SpectrumCompressorF32
# Sample data
mz_values, intensity_values = [100.0, 101.0, 102.0], [10.0, 20.0, 30.0]
# Initialize the compressor
compressor = SpectrumCompressorF32()
# Compress data
compressed_data = compressor.compress(mz_values, intensity_values)
print("Compressed Data:", compressed_data)
# Decompress data
decompressed_mz, decompressed_intensity = compressor.decompress(compressed_data)
assert decompressed_mz == mz_values
assert decompressed_intensity == intensity_values
strategy | Compression Ratio | Compression Ratio Rank | URL Compression Ratio | URL Compression Ratio Rank | Compression Time | Compression Time Rank | Decompression Time | Decompression Time Rank |
---|---|---|---|---|---|---|---|---|
SpectrumCompressorLossy | 5.952 | 1 | 5.023 | 2 | 0.030 | 5 | 0.008 | 4 |
SpectrumCompressorUrlLossy | 5.579 | 2 | 6.926 | 1 | 0.030 | 4 | 0.007 | 1 |
SpectrumCompressor | 3.890 | 3 | 3.299 | 6 | 0.053 | 7 | 0.010 | 6 |
SpectrumCompressorUrl | 3.646 | 4 | 4.528 | 3 | 0.051 | 6 | 0.008 | 3 |
SpectrumCompressorGzip | 3.148 | 5 | 2.658 | 7 | 0.023 | 2 | 0.009 | 5 |
SpectrumCompressorUrlGzip | 2.951 | 6 | 3.665 | 4 | 0.022 | 1 | 0.007 | 2 |
SpectrumCompressorUrlLzstring | 2.800 | 7 | 3.418 | 5 | 0.026 | 3 | 0.097 | 7 |
scan | strategy | original_size | compressed_size | url_encoded_size | compression_ratio | url_compression_ratio | compressed_time | decompressed_time |
---|---|---|---|---|---|---|---|---|
0 | SpectrumCompressor | 56124 | 14428 | 21139 | 3.88993623509842 | 3.299068073229576 | 0.053049564361572266 | 0.009985208511352539 |
0 | SpectrumCompressorUrl | 56124 | 15392 | 15401 | 3.646309771309771 | 4.528212453736771 | 0.051015615463256836 | 0.00789642333984375 |
0 | SpectrumCompressorGzip | 56124 | 17829 | 26236 | 3.1479050984351336 | 2.6581414849824667 | 0.02299976348876953 | 0.009003639221191406 |
0 | SpectrumCompressorUrlGzip | 56124 | 19020 | 19029 | 2.950788643533123 | 3.664879920121919 | 0.021996021270751953 | 0.007005453109741211 |
0 | SpectrumCompressorUrlLzstring | 56124 | 20041 | 20402 | 2.8004590589291953 | 3.418243309479463 | 0.026098012924194336 | 0.09739089012145996 |
0 | SpectrumCompressorLossy | 56124 | 9429 | 13884 | 5.952274896595609 | 5.022976087582829 | 0.030114173889160156 | 0.007976055145263672 |
0 | SpectrumCompressorUrlLossy | 56124 | 10060 | 10069 | 5.578926441351888 | 6.9261098420895815 | 0.030014991760253906 | 0.006910562515258789 |
The method compresses intensity values into two-character hexadecimal strings, offering 256 unique representations. This is a lossy approach, effectively reducing data size. Meanwhile, m/z values are compressed losslessly using delta encoding, maintaining their exact accuracy.
FAQs
A tool for compressing MS/MS data
We found that msms-compression demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
Socket’s new Pull Request Stories give security teams clear visibility into dependency risks and outcomes across scanned pull requests.
Research
/Security News
npm author Qix’s account was compromised, with malicious versions of popular packages like chalk-template, color-convert, and strip-ansi published.
Research
Four npm packages disguised as cryptographic tools steal developer credentials and send them to attacker-controlled Telegram infrastructure.