msconvert-cli


Namemsconvert-cli JSON
Version 1.0.0 PyPI version JSON
download
home_pageNone
SummaryPython wrapper for ProteoWizard msconvert with Docker support and preset configs
upload_time2025-10-23 23:19:23
maintainerNone
docs_urlNone
authorNone
requires_python<4.0,>=3.11
licenseNone
keywords docker mass-spectrometry msconvert proteomics proteowizard
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # msconvert-cli

A Python wrapper around the ProteoWizard msconvert Docker image for converting mass spectrometry files.

## Installation

```bash
uv pip install msconvert-cli
```

Or install from source:

```bash
git clone https://github.com/pgarrett-scripps/msconvert-cli.git
cd msconvert-cli
uv pip install -e .
```

## Quick Start

Basic conversion with a preset config:

```bash
# Convert files using Sage preset (mzML, 32-bit, compressed)
mscli /path/to/raw/files/ -o /output/dir --sage

# Convert with multiple workers (runs 1 file per worker due to Wine limitations)
mscli /data/*.raw -o /output --blitzff --workers 4

# Verbose logging
mscli /data/*.raw -o /output --casanovo -v
```

## Available Presets

- `--sage`: mzML, 32-bit, zlib/gzip compression
- `--biosaur`: mzML format
- `--blitzff`: mzML, MS1 only, 32-bit, zlib/gzip
- `--casanovo`: mzML, MS2 only, m/z [50-2500], denoised, top 200 peaks
- `--casanovo_mgf`: Same as casanovo but MGF format

## Usage Examples

```bash
# Convert all RAW files in a directory
mscli /data/raw_files/ -o /output --sage

# Convert specific files with custom config
mscli file1.raw file2.raw -o /output -c my_config.txt

# Parallel conversion (4 workers, 1 file per worker)
mscli /data/*.raw -o /output --blitzff --workers 4

# Parallel conversion with resource limits
mscli /data/*.raw -o /output --sage --workers 4 --worker-cores 2.0 --worker-memory 4g

# Limit memory and disable swap
mscli /data/*.raw -o /output --sage --worker-memory 4g --worker-swap 4g

# Increase shared memory for large files
mscli /data/*.raw -o /output --sage --worker-shm-size 2g

# Verbose logging to custom file
mscli /data/*.raw -o /output --sage -v --log conversion.log

# Use a specific Docker image version
mscli /data/*.raw -o /output --sage --docker-image proteowizard/pwiz-skyline-i-agree-to-the-vendor-licenses:3.0.23310

# Pass additional msconvert arguments
mscli data.raw -o /output --filter "peakPicking vendor msLevel=1"
```

## Docker Resource Limits

You can control resource allocation for each worker container:

- `--worker-cores`: CPU cores per container (e.g., `2.0`, `0.5`)
- `--worker-memory`: RAM limit (e.g., `4g`, `2048m`)
- `--worker-swap`: Swap limit (e.g., `1g`). Set equal to memory to disable swap.
- `--worker-shm-size`: Shared memory size (default: `512m`). Increase for large files.

Example with all limits:
```bash
mscli /data/*.raw -o /output --sage \
  --workers 4 \
  --worker-cores 2.0 \
  --worker-memory 4g \
  --worker-swap 4g \
  --worker-shm-size 1g
```

## Logging

Logs are automatically created in the output directory when using `-v` (verbose mode):

```bash
# Auto-generates: /output/msconvert_20251023_144550.log
mscli /data/*.raw -o /output --sage -v

# Or specify a custom log file
mscli /data/*.raw -o /output --sage -v --log my_run.log
```

Log files include:
- Full command details
- Processing progress for each file
- stdout/stderr from msconvert
- Error details when conversions fail

## Notes

- Requires Docker to be installed and running
- Uses `proteowizard/pwiz-skyline-i-agree-to-the-vendor-licenses` Docker image
- Multi-worker mode processes 1 file per worker
- Supports: `.raw`, `.wiff`, `.d`, `.baf`, and other vendor formats

## Development

```bash
# Install with dev dependencies
uv sync

# Run pre-commit hooks
uv run pre-commit run -a

# Run the CLI locally
uv run mscli --help
```

---

Repository initiated with [fpgmaas/cookiecutter-uv](https://github.com/fpgmaas/cookiecutter-uv).

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "msconvert-cli",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4.0,>=3.11",
    "maintainer_email": null,
    "keywords": "docker, mass-spectrometry, msconvert, proteomics, proteowizard",
    "author": null,
    "author_email": "Patrick Garrett <pgarrett@scripps.edu>",
    "download_url": "https://files.pythonhosted.org/packages/df/b1/59a19ec019095b98499e1be6855e31ef61d9b3e7602ad01fb6833e5356d3/msconvert_cli-1.0.0.tar.gz",
    "platform": null,
    "description": "# msconvert-cli\n\nA Python wrapper around the ProteoWizard msconvert Docker image for converting mass spectrometry files.\n\n## Installation\n\n```bash\nuv pip install msconvert-cli\n```\n\nOr install from source:\n\n```bash\ngit clone https://github.com/pgarrett-scripps/msconvert-cli.git\ncd msconvert-cli\nuv pip install -e .\n```\n\n## Quick Start\n\nBasic conversion with a preset config:\n\n```bash\n# Convert files using Sage preset (mzML, 32-bit, compressed)\nmscli /path/to/raw/files/ -o /output/dir --sage\n\n# Convert with multiple workers (runs 1 file per worker due to Wine limitations)\nmscli /data/*.raw -o /output --blitzff --workers 4\n\n# Verbose logging\nmscli /data/*.raw -o /output --casanovo -v\n```\n\n## Available Presets\n\n- `--sage`: mzML, 32-bit, zlib/gzip compression\n- `--biosaur`: mzML format\n- `--blitzff`: mzML, MS1 only, 32-bit, zlib/gzip\n- `--casanovo`: mzML, MS2 only, m/z [50-2500], denoised, top 200 peaks\n- `--casanovo_mgf`: Same as casanovo but MGF format\n\n## Usage Examples\n\n```bash\n# Convert all RAW files in a directory\nmscli /data/raw_files/ -o /output --sage\n\n# Convert specific files with custom config\nmscli file1.raw file2.raw -o /output -c my_config.txt\n\n# Parallel conversion (4 workers, 1 file per worker)\nmscli /data/*.raw -o /output --blitzff --workers 4\n\n# Parallel conversion with resource limits\nmscli /data/*.raw -o /output --sage --workers 4 --worker-cores 2.0 --worker-memory 4g\n\n# Limit memory and disable swap\nmscli /data/*.raw -o /output --sage --worker-memory 4g --worker-swap 4g\n\n# Increase shared memory for large files\nmscli /data/*.raw -o /output --sage --worker-shm-size 2g\n\n# Verbose logging to custom file\nmscli /data/*.raw -o /output --sage -v --log conversion.log\n\n# Use a specific Docker image version\nmscli /data/*.raw -o /output --sage --docker-image proteowizard/pwiz-skyline-i-agree-to-the-vendor-licenses:3.0.23310\n\n# Pass additional msconvert arguments\nmscli data.raw -o /output --filter \"peakPicking vendor msLevel=1\"\n```\n\n## Docker Resource Limits\n\nYou can control resource allocation for each worker container:\n\n- `--worker-cores`: CPU cores per container (e.g., `2.0`, `0.5`)\n- `--worker-memory`: RAM limit (e.g., `4g`, `2048m`)\n- `--worker-swap`: Swap limit (e.g., `1g`). Set equal to memory to disable swap.\n- `--worker-shm-size`: Shared memory size (default: `512m`). Increase for large files.\n\nExample with all limits:\n```bash\nmscli /data/*.raw -o /output --sage \\\n  --workers 4 \\\n  --worker-cores 2.0 \\\n  --worker-memory 4g \\\n  --worker-swap 4g \\\n  --worker-shm-size 1g\n```\n\n## Logging\n\nLogs are automatically created in the output directory when using `-v` (verbose mode):\n\n```bash\n# Auto-generates: /output/msconvert_20251023_144550.log\nmscli /data/*.raw -o /output --sage -v\n\n# Or specify a custom log file\nmscli /data/*.raw -o /output --sage -v --log my_run.log\n```\n\nLog files include:\n- Full command details\n- Processing progress for each file\n- stdout/stderr from msconvert\n- Error details when conversions fail\n\n## Notes\n\n- Requires Docker to be installed and running\n- Uses `proteowizard/pwiz-skyline-i-agree-to-the-vendor-licenses` Docker image\n- Multi-worker mode processes 1 file per worker\n- Supports: `.raw`, `.wiff`, `.d`, `.baf`, and other vendor formats\n\n## Development\n\n```bash\n# Install with dev dependencies\nuv sync\n\n# Run pre-commit hooks\nuv run pre-commit run -a\n\n# Run the CLI locally\nuv run mscli --help\n```\n\n---\n\nRepository initiated with [fpgmaas/cookiecutter-uv](https://github.com/fpgmaas/cookiecutter-uv).\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Python wrapper for ProteoWizard msconvert with Docker support and preset configs",
    "version": "1.0.0",
    "project_urls": {
        "Documentation": "https://pgarrett-scripps.github.io/msconvert-cli/",
        "Homepage": "https://github.com/pgarrett-scripps/msconvert-cli",
        "Issues": "https://github.com/pgarrett-scripps/msconvert-cli/issues",
        "Repository": "https://github.com/pgarrett-scripps/msconvert-cli"
    },
    "split_keywords": [
        "docker",
        " mass-spectrometry",
        " msconvert",
        " proteomics",
        " proteowizard"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "6004ab79b1fec0fb178bd987bca34ecf50417f44d9c35ef3eb0f108626a42667",
                "md5": "8427496f36349ba2d9126c4539af18e1",
                "sha256": "990e15a685d4326b99c943672a1678c6734cb785a3c1fc66ecfa3a8cf78b8833"
            },
            "downloads": -1,
            "filename": "msconvert_cli-1.0.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "8427496f36349ba2d9126c4539af18e1",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.11",
            "size": 12329,
            "upload_time": "2025-10-23T23:19:22",
            "upload_time_iso_8601": "2025-10-23T23:19:22.475473Z",
            "url": "https://files.pythonhosted.org/packages/60/04/ab79b1fec0fb178bd987bca34ecf50417f44d9c35ef3eb0f108626a42667/msconvert_cli-1.0.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "dfb159a19ec019095b98499e1be6855e31ef61d9b3e7602ad01fb6833e5356d3",
                "md5": "45210eeb6dd774bf5fb2eb1c790fdabd",
                "sha256": "6d16ba837022103cd3486954dcc8f7c9e3d139502c94db368adf2637101aecc0"
            },
            "downloads": -1,
            "filename": "msconvert_cli-1.0.0.tar.gz",
            "has_sig": false,
            "md5_digest": "45210eeb6dd774bf5fb2eb1c790fdabd",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.11",
            "size": 32711,
            "upload_time": "2025-10-23T23:19:23",
            "upload_time_iso_8601": "2025-10-23T23:19:23.589032Z",
            "url": "https://files.pythonhosted.org/packages/df/b1/59a19ec019095b98499e1be6855e31ef61d9b3e7602ad01fb6833e5356d3/msconvert_cli-1.0.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-10-23 23:19:23",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "pgarrett-scripps",
    "github_project": "msconvert-cli",
    "github_not_found": true,
    "lcname": "msconvert-cli"
}
        
Elapsed time: 2.21637s