mutation_motif


Namemutation_motif JSON
Version 2024.9.22 PyPI version JSON
download
home_pageNone
Summarymutation_motif, software for naalyses of point mutations, see https://www.ncbi.nlm.nih.gov/pubmed/27974498
upload_time2024-09-22 02:16:54
maintainerNone
docs_urlNone
authorNone
requires_python<3.13,>3.9
licenseNone
keywords biology genomics statistics genetics evolution bioinformatics mutation
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            [![Python Versions](https://img.shields.io/badge/python-3.10%20%7C%203.11%20%7C%203.12-blue)](https://www.python.org/)
[![CI](https://github.com/HuttleyLab/MutationMotif/actions/workflows/testing_develop.yml/badge.svg)](https://github.com/HuttleyLab/MutationMotif/actions/workflows/testing_develop.yml)
[![Coverage Status](https://coveralls.io/repos/github/HuttleyLab/MutationMotif/badge.svg?branch=develop)](https://coveralls.io/github/HuttleyLab/MutationMotif?branch=develop)
[![Codacy Badge](https://app.codacy.com/project/badge/Grade/ffc29377d3684100b74a868e4a15970d)](https://app.codacy.com/gh/HuttleyLab/MutationMotif/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade)
[![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)

![logo](https://ndownloader.figstatic.com/files/23575181)

# Mutation Motif

`mutation_motif` provides capabilities for analysis of point mutation counts data. It includes commands for preparing sequence data, log-linear analyses of the resulting counts and sequence logo style visualisations. Two different analysis approaches are supported:

1. log-linear analysis of neighbourhood base influences on mutation coupled with a sequence logo like representation of influences (illustrated above)
2. log-linear analysis of mutation spectra, the relative proportions of different mutation directions from a starting base. A logo-like visualisation of the latter is also supported.

The description of the models and applications of them are described in [Zhu, Neeman, Yap and Huttley 2017 Statistical methods for identifying sequence motifs affecting point mutations](https://www.ncbi.nlm.nih.gov/pubmed/27974498).

## Installation

You can just do a pip install 

```
$ pip install mutation_motif
```

## The commands

The primary tool is installed as a command line executable, `mm`.

### Preparing data for analyses

#### The input sequence file format
At present, `mm` reads in a fasta formatted file where each sequence has identical length. The length is an odd number and where the mutation occurred at the middle base. `mm` assumes each sequence file contains sequences that experienced the same point mutation at this central position, e.g. `seqs-CtoT.fasta` contains only sequences that have experienced a C → T mutation at the central position **and the sequences have a C** at that position. The sequence flanking the mutated base is used to derive a paired "unmutated" reference. The details of this sampling are in Zhu et al.

Two data preparatory subcommands are available: `prep-nbr` and `prep-spectra`. 

<details>
<summary>prep-nbr: converts aligned sequences to counts</summary>

`prep-nbr` converts a fasta formatted alignment of equal length sequences to the required counts table format.

<!-- [[[cog
import cog
from mutation_motif.cli import main
from click.testing import CliRunner
runner = CliRunner()
result = runner.invoke(main, ["prep-nbr"])
help = result.output.replace("Usage: main", "Usage: mm")
cog.out(
    "```\n{}\n```".format(help)
)
]]] -->
```
Usage: mm prep-nbr [OPTIONS]

  Export tab delimited counts table from alignment centred on SNP position.

  Output file is written to the same path with just the file suffix changed from
  fasta to txt.

Options:
  -a, --align_path TEXT           fasta aligned file centred on mutated
                                  position.  [required]
  -o, --output_path TEXT          Path to write data.  [required]
  -f, --flank_size INTEGER        Number of bases per side to include.
                                  [required]
  --direction [AtoC|AtoG|AtoT|CtoA|CtoG|CtoT|GtoA|GtoC|GtoT|TtoA|TtoC|TtoG]
                                  Mutation direction.  [required]
  -S, --seed TEXT                 Seed for random number generator (e.g. 17, or
                                  2015-02-13). Defaults to system time.
  -R, --randomise                 Randomises the observed data, observed and
                                  reference counts distributions should match.
  --step [1|2|3]                  Specifies a "frame" for selecting the random
                                  base.  [default: 1]
  -D, --dry_run                   Do a dry run of the analysis without writing
                                  output.
  -F, --force_overwrite           Overwrite existing files.
  --help                          Show this message and exit.

```
<!-- [[[end]]] -->
</details>

<details>
<summary>prep-spectra: combining mutation counts from multiple files</summary>

This command combines the separate counts tables of `prep-nbr` into a larger table suitable for analyses by `ll-spectra`.

<!-- [[[cog
import cog
from mutation_motif.cli import main
from click.testing import CliRunner
runner = CliRunner()
result = runner.invoke(main, ["prep-spectra"])
help = result.output.replace("Usage: main", "Usage: mm")
cog.out(
    "```\n{}\n```".format(help)
)
]]] -->
```
Usage: mm prep-spectra [OPTIONS]

  export tab delimited combined counts table by appending the 12 mutation
  direction tables, adding a new column ``direction``.

Options:
  -c, --counts_pattern TEXT  glob pattern uniquely identifying all 12 mutation
                             counts files.
  -o, --output_path TEXT     Path to write combined_counts data.
  -s, --strand_symmetric     produces table suitable for strand symmetry test.
  -p, --split_dir TEXT       path to write individual direction strand symmetric
                             tables.
  -D, --dry_run              Do a dry run of the analysis without writing
                             output.
  -F, --force_overwrite      Overwrite existing files.
  --help                     Show this message and exit.

```
<!-- [[[end]]] -->
</details>

#### The output counts table format

The counts table format has a simple structure, illustrated by the following:

 | count  | pos0  | pos1  | pos2  | pos3  | mut |
 |--------| ------| ------| ------| ------| -----  |
 | 5663   | C     | T     | T     | T     | M |
 | 2639   | G     | C     | A     | T     | M |
 | 2425   | G     | C     | A     | G     | M |
 | \...   | \...  | \...  | \...  | \...  | \... |
 | 882    | G     | G     | G     | T     | R |
 | 6932   | A     | G     | T     | G     | R |
 | 10550  | A     | A     | A     | A     | R |

The mutation status **must** be indicated by `R` (reference) and `M` (mutated). In this instance, the flank size is 2 and mutation was between `pos1` and `pos2`. Tables with this format are generated by `prep-nbr`.

### Statistical analyses of mutations

The log-linear analyses requires a counts table from the prep steps. The table contains counts for a specified flank size (maximum of 2 bases, assumed to be either side of the mutated base). It assumes the counts all reflect a specific mutation direction (e.g. AtoG) and that counts from a control distribution are also included.

Two subcommands are available: `ll-nbr` and `ll-spectra`. 

<details>
<summary>ll-nbr: for detecting the influence of neighbouring bases on mutation</summary>

The first examines the influence of neighbouring bases up to fourth order interactions.

<!-- [[[cog
import cog
from mutation_motif.cli import main
from click.testing import CliRunner
runner = CliRunner()
result = runner.invoke(main, ["ll-nbr"])
help = result.output.replace("Usage: main", "Usage: mm")
cog.out(
    "```\n{}\n```".format(help)
)
]]] -->
```
Usage: mm ll-nbr [OPTIONS]

  log-linear analysis of neighbouring base influence on point mutation

  Writes estimated statistics, figures and a run log to the specified directory
  outpath.

  See documentation for count table format requirements.

Options:
  -1, --countsfile TEXT   tab delimited file of counts.
  -o, --outpath TEXT      Directory path to write data.
  -2, --countsfile2 TEXT  second group motif counts file.
  --first_order           Consider only first order effects. Defaults to
                          considering up to 4th order interactions.
  -s, --strand_symmetry   single counts file but second group is strand.
  -g, --group_label TEXT  second group label.
  -r, --group_ref TEXT    reference group value for results presentation.
  -v, --verbose           Display more output.
  -D, --dry_run           Do a dry run of the analysis without writing output.
  --help                  Show this message and exit.

```
<!-- [[[end]]] -->
</details>

<details>
<summary>ll-spectra: detect differences in mutation spectra between groups</summary>

Contrasts the mutations from specified starting bases between groups.

<!-- [[[cog
import cog
from mutation_motif.cli import main
from click.testing import CliRunner
runner = CliRunner()
result = runner.invoke(main, ["ll-spectra"])
help = result.output.replace("Usage: main", "Usage: mm")
cog.out(
    "```\n{}\n```".format(help)
)
]]] -->
```
Usage: mm ll-spectra [OPTIONS]

  log-linear analysis of mutation spectra between groups

Options:
  -1, --countsfile TEXT   tab delimited file of counts.
  -o, --outpath TEXT      Directory path to write data.
  -2, --countsfile2 TEXT  second group motif counts file.
  -s, --strand_symmetry   single counts file but second group is strand.
  -F, --force_overwrite   Overwrite existing files.
  -D, --dry_run           Do a dry run of the analysis without writing output.
  -v, --verbose           Display more output.
  --help                  Show this message and exit.

```
<!-- [[[end]]] -->
</details>

Visualisation of mutation motifs, or mutation spectra, in a grid is provided by the `draw-`
subcommands.

## Evaluating the effect of neighbours on mutation

Sample data files are included as `tests/data/counts-CtoT.txt` and `tests/data/counts-CtoT-ss.txt` with the latter being appropriate for analysis of the occurrence of strand asymmetric neighbour effects.

The simple analysis is invoked as:
```
$ mm ll-nbr -1 path/to/tests/data/counts-CtoT.txt -o path/for/results/
```

This will write 11 files into the results directory. Files such as `1.pdf` and `2.pdf` are the mutation motifs for the first and second order effects from the log-linear models. Files ending in `.json` contain the raw data used to produce these figures and may be used for subsequent analyses, such as generating grids of mutation motifs. The summary files include the full log-linear modelling hierarchy. The `.log` files track the command used to generate these files, including
the input files and the settings used.

Testing for strand symmetry (or asymmetry) is done as:
```
$ mm ll-nbr -1 path/to/tests/data/counts-CtoT.txt -o path/for/results/ --strand_symmetry
```
Similar output to the above is generated. The difference here is that the reference group for display are bases on the `+` strand.

If comparing between groups, such as patient cohorts or chromosomal regions, then there are two separate counts files and the second count file is indicated using a `-2` command line option.

## Testing Full Spectra

Testing for strand symmetry requires the combined counts file, produced using the provided `all_counts` script. A sample such file is included as `tests/data/counts-combined.txt`. In this instance, a test of consistency in mutation spectra between strands is specified.

This analysis is run as:
```
$ mm ll-spectra -1 path/to/tests/data/counts-combined.txt -o another/path/for/results/ --strand_symmetry
```
## Drawing

`mm` provides support for drawing either spectra or neighbour mutation motif logos.

### Interpreting logo\'s

If the plot is derived from a group comparison, the relative entropy terms (which specify the stack height, letter size and orientation) are taken from the mutated class belonging to group 1 (which is the counts file path assigned to the `-1` option). For example, if you specified `-1 file_a.txt -2 file_b.txt`, then large upright letters in the display indicate an excess in the mutated class from `file_a.txt` relative to `file_b.txt`.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "mutation_motif",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<3.13,>3.9",
    "maintainer_email": null,
    "keywords": "biology, genomics, statistics, genetics, evolution, bioinformatics, mutation",
    "author": null,
    "author_email": "Gavin Huttley <Gavin.Huttley@anu.edu.au>",
    "download_url": "https://files.pythonhosted.org/packages/7a/07/77016b485081ed0932cb00803d89de77333bd3f624d2b5cb015a2b14166c/mutation_motif-2024.9.22.tar.gz",
    "platform": null,
    "description": "[![Python Versions](https://img.shields.io/badge/python-3.10%20%7C%203.11%20%7C%203.12-blue)](https://www.python.org/)\n[![CI](https://github.com/HuttleyLab/MutationMotif/actions/workflows/testing_develop.yml/badge.svg)](https://github.com/HuttleyLab/MutationMotif/actions/workflows/testing_develop.yml)\n[![Coverage Status](https://coveralls.io/repos/github/HuttleyLab/MutationMotif/badge.svg?branch=develop)](https://coveralls.io/github/HuttleyLab/MutationMotif?branch=develop)\n[![Codacy Badge](https://app.codacy.com/project/badge/Grade/ffc29377d3684100b74a868e4a15970d)](https://app.codacy.com/gh/HuttleyLab/MutationMotif/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade)\n[![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)\n\n![logo](https://ndownloader.figstatic.com/files/23575181)\n\n# Mutation Motif\n\n`mutation_motif` provides capabilities for analysis of point mutation counts data. It includes commands for preparing sequence data, log-linear analyses of the resulting counts and sequence logo style visualisations. Two different analysis approaches are supported:\n\n1. log-linear analysis of neighbourhood base influences on mutation coupled with a sequence logo like representation of influences (illustrated above)\n2. log-linear analysis of mutation spectra, the relative proportions of different mutation directions from a starting base. A logo-like visualisation of the latter is also supported.\n\nThe description of the models and applications of them are described in [Zhu, Neeman, Yap and Huttley 2017 Statistical methods for identifying sequence motifs affecting point mutations](https://www.ncbi.nlm.nih.gov/pubmed/27974498).\n\n## Installation\n\nYou can just do a pip install \n\n```\n$ pip install mutation_motif\n```\n\n## The commands\n\nThe primary tool is installed as a command line executable, `mm`.\n\n### Preparing data for analyses\n\n#### The input sequence file format\nAt present, `mm` reads in a fasta formatted file where each sequence has identical length. The length is an odd number and where the mutation occurred at the middle base. `mm` assumes each sequence file contains sequences that experienced the same point mutation at this central position, e.g. `seqs-CtoT.fasta` contains only sequences that have experienced a C \u2192 T mutation at the central position **and the sequences have a C** at that position. The sequence flanking the mutated base is used to derive a paired \"unmutated\" reference. The details of this sampling are in Zhu et al.\n\nTwo data preparatory subcommands are available: `prep-nbr` and `prep-spectra`. \n\n<details>\n<summary>prep-nbr: converts aligned sequences to counts</summary>\n\n`prep-nbr` converts a fasta formatted alignment of equal length sequences to the required counts table format.\n\n<!-- [[[cog\nimport cog\nfrom mutation_motif.cli import main\nfrom click.testing import CliRunner\nrunner = CliRunner()\nresult = runner.invoke(main, [\"prep-nbr\"])\nhelp = result.output.replace(\"Usage: main\", \"Usage: mm\")\ncog.out(\n    \"```\\n{}\\n```\".format(help)\n)\n]]] -->\n```\nUsage: mm prep-nbr [OPTIONS]\n\n  Export tab delimited counts table from alignment centred on SNP position.\n\n  Output file is written to the same path with just the file suffix changed from\n  fasta to txt.\n\nOptions:\n  -a, --align_path TEXT           fasta aligned file centred on mutated\n                                  position.  [required]\n  -o, --output_path TEXT          Path to write data.  [required]\n  -f, --flank_size INTEGER        Number of bases per side to include.\n                                  [required]\n  --direction [AtoC|AtoG|AtoT|CtoA|CtoG|CtoT|GtoA|GtoC|GtoT|TtoA|TtoC|TtoG]\n                                  Mutation direction.  [required]\n  -S, --seed TEXT                 Seed for random number generator (e.g. 17, or\n                                  2015-02-13). Defaults to system time.\n  -R, --randomise                 Randomises the observed data, observed and\n                                  reference counts distributions should match.\n  --step [1|2|3]                  Specifies a \"frame\" for selecting the random\n                                  base.  [default: 1]\n  -D, --dry_run                   Do a dry run of the analysis without writing\n                                  output.\n  -F, --force_overwrite           Overwrite existing files.\n  --help                          Show this message and exit.\n\n```\n<!-- [[[end]]] -->\n</details>\n\n<details>\n<summary>prep-spectra: combining mutation counts from multiple files</summary>\n\nThis command combines the separate counts tables of `prep-nbr` into a larger table suitable for analyses by `ll-spectra`.\n\n<!-- [[[cog\nimport cog\nfrom mutation_motif.cli import main\nfrom click.testing import CliRunner\nrunner = CliRunner()\nresult = runner.invoke(main, [\"prep-spectra\"])\nhelp = result.output.replace(\"Usage: main\", \"Usage: mm\")\ncog.out(\n    \"```\\n{}\\n```\".format(help)\n)\n]]] -->\n```\nUsage: mm prep-spectra [OPTIONS]\n\n  export tab delimited combined counts table by appending the 12 mutation\n  direction tables, adding a new column ``direction``.\n\nOptions:\n  -c, --counts_pattern TEXT  glob pattern uniquely identifying all 12 mutation\n                             counts files.\n  -o, --output_path TEXT     Path to write combined_counts data.\n  -s, --strand_symmetric     produces table suitable for strand symmetry test.\n  -p, --split_dir TEXT       path to write individual direction strand symmetric\n                             tables.\n  -D, --dry_run              Do a dry run of the analysis without writing\n                             output.\n  -F, --force_overwrite      Overwrite existing files.\n  --help                     Show this message and exit.\n\n```\n<!-- [[[end]]] -->\n</details>\n\n#### The output counts table format\n\nThe counts table format has a simple structure, illustrated by the following:\n\n | count  | pos0  | pos1  | pos2  | pos3  | mut |\n |--------| ------| ------| ------| ------| -----  |\n | 5663   | C     | T     | T     | T     | M |\n | 2639   | G     | C     | A     | T     | M |\n | 2425   | G     | C     | A     | G     | M |\n | \\...   | \\...  | \\...  | \\...  | \\...  | \\... |\n | 882    | G     | G     | G     | T     | R |\n | 6932   | A     | G     | T     | G     | R |\n | 10550  | A     | A     | A     | A     | R |\n\nThe mutation status **must** be indicated by `R` (reference) and `M` (mutated). In this instance, the flank size is 2 and mutation was between `pos1` and `pos2`. Tables with this format are generated by `prep-nbr`.\n\n### Statistical analyses of mutations\n\nThe log-linear analyses requires a counts table from the prep steps. The table contains counts for a specified flank size (maximum of 2 bases, assumed to be either side of the mutated base). It assumes the counts all reflect a specific mutation direction (e.g. AtoG) and that counts from a control distribution are also included.\n\nTwo subcommands are available: `ll-nbr` and `ll-spectra`. \n\n<details>\n<summary>ll-nbr: for detecting the influence of neighbouring bases on mutation</summary>\n\nThe first examines the influence of neighbouring bases up to fourth order interactions.\n\n<!-- [[[cog\nimport cog\nfrom mutation_motif.cli import main\nfrom click.testing import CliRunner\nrunner = CliRunner()\nresult = runner.invoke(main, [\"ll-nbr\"])\nhelp = result.output.replace(\"Usage: main\", \"Usage: mm\")\ncog.out(\n    \"```\\n{}\\n```\".format(help)\n)\n]]] -->\n```\nUsage: mm ll-nbr [OPTIONS]\n\n  log-linear analysis of neighbouring base influence on point mutation\n\n  Writes estimated statistics, figures and a run log to the specified directory\n  outpath.\n\n  See documentation for count table format requirements.\n\nOptions:\n  -1, --countsfile TEXT   tab delimited file of counts.\n  -o, --outpath TEXT      Directory path to write data.\n  -2, --countsfile2 TEXT  second group motif counts file.\n  --first_order           Consider only first order effects. Defaults to\n                          considering up to 4th order interactions.\n  -s, --strand_symmetry   single counts file but second group is strand.\n  -g, --group_label TEXT  second group label.\n  -r, --group_ref TEXT    reference group value for results presentation.\n  -v, --verbose           Display more output.\n  -D, --dry_run           Do a dry run of the analysis without writing output.\n  --help                  Show this message and exit.\n\n```\n<!-- [[[end]]] -->\n</details>\n\n<details>\n<summary>ll-spectra: detect differences in mutation spectra between groups</summary>\n\nContrasts the mutations from specified starting bases between groups.\n\n<!-- [[[cog\nimport cog\nfrom mutation_motif.cli import main\nfrom click.testing import CliRunner\nrunner = CliRunner()\nresult = runner.invoke(main, [\"ll-spectra\"])\nhelp = result.output.replace(\"Usage: main\", \"Usage: mm\")\ncog.out(\n    \"```\\n{}\\n```\".format(help)\n)\n]]] -->\n```\nUsage: mm ll-spectra [OPTIONS]\n\n  log-linear analysis of mutation spectra between groups\n\nOptions:\n  -1, --countsfile TEXT   tab delimited file of counts.\n  -o, --outpath TEXT      Directory path to write data.\n  -2, --countsfile2 TEXT  second group motif counts file.\n  -s, --strand_symmetry   single counts file but second group is strand.\n  -F, --force_overwrite   Overwrite existing files.\n  -D, --dry_run           Do a dry run of the analysis without writing output.\n  -v, --verbose           Display more output.\n  --help                  Show this message and exit.\n\n```\n<!-- [[[end]]] -->\n</details>\n\nVisualisation of mutation motifs, or mutation spectra, in a grid is provided by the `draw-`\nsubcommands.\n\n## Evaluating the effect of neighbours on mutation\n\nSample data files are included as `tests/data/counts-CtoT.txt` and `tests/data/counts-CtoT-ss.txt` with the latter being appropriate for analysis of the occurrence of strand asymmetric neighbour effects.\n\nThe simple analysis is invoked as:\n```\n$ mm ll-nbr -1 path/to/tests/data/counts-CtoT.txt -o path/for/results/\n```\n\nThis will write 11 files into the results directory. Files such as `1.pdf` and `2.pdf` are the mutation motifs for the first and second order effects from the log-linear models. Files ending in `.json` contain the raw data used to produce these figures and may be used for subsequent analyses, such as generating grids of mutation motifs. The summary files include the full log-linear modelling hierarchy. The `.log` files track the command used to generate these files, including\nthe input files and the settings used.\n\nTesting for strand symmetry (or asymmetry) is done as:\n```\n$ mm ll-nbr -1 path/to/tests/data/counts-CtoT.txt -o path/for/results/ --strand_symmetry\n```\nSimilar output to the above is generated. The difference here is that the reference group for display are bases on the `+` strand.\n\nIf comparing between groups, such as patient cohorts or chromosomal regions, then there are two separate counts files and the second count file is indicated using a `-2` command line option.\n\n## Testing Full Spectra\n\nTesting for strand symmetry requires the combined counts file, produced using the provided `all_counts` script. A sample such file is included as `tests/data/counts-combined.txt`. In this instance, a test of consistency in mutation spectra between strands is specified.\n\nThis analysis is run as:\n```\n$ mm ll-spectra -1 path/to/tests/data/counts-combined.txt -o another/path/for/results/ --strand_symmetry\n```\n## Drawing\n\n`mm` provides support for drawing either spectra or neighbour mutation motif logos.\n\n### Interpreting logo\\'s\n\nIf the plot is derived from a group comparison, the relative entropy terms (which specify the stack height, letter size and orientation) are taken from the mutated class belonging to group 1 (which is the counts file path assigned to the `-1` option). For example, if you specified `-1 file_a.txt -2 file_b.txt`, then large upright letters in the display indicate an excess in the mutated class from `file_a.txt` relative to `file_b.txt`.\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "mutation_motif, software for naalyses of point mutations, see https://www.ncbi.nlm.nih.gov/pubmed/27974498",
    "version": "2024.9.22",
    "project_urls": {
        "Bug Tracker": "https://github.com/HuttleyLab/MutationMotif/issues",
        "Documentation": "https://github.com/HuttleyLab/MutationMotif",
        "Source Code": "https://github.com/HuttleyLab/MutationMotif"
    },
    "split_keywords": [
        "biology",
        " genomics",
        " statistics",
        " genetics",
        " evolution",
        " bioinformatics",
        " mutation"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "a75891b24bf952a903bff0fdc19bca77e44a47db4f145abbb5770297ac86946d",
                "md5": "9d4dd3f7b33bf7c9c32f1c24db9e4d52",
                "sha256": "076bdbf78d8a815aa1239a9f1996bf7544d0772f5d9cb1e800b5c9fa277b53e3"
            },
            "downloads": -1,
            "filename": "mutation_motif-2024.9.22-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "9d4dd3f7b33bf7c9c32f1c24db9e4d52",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<3.13,>3.9",
            "size": 37513,
            "upload_time": "2024-09-22T02:16:49",
            "upload_time_iso_8601": "2024-09-22T02:16:49.074174Z",
            "url": "https://files.pythonhosted.org/packages/a7/58/91b24bf952a903bff0fdc19bca77e44a47db4f145abbb5770297ac86946d/mutation_motif-2024.9.22-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "7a0777016b485081ed0932cb00803d89de77333bd3f624d2b5cb015a2b14166c",
                "md5": "79cd63126126c101f12d1e36ab3f5876",
                "sha256": "9c805b2405d52d2e9ab00bfc4f00093bece50ccc1157d3a046db111efae9375c"
            },
            "downloads": -1,
            "filename": "mutation_motif-2024.9.22.tar.gz",
            "has_sig": false,
            "md5_digest": "79cd63126126c101f12d1e36ab3f5876",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<3.13,>3.9",
            "size": 402377,
            "upload_time": "2024-09-22T02:16:54",
            "upload_time_iso_8601": "2024-09-22T02:16:54.005517Z",
            "url": "https://files.pythonhosted.org/packages/7a/07/77016b485081ed0932cb00803d89de77333bd3f624d2b5cb015a2b14166c/mutation_motif-2024.9.22.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-09-22 02:16:54",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "HuttleyLab",
    "github_project": "MutationMotif",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "mutation_motif"
}
        
Elapsed time: 0.67819s