Skip to main content

No project description provided

Project description

MiSoS(oup)

Code style: black PyPI version

Minimal Supplying Community Search (misosoup) is a command line tool designed to search for minimal microbial communities, wherein every member is essential for the community's persistence within a given medium. Its primary functions include:

  • Identifying minimal communities within a specified medium.
  • Identifying minimal "supplying" communities within a medium, where each member is necessary for the growth of a focal strain or species of interest.

To utilize misosoup, users provide a set of genome-scale metabolic models, each representing a potential member of the community. The program then employs constraint-based optimizations to determine minimal communities. These optimizations assume a metabolic steady-state, akin to Flux Balance Analysis.

Once computations are complete, misosoup outputs information about community members, their respective growth rates, as well as their metabolic consumptions and secretions, presented in a format both readable by humans and parseable by software.

Details

To find minimal microbial communities misosoup solves a repeated sequence of optimization problems using MILP formulations:

  1. Minimize the number of community member (see Zelezniak, et al. PNAS doi:10.1073/pnas.1421834112).
  2. Fix the active community members and check the feasibility of the entire community.
  3. Optionally: Maximize community biomass (sum of individual growth rates).
  4. Optionally: Perform an optimization to reflect parsimonious enzyme usage (see Lewis, et al. Mol Syst Bio doi:10.1038/msb.2010.47).

Install MiSoS(soup)

misosoup requires a version of Python >=3.9 and <3.12.

The latest stable version of misosoup is available through pip and hence it can be installed executing:

pip install misosoup

Dependencies

  • misosoup uses the Guroby optimizer that is free for academic use but does require a license.
  • Academic licenses can be obtained on the gurobi license page
  • Precise instructions on how to obtain and setup the gurobi licenses can be found on the gurobi website.

Usage

After installation, detailed usage instructions can be found with:

misosoup -h

To use misosoup with its default settings, you can use the following command:

misosoup MODEL_PATH/*.xml --output OUTPUT_FILE --media MEDIA_FILE --strain STRAIN

Arguments

  • MODEL_PATH: indicates the path to the directory where the metabolic models are described. Strains with metabolic models included in this directory will be considered as potential members in the minimal communities. The models should be in sbml format and follow the same naming conventions (e.g. if glucose's id in one model is 'glc__D', the same id should be used in the other models).
  • --output
    • Use OUTPUT_FILE for output in yaml format. If it is not given, the results will be printed to stdout.
  • --media
    • Load media from MEDIA_FILE. An example file with a correct format to introduce a media composition can be found in examples/.
  • --strain
    • Indicates the focal STRAIN model id. If no strain is provided, misosoup computes minimal communities.

Additional arguments

misosoup can be used with additional arguments.

misosoup MODEL_PATH/*.xml --output OUTPUT_FILE --media MEDIA_FILE --strain STRAIN --parsimony --community-size COMMUNITY_SIZE --minimal-growth MINIMAL_GROWTH
  • --parsimony
    • If this flag is used the algorithm will return the solution that minimizes the total flux. This does not affect the community members but can alter what each member consumes and secretes.
  • --community-size
    • Instead of looking for all communities, find all communities up to size COMMUNITY_SIZE
  • --minimal-growth
    • Set the MINIMAL_GROWTH rate of strains. Every strain that makes up a community needs to satisfy this minimal growth constraint. The default growth rate is 0.01 (1/h).

Output file

As output misosoup will generate a yaml file with the following general structure:

medium:
  strain|min:
    - <Solution1>
    - <Solution2>

The solutions indicated above contain two entries, the first is a dictionary with the community composition, and the second is a dictionary with the growth rates and fluxes through exchange reactions of the respective optimized solution. An example of an output file can be found in examples/.

Example

This package includes an example directory containing models and media specifications, enabling users to perform a straightforward analysis using misosoup. The example demonstrates how to identify minimal microbial communities that utilize acetate as the sole carbon source. The results of this analysis are pre-generated and available in the directory for reference.

Running the Example

To execute the analysis, navigate to the example directory and use the following command:

cd example/marine/
misosoup ./strains/*.xml --output ./output.yaml --media media.yaml --strain A1R12 --media-select ac

This command instructs misosoup to analyze the specified microbial strains for their ability to support the growth of strain A1R12 in a Minimal Basal Medium (MBM) with acetate (ac) as the exclusive carbon source.

Analysis Results

The simulation results, detailed in output.yaml, reveal two potential microbial communities capable of supporting A1R12 growth:

  • Solution 1: Community comprising A1R12 and I2R16, indicating a symbiotic relationship sufficient for growth on acetate.
  • Solution 2: Community comprising A1R12 and I3M07. Detailed analysis of this community shows:
    • Both strains produce carbon dioxide as a by-product, with strain-specific CO2 fluxes of R_EX_co2_e_A1R12_i: 0.564 for A1R12 and R_EX_co2_e_I3M07_i: 0.1312 for I3M07.
    • The total community-level carbon dioxide production is quantified by the flux R_EX_co2_e: 1.695, highlighting the combined metabolic activity.

These solutions showcase misosoup's ability to predict minimal microbial communities based on specific metabolic requirements, facilitating targeted research and application in microbial ecology and synthetic biology.

Citation

If you use misosoup, please cite our paper.

Workflows

snakemake is a useful tool to execute many experiments and gather results. See misosoup Workflow Template on how to use it.

Development

Any contributions are welcome.

MIT License

Copyright (c) 2021 Nicolas Ochsner

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

misosoup-2.3.1.tar.gz (20.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

misosoup-2.3.1-py3-none-any.whl (21.4 kB view details)

Uploaded Python 3

File details

Details for the file misosoup-2.3.1.tar.gz.

File metadata

  • Download URL: misosoup-2.3.1.tar.gz
  • Upload date:
  • Size: 20.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.10

File hashes

Hashes for misosoup-2.3.1.tar.gz
Algorithm Hash digest
SHA256 ee9785fc2f8f25a2e5208b6472b2a5ed23ed027d2295c3eb2a7342780135ebf0
MD5 f5d2408442b9ace8f3fe25e66f938352
BLAKE2b-256 5590dd94ad1b7dfb07c55bdb0857f93d34f2171da70b983ad9c0fbb00aa635e2

See more details on using hashes here.

File details

Details for the file misosoup-2.3.1-py3-none-any.whl.

File metadata

  • Download URL: misosoup-2.3.1-py3-none-any.whl
  • Upload date:
  • Size: 21.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.10

File hashes

Hashes for misosoup-2.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 86e1e2b58fd4afc4586291cbfbb7d1caae085b583cf766a474243600cca8a9b2
MD5 12d6f7e3171d922d933b09d7f6b19ac2
BLAKE2b-256 159390b2df72695c9d000a3b00649a45d8a74c04e8d4681f6cb4d72f476183ae

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page