Name | PyMaSC JSON |
Version |
1.0.0
JSON |
| download |
home_page | None |
Summary | Python implementation to calc mappability-sensitive cross-correlation for fragment length estimation and quality control for ChIP-Seq. |
upload_time | 2025-08-15 15:19:36 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.8 |
license | MIT |
keywords |
ngs
chip-seq
bioinformatics
cross-correlation
mappability
|
VCS |
 |
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
|
coveralls test coverage |
No coveralls.
|

PyMaSC
======
[](https://badge.fury.io/py/PyMaSC)
[](https://pypi.python.org/pypi/PyMaSC/)
[](https://github.com/ronin-gw/PyMaSC/actions/workflows/build-check.yml)
[](https://github.com/ronin-gw/PyMaSC/actions/workflows/test-prebuild.yml)
[](https://github.com/ronin-gw/PyMaSC/actions/workflows/test.yml)
[](https://github.com/ronin-gw/PyMaSC/actions/workflows/test-matrix.yml)
[](https://github.com/ronin-gw/PyMaSC/actions/workflows/build-wheels.yml)
Python implementation to calc mappability-sensitive cross-correlation
for fragment length estimation and quality control for ChIP-Seq.
Visit [PyMaSC web site](https://pymasc.sb.ecei.tohoku.ac.jp/) for more information and to get human genome mappability tracks.
* * *
Introduction
------------
To estimate mean fragment length for single-ended sequencing data, cross-correlation
between positive- and negative-strand reads is commonly used. One of the problems with
this approach is _phantom_ peak, which is the occasionally observed peak corresponding
to the read length. In the ChIP-Seq guidelines by ENCODE consortia, cross-correlation
at fragment length and read length are used for quality control metrics. Additionally,
library length itself is one of the important parameters for analysises. However,
estimating correct flagment length is not a easy task because of _phantom_ peak occurrence.
P Ramachandran _et al._ proposed __MaSC__, mappability-sensitive cross-correlation to
remove the bias caused from ununiformity of mappability throughout the genome. This
method provides cross-correlation landscape without _phantom_ peak and much accurate
mean fragment length estimation.
__PyMaSC__ is a tool implemented by python and cython to visualize (mappability-sensitive)
cross-correlation and estimate ChIP-Seq quality metrics and mean fragment length with
MaSC algorithm.
Install
-------
Python version 3.8 or higher is recommended (Python 3.8-3.13 officially supported).
C compiler needs to build C sources (recommend GCC).
### Install using pip
1. `numpy`, `pysam>=0.23.2`, and `pyBigWig>=0.3.18` must be installed ___before___ installing PyMaSC
$ pip install numpy "pysam>=0.23.2" "pyBigWig>=0.3.18"
2. Install PyMaSC from PyPI
$ pip install pymasc
If cython is installed, PyMaSC will be built with Cython native compiled sources instead of pre-compiled C sources.
Usage
-----
After installation, PyMaSC provides `pymasc`, `pymasc-precalc` and `pymasc-plot` command.
Note that `pymasc-precalc` is not essential to calculate mappability-sensitive
cross-correlation.
### `pymasc` command
pymasc [-h]
[-v {DEBUG,INFO,WARNING,ERROR,CRITICAL}]
[--disable-progress]
[--color {TRUE,FALSE}]
[--version]
[-p PROCESS]
[--successive]
[--skip-ncc]
[--skip-plots]
[-r READ_LENGTH]
[--estimation-type {MEAN,MEDIAN,MODE,MIN,MAX}]
[-l LIBRARY_LENGTH]
[-m REGION_FILE]
[--mappability-stats MAPPABILITY_STATS]
[-q MAPQ]
[-i CHROM [CHROM ...]]
[-e CHROM [CHROM ...]]
[-d MAX_SHIFT]
[--chi2-pval CHI2_PVAL]
[-w SMOOTH_WINDOW]
[--mask-size MASK_SIZE]
[--bg-avr-width BG_AVR_WIDTH]
[-n NAME [NAME ...]]
[-o OUTDIR]
reads [reads ...]
#### Usage example
Calculate only naïve cross-correlation for `ENCFF000VPI.bam` with max shift size = 1000.
Output files are `ENCFF000VPI_stats.tab`, `ENCFF000VPI_nreads.tab`, `ENCFF000VPI_cc.tab`
and `ENCFF000VPI.pdf`.
$ pymasc -d 1000 ENCFF000VPI.bam
Calculate both naïve and mappability-sensitive cross-correlation by 4 worker processes.
Output `ENCFF000VPI_mscc.tab` Additionally.
$ pymasc -p 4 -d 1000 -m wgEncodeCrgMapabilityAlign36mer.bigWig ENCFF000VPI.bam
#### Main input file
SAM and BAM file format are acceptable.
* Input alignment file must be sorted.
* Additionally, for parallel processing, input file must be BAM format and indexed.
* If multiple files specified, PyMaSC processes each file with common parameters.
* Unmapped or duplicated reads will be discarded.
* If input file contains paired-end reads, the last (second) segment read will be discarded.
#### Output files
#### General options
##### -v / --log-level {DEBUG,INFO,WARNING,ERROR,CRITICAL}
Set logging message level. (Default: info)
##### --disable-progress
Disable progress bars.
Note that progress bar will be disabled automatically if stderr is not connected to terminal.
##### --color {TRUE,FALSE}
Switch coloring log output. (Default: auto; enable if stderr is connected to terminal)
#### --version
Show program's version number and exit
#### Processing settings
##### -p / --process [int]
Set number of worker process. (Default: 1)
For indexed BAM file, PyMaSC parallel process each reference (chromosome).
#### --successive
Calc with successive algorithm instead of bitarray implementation (Default: false)
Bitarray implementation is recommended in most situation. See `Computation details`
for more information.
##### --skip-ncc
Both `-m/--mappability` and `--skip-ncc` specified, PyMaSC skips calculate naïve cross-correlation
and calculates only mappability-sensitive cross-correlation. (Default: False)
##### --skip-plots
Skip output figures. (Default: False)
#### Input alignment file settings
##### -r / --read-length [int]
Specify read length explicitly. (Default: get representative by scanning)
PyMaSC needs representative value of read length to plot figures and to calc
mappability-sensitive cross-correlation. By default, PyMaSC scans input file
read length to get representative read length. If read length is specified, PyMaSC
skips this step.
Note that this option must be specified to treat unseekable input (like stdin).
##### --readlen-estimator {MEAN,MEDIAN,MODE,MIN,MAX}
Specify how to get representative value of read length. (Default: median)
##### -l / --library-length
Specify expected fragment length. (Default: None)
PyMaSC supplies additional NSC and RSC values calculated from this value.
#### Input mappability file settings
##### -m / --mappability [BigWig file]
Specify mappability (alignability, uniqueness) track to calculate mappability-sensitive
cross-correlation.
Input file must be BigWig format and each track's score should indicate mappability
in [0, 1] (1 means uniquely mappable position).
If BigWig file is not supplied, PyMaSC will calculate only naïve cross-correlation.
##### --mappability-stats [json file]
Read and save path to the json file which contains mappability region statistics.
(Default: same place, same base name as the mappability BigWig file)
If there is no statistics file for specified BigWig file, PyMaSC calculate total
length of doubly mappable region for each shift size automatically and save them
to reuse for next calculation and faster computing.
`pymasc-precalc` performs this calculation for specified BigWig file (this is not
necessary, of course).
#### Input file filtering arguments
##### -q / --mapq [int]
Input reads which mapping quality less than specified score will be discarded. (Default: 1)
MAPQ >= 1 is recommended because MAPQ=0 contains multiple hit reads.
##### -i / --include-chrom [pattern ...]
Specify chromosomes to calculate. Unix shell-style wildcards (`.`, `*`, `[]` and `[!]`)
are acceptable. This option can be declared multiple times to re-include chromosomes
specified in a just before -e/--exclude-chrom option. Note that this option is case-sensitive.
##### -e / --exclude-chrom [pattern ...]
As same as the -i/--include-chrom option, specify chromosomes to exclude from calculation.
This option can be declared multiple times to re-exclude chromosomes specified in
a just before -i/--include-chrom option.
#### Analysis Parameters
##### -d / --max-shift [int]
PyMaSC calculate cross-correlation with shift size from 0 to this value. (Default: 1000)
##### --chi2-pval [float]
P-value threshold to check strand specificity. (Default: 0.05)
PyMaSC performs chi-square test between number of reads mapped to positive- and negative-strand.
##### -w / --smooth-window [int]
Before mean fragment length estimation, PyMaSC applies moving average filter to
mappability-sensitive cross-correlation. This option specify filter's window size.
(Default: 15)
##### --mask-size [int]
If difference between a read length and the estimated library length is equal or
less than the length specified by this option, PyMaSC masks correlation coefficients
in the read length +/- specified length and try to estimate mean library length again.
(Default: 5, Specify < 1 to disable)
##### --bg-avr-width [int]
To obtain the minimum coefficients of cross-correlation, PyMaSC gets the median
of the end of specified bases from calculated cross-correlation coefficients.
(Default: 50bp)
#### Output options
##### -o / --outdir [path]
Specify output directory. (Default: current directory)
##### -n / --name [NAME...]
By default, output files are written to `outdir/input_file_base_name`. This option
overwrite output file base name.
### `pymasc-precalc` command
pymasc-precalc [-h]
[-p PROCESS]
[-v {DEBUG,INFO,WARNING,ERROR,CRITICAL}]
[--disable-progress]
[--color {TRUE,FALSE}]
[--version]
[-m REGION_FILE]
[--mappability-stats MAPPABILITY_STATS]
[-d MAX_SHIFT]
[-r MAX_READLEN]
#### Usage example
Calculate total length of doubly mappable region.
`wgEncodeCrgMapabilityAlign36mer_mappability.json` will be write.
$ pymasc -p 4 -r 50 -d 1000 -m wgEncodeCrgMapabilityAlign36mer.bigWig
#### Options
Almost same as `pymasc` command.
Note that actual max shift size is,
- 0 to `read_length` (if `max_shift` < `read_len` * 2)
- 0 to `max_shift` - `read_len` + 1 (if `max_shift` => `read_len` * 2)
### `pymasc-plot` command
pymasc-plot [-h]
[-v {DEBUG,INFO,WARNING,ERROR,CRITICAL}]
[--disable-progress]
[--color {TRUE,FALSE}]
[--version]
[--stats STATS]
[--cc CC]
[--masc MASC]
[--nreads NREADS]
[-s SIZES]
[-m MAPPABILITY_STATS]
[-i CHROM [CHROM ...]]
[-e CHROM [CHROM ...]]
[--chi2-pval CHI2_PVAL]
[-w SMOOTH_WINDOW]
[--mask-size MASK_SIZE]
[--bg-avr-width BG_AVR_WIDTH]
[-l LIBRARY_LENGTH]
[-n NAME]
[-o OUTDIR]
[-f [{all,stats,cc,mscc} [{all,stats,cc,mscc} ...]]]
[statfile]
#### Usage example
(Re)plot figures from `pymasc` outputs `output/ENCFF000VPI_*` with the specified
smoothing window size and library length.
Note that you need to specify a tab delimited file or a SAM/BAM format file to
obtain chromosome lengths, and/or, specify a mappability stats (JSON) file which
was generated for a mappability BigWig file by PyMaSC to obtain mappable region lengths.
$ pymasc-plot -w 50 -l 250 -s ENCFF000VPI.bam output/ENCFF000VPI
#### Input argument
Specify a prefix to `pymasc` output files. For example, set `output/ENCFF000VPI`
to plot figures from `output/ENCFF000VPI_stats.tab`, `output/ENCFF000VPI_nreads.tab`
and `output/ENCFF000VPI_cc.tab` (and/or `output/ENCFF000VPI_masc.tab`). `*_stats.tab`
and either or both of `*_cc.tab` and `*_mscc.tab` must be exist.
To specify these files individually, use `--stats`, `--nreads`, `--cc` and `--masc`
options.
Computation details
-------------------
### BitArray and successive implementation
PyMaSC provides two algorithms for calculation.
#### BitArray
BitArray approach is based on
allocated binary arrays with length of references and computation time mostly
depends on the size of reference genome and the maximum shift size. Typically
(hg19, chr1), PyMaSC consumes about 250MB RAM per worker.
#### Successive implementation
Successive implementation is based on buffer with length of maximum shift size
and calculate overwrapped bases successively while reading reads and mappable
regions. Computation time mostly depends on number of reads and tracks in input
files and BitArray implementation is faster in most cases.
Successive approach surpasses in processing small input data, quite low memory
efficiency and robustness for shift size.
References
----------
* Ramachandran, Parameswaran, et al. "MaSC: mappability-sensitive cross-correlation
for estimating mean fragment length of single-end short-read sequencing data."
Bioinformatics 29.4 (2013): 444-450.
Raw data
{
"_id": null,
"home_page": null,
"name": "PyMaSC",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "NGS, ChIP-Seq, bioinformatics, cross-correlation, mappability",
"author": null,
"author_email": "Hayato Anzawa <anzawa@tohoku.ac.jp>",
"download_url": "https://files.pythonhosted.org/packages/9a/42/f007c56b5fd4ced879b142f75f1269a255635f32addcf51f922351604807/pymasc-1.0.0.tar.gz",
"platform": null,
"description": "\n\nPyMaSC\n======\n\n[](https://badge.fury.io/py/PyMaSC)\n[](https://pypi.python.org/pypi/PyMaSC/)\n\n[](https://github.com/ronin-gw/PyMaSC/actions/workflows/build-check.yml)\n[](https://github.com/ronin-gw/PyMaSC/actions/workflows/test-prebuild.yml)\n[](https://github.com/ronin-gw/PyMaSC/actions/workflows/test.yml)\n[](https://github.com/ronin-gw/PyMaSC/actions/workflows/test-matrix.yml)\n[](https://github.com/ronin-gw/PyMaSC/actions/workflows/build-wheels.yml)\n\nPython implementation to calc mappability-sensitive cross-correlation\nfor fragment length estimation and quality control for ChIP-Seq.\n\nVisit [PyMaSC web site](https://pymasc.sb.ecei.tohoku.ac.jp/) for more information and to get human genome mappability tracks.\n\n* * *\n\nIntroduction\n------------\nTo estimate mean fragment length for single-ended sequencing data, cross-correlation\nbetween positive- and negative-strand reads is commonly used. One of the problems with\nthis approach is _phantom_ peak, which is the occasionally observed peak corresponding\nto the read length. In the ChIP-Seq guidelines by ENCODE consortia, cross-correlation\nat fragment length and read length are used for quality control metrics. Additionally,\nlibrary length itself is one of the important parameters for analysises. However,\nestimating correct flagment length is not a easy task because of _phantom_ peak occurrence.\nP Ramachandran _et al._ proposed __MaSC__, mappability-sensitive cross-correlation to\nremove the bias caused from ununiformity of mappability throughout the genome. This\nmethod provides cross-correlation landscape without _phantom_ peak and much accurate\nmean fragment length estimation.\n__PyMaSC__ is a tool implemented by python and cython to visualize (mappability-sensitive)\ncross-correlation and estimate ChIP-Seq quality metrics and mean fragment length with\nMaSC algorithm.\n\n\nInstall\n-------\nPython version 3.8 or higher is recommended (Python 3.8-3.13 officially supported).\nC compiler needs to build C sources (recommend GCC).\n\n### Install using pip\n1. `numpy`, `pysam>=0.23.2`, and `pyBigWig>=0.3.18` must be installed ___before___ installing PyMaSC\n\n $ pip install numpy \"pysam>=0.23.2\" \"pyBigWig>=0.3.18\"\n\n2. Install PyMaSC from PyPI\n\n $ pip install pymasc\n\n If cython is installed, PyMaSC will be built with Cython native compiled sources instead of pre-compiled C sources.\n\nUsage\n-----\nAfter installation, PyMaSC provides `pymasc`, `pymasc-precalc` and `pymasc-plot` command.\nNote that `pymasc-precalc` is not essential to calculate mappability-sensitive\ncross-correlation.\n\n### `pymasc` command\n\n pymasc [-h]\n [-v {DEBUG,INFO,WARNING,ERROR,CRITICAL}]\n [--disable-progress]\n [--color {TRUE,FALSE}]\n [--version]\n [-p PROCESS]\n [--successive]\n [--skip-ncc]\n [--skip-plots]\n [-r READ_LENGTH]\n [--estimation-type {MEAN,MEDIAN,MODE,MIN,MAX}]\n [-l LIBRARY_LENGTH]\n [-m REGION_FILE]\n [--mappability-stats MAPPABILITY_STATS]\n [-q MAPQ]\n [-i CHROM [CHROM ...]]\n [-e CHROM [CHROM ...]]\n [-d MAX_SHIFT]\n [--chi2-pval CHI2_PVAL]\n [-w SMOOTH_WINDOW]\n [--mask-size MASK_SIZE]\n [--bg-avr-width BG_AVR_WIDTH]\n [-n NAME [NAME ...]]\n [-o OUTDIR]\n reads [reads ...]\n\n\n#### Usage example\n\nCalculate only na\u00efve cross-correlation for `ENCFF000VPI.bam` with max shift size = 1000.\nOutput files are `ENCFF000VPI_stats.tab`, `ENCFF000VPI_nreads.tab`, `ENCFF000VPI_cc.tab`\nand `ENCFF000VPI.pdf`.\n\n $ pymasc -d 1000 ENCFF000VPI.bam\n\n\nCalculate both na\u00efve and mappability-sensitive cross-correlation by 4 worker processes.\nOutput `ENCFF000VPI_mscc.tab` Additionally.\n\n $ pymasc -p 4 -d 1000 -m wgEncodeCrgMapabilityAlign36mer.bigWig ENCFF000VPI.bam\n\n\n#### Main input file\nSAM and BAM file format are acceptable.\n* Input alignment file must be sorted.\n * Additionally, for parallel processing, input file must be BAM format and indexed.\n* If multiple files specified, PyMaSC processes each file with common parameters.\n* Unmapped or duplicated reads will be discarded.\n* If input file contains paired-end reads, the last (second) segment read will be discarded.\n\n\n#### Output files\n\n#### General options\n\n##### -v / --log-level {DEBUG,INFO,WARNING,ERROR,CRITICAL}\nSet logging message level. (Default: info)\n\n##### --disable-progress\nDisable progress bars.\nNote that progress bar will be disabled automatically if stderr is not connected to terminal.\n\n##### --color {TRUE,FALSE}\nSwitch coloring log output. (Default: auto; enable if stderr is connected to terminal)\n\n#### --version\nShow program's version number and exit\n\n\n#### Processing settings\n\n##### -p / --process [int]\nSet number of worker process. (Default: 1)\nFor indexed BAM file, PyMaSC parallel process each reference (chromosome).\n\n#### --successive\nCalc with successive algorithm instead of bitarray implementation (Default: false)\nBitarray implementation is recommended in most situation. See `Computation details`\nfor more information.\n\n##### --skip-ncc\nBoth `-m/--mappability` and `--skip-ncc` specified, PyMaSC skips calculate na\u00efve cross-correlation\nand calculates only mappability-sensitive cross-correlation. (Default: False)\n\n##### --skip-plots\nSkip output figures. (Default: False)\n\n\n#### Input alignment file settings\n\n##### -r / --read-length [int]\nSpecify read length explicitly. (Default: get representative by scanning)\nPyMaSC needs representative value of read length to plot figures and to calc\nmappability-sensitive cross-correlation. By default, PyMaSC scans input file\nread length to get representative read length. If read length is specified, PyMaSC\nskips this step.\nNote that this option must be specified to treat unseekable input (like stdin).\n\n##### --readlen-estimator {MEAN,MEDIAN,MODE,MIN,MAX}\nSpecify how to get representative value of read length. (Default: median)\n\n##### -l / --library-length\nSpecify expected fragment length. (Default: None)\nPyMaSC supplies additional NSC and RSC values calculated from this value.\n\n\n#### Input mappability file settings\n\n##### -m / --mappability [BigWig file]\nSpecify mappability (alignability, uniqueness) track to calculate mappability-sensitive\ncross-correlation.\nInput file must be BigWig format and each track's score should indicate mappability\nin [0, 1] (1 means uniquely mappable position).\nIf BigWig file is not supplied, PyMaSC will calculate only na\u00efve cross-correlation.\n\n##### --mappability-stats [json file]\nRead and save path to the json file which contains mappability region statistics.\n(Default: same place, same base name as the mappability BigWig file)\nIf there is no statistics file for specified BigWig file, PyMaSC calculate total\nlength of doubly mappable region for each shift size automatically and save them\nto reuse for next calculation and faster computing.\n`pymasc-precalc` performs this calculation for specified BigWig file (this is not\nnecessary, of course).\n\n\n#### Input file filtering arguments\n\n##### -q / --mapq [int]\nInput reads which mapping quality less than specified score will be discarded. (Default: 1)\nMAPQ >= 1 is recommended because MAPQ=0 contains multiple hit reads.\n\n##### -i / --include-chrom [pattern ...]\nSpecify chromosomes to calculate. Unix shell-style wildcards (`.`, `*`, `[]` and `[!]`)\nare acceptable. This option can be declared multiple times to re-include chromosomes\nspecified in a just before -e/--exclude-chrom option. Note that this option is case-sensitive.\n\n##### -e / --exclude-chrom [pattern ...]\nAs same as the -i/--include-chrom option, specify chromosomes to exclude from calculation.\nThis option can be declared multiple times to re-exclude chromosomes specified in\na just before -i/--include-chrom option.\n\n\n#### Analysis Parameters\n\n##### -d / --max-shift [int]\nPyMaSC calculate cross-correlation with shift size from 0 to this value. (Default: 1000)\n\n##### --chi2-pval [float]\nP-value threshold to check strand specificity. (Default: 0.05)\nPyMaSC performs chi-square test between number of reads mapped to positive- and negative-strand.\n\n##### -w / --smooth-window [int]\nBefore mean fragment length estimation, PyMaSC applies moving average filter to\nmappability-sensitive cross-correlation. This option specify filter's window size.\n(Default: 15)\n\n##### --mask-size [int]\nIf difference between a read length and the estimated library length is equal or\nless than the length specified by this option, PyMaSC masks correlation coefficients\nin the read length +/- specified length and try to estimate mean library length again.\n(Default: 5, Specify < 1 to disable)\n\n##### --bg-avr-width [int]\nTo obtain the minimum coefficients of cross-correlation, PyMaSC gets the median\nof the end of specified bases from calculated cross-correlation coefficients.\n(Default: 50bp)\n\n#### Output options\n\n##### -o / --outdir [path]\nSpecify output directory. (Default: current directory)\n\n##### -n / --name [NAME...]\nBy default, output files are written to `outdir/input_file_base_name`. This option\noverwrite output file base name.\n\n\n### `pymasc-precalc` command\n\n pymasc-precalc [-h]\n [-p PROCESS]\n [-v {DEBUG,INFO,WARNING,ERROR,CRITICAL}]\n [--disable-progress]\n [--color {TRUE,FALSE}]\n [--version]\n [-m REGION_FILE]\n [--mappability-stats MAPPABILITY_STATS]\n [-d MAX_SHIFT]\n [-r MAX_READLEN]\n\n#### Usage example\nCalculate total length of doubly mappable region.\n`wgEncodeCrgMapabilityAlign36mer_mappability.json` will be write.\n\n $ pymasc -p 4 -r 50 -d 1000 -m wgEncodeCrgMapabilityAlign36mer.bigWig\n\n#### Options\nAlmost same as `pymasc` command.\nNote that actual max shift size is,\n- 0 to `read_length` (if `max_shift` < `read_len` * 2)\n- 0 to `max_shift` - `read_len` + 1 (if `max_shift` => `read_len` * 2)\n\n\n### `pymasc-plot` command\n\n pymasc-plot [-h]\n [-v {DEBUG,INFO,WARNING,ERROR,CRITICAL}]\n [--disable-progress]\n [--color {TRUE,FALSE}]\n [--version]\n [--stats STATS]\n [--cc CC]\n [--masc MASC]\n [--nreads NREADS]\n [-s SIZES]\n [-m MAPPABILITY_STATS]\n [-i CHROM [CHROM ...]]\n [-e CHROM [CHROM ...]]\n [--chi2-pval CHI2_PVAL]\n [-w SMOOTH_WINDOW]\n [--mask-size MASK_SIZE]\n [--bg-avr-width BG_AVR_WIDTH]\n [-l LIBRARY_LENGTH]\n [-n NAME]\n [-o OUTDIR]\n [-f [{all,stats,cc,mscc} [{all,stats,cc,mscc} ...]]]\n [statfile]\n\n#### Usage example\n(Re)plot figures from `pymasc` outputs `output/ENCFF000VPI_*` with the specified\nsmoothing window size and library length.\nNote that you need to specify a tab delimited file or a SAM/BAM format file to\nobtain chromosome lengths, and/or, specify a mappability stats (JSON) file which\nwas generated for a mappability BigWig file by PyMaSC to obtain mappable region lengths.\n\n $ pymasc-plot -w 50 -l 250 -s ENCFF000VPI.bam output/ENCFF000VPI\n\n#### Input argument\nSpecify a prefix to `pymasc` output files. For example, set `output/ENCFF000VPI`\nto plot figures from `output/ENCFF000VPI_stats.tab`, `output/ENCFF000VPI_nreads.tab`\nand `output/ENCFF000VPI_cc.tab` (and/or `output/ENCFF000VPI_masc.tab`). `*_stats.tab`\nand either or both of `*_cc.tab` and `*_mscc.tab` must be exist.\nTo specify these files individually, use `--stats`, `--nreads`, `--cc` and `--masc`\noptions.\n\n\nComputation details\n-------------------\n\n### BitArray and successive implementation\nPyMaSC provides two algorithms for calculation.\n\n#### BitArray\nBitArray approach is based on\nallocated binary arrays with length of references and computation time mostly\ndepends on the size of reference genome and the maximum shift size. Typically\n(hg19, chr1), PyMaSC consumes about 250MB RAM per worker.\n\n#### Successive implementation\nSuccessive implementation is based on buffer with length of maximum shift size\nand calculate overwrapped bases successively while reading reads and mappable\nregions. Computation time mostly depends on number of reads and tracks in input\nfiles and BitArray implementation is faster in most cases.\nSuccessive approach surpasses in processing small input data, quite low memory\nefficiency and robustness for shift size.\n\n\nReferences\n----------\n* Ramachandran, Parameswaran, et al. \"MaSC: mappability-sensitive cross-correlation\n for estimating mean fragment length of single-end short-read sequencing data.\"\n Bioinformatics 29.4 (2013): 444-450.\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Python implementation to calc mappability-sensitive cross-correlation for fragment length estimation and quality control for ChIP-Seq.",
"version": "1.0.0",
"project_urls": {
"Bug Tracker": "https://github.com/ronin-gw/PyMaSC/issues",
"Documentation": "https://github.com/ronin-gw/PyMaSC",
"Homepage": "https://github.com/ronin-gw/PyMaSC",
"Repository": "https://github.com/ronin-gw/PyMaSC"
},
"split_keywords": [
"ngs",
" chip-seq",
" bioinformatics",
" cross-correlation",
" mappability"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "996fa9282e7d3a909a141c9e79f6e743e45180e0dd3025a416c751022a6664ad",
"md5": "c194c34ce63dcac0619ab168d299a6f1",
"sha256": "7f72e305d25bd402c004cd92017eae30e659a40dd0c4da6076a6b26f9742bd58"
},
"downloads": -1,
"filename": "pymasc-1.0.0-cp310-cp310-macosx_10_9_universal2.whl",
"has_sig": false,
"md5_digest": "c194c34ce63dcac0619ab168d299a6f1",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.8",
"size": 5521737,
"upload_time": "2025-08-15T15:19:00",
"upload_time_iso_8601": "2025-08-15T15:19:00.002795Z",
"url": "https://files.pythonhosted.org/packages/99/6f/a9282e7d3a909a141c9e79f6e743e45180e0dd3025a416c751022a6664ad/pymasc-1.0.0-cp310-cp310-macosx_10_9_universal2.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "bdcc634c6671e0adfef50241e255a03234b703a5c83ecc4d9c9dd382204a2d24",
"md5": "594251e8354d783437fc70c42f2c61eb",
"sha256": "2bbd19ac411afcd5f9468b2d6bc2ad0be8e6a09121f882f8e4872d3d94eb90cd"
},
"downloads": -1,
"filename": "pymasc-1.0.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
"has_sig": false,
"md5_digest": "594251e8354d783437fc70c42f2c61eb",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.8",
"size": 7003203,
"upload_time": "2025-08-15T15:19:03",
"upload_time_iso_8601": "2025-08-15T15:19:03.708486Z",
"url": "https://files.pythonhosted.org/packages/bd/cc/634c6671e0adfef50241e255a03234b703a5c83ecc4d9c9dd382204a2d24/pymasc-1.0.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "1c6676388b783e973d41b8a527ee80650a2e25ddd80b10f1cd53c5b5e0a98d22",
"md5": "6625fdf5284798315105ee6255c27b2f",
"sha256": "6bb8792c3ad1f5969e24fcde204838e886a5e91ce3a9e762fab1ae9a792a8a21"
},
"downloads": -1,
"filename": "pymasc-1.0.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl",
"has_sig": false,
"md5_digest": "6625fdf5284798315105ee6255c27b2f",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.8",
"size": 7015465,
"upload_time": "2025-08-15T15:19:06",
"upload_time_iso_8601": "2025-08-15T15:19:06.134188Z",
"url": "https://files.pythonhosted.org/packages/1c/66/76388b783e973d41b8a527ee80650a2e25ddd80b10f1cd53c5b5e0a98d22/pymasc-1.0.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "574b58d6c5a2ca6bc9b08da22999b0b87808a4e5ee41cefcd9ecee7bca9bac70",
"md5": "4003cb9bb3ca42f1f8dd54aa9c10a291",
"sha256": "4df9c20a080995020c8693185219002b207dad1b2f7762be3dccb81a8082696d"
},
"downloads": -1,
"filename": "pymasc-1.0.0-cp311-cp311-macosx_10_9_universal2.whl",
"has_sig": false,
"md5_digest": "4003cb9bb3ca42f1f8dd54aa9c10a291",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.8",
"size": 5530051,
"upload_time": "2025-08-15T15:19:08",
"upload_time_iso_8601": "2025-08-15T15:19:08.240188Z",
"url": "https://files.pythonhosted.org/packages/57/4b/58d6c5a2ca6bc9b08da22999b0b87808a4e5ee41cefcd9ecee7bca9bac70/pymasc-1.0.0-cp311-cp311-macosx_10_9_universal2.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "d32aa5f996b1ad7c95259e6f02e67ba58c8b65a3689fcb25385888a9809291f1",
"md5": "f3c203be3ca5d271a750ff4761ce23bd",
"sha256": "08952a688b29e6afb8716a25b069192c6a5b2be15ffcb72f91646c5f2adc8da8"
},
"downloads": -1,
"filename": "pymasc-1.0.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
"has_sig": false,
"md5_digest": "f3c203be3ca5d271a750ff4761ce23bd",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.8",
"size": 7152345,
"upload_time": "2025-08-15T15:19:10",
"upload_time_iso_8601": "2025-08-15T15:19:10.067818Z",
"url": "https://files.pythonhosted.org/packages/d3/2a/a5f996b1ad7c95259e6f02e67ba58c8b65a3689fcb25385888a9809291f1/pymasc-1.0.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "63d1dd4e854d1c5c12ccbc6ccd070570b94439dcb39ba53f978cebb892846447",
"md5": "0963eacfb5642f73852628569f4f1a82",
"sha256": "881e5051aa11fbd6576f692ba30a7160c192ee1cc4a9e83be9678670a3268a9d"
},
"downloads": -1,
"filename": "pymasc-1.0.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl",
"has_sig": false,
"md5_digest": "0963eacfb5642f73852628569f4f1a82",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.8",
"size": 7163231,
"upload_time": "2025-08-15T15:19:11",
"upload_time_iso_8601": "2025-08-15T15:19:11.642801Z",
"url": "https://files.pythonhosted.org/packages/63/d1/dd4e854d1c5c12ccbc6ccd070570b94439dcb39ba53f978cebb892846447/pymasc-1.0.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "886495547923b72b1aa0ccc40241194b9c6e2e48db560f2881c5d075411347bf",
"md5": "0eba759384b2d333c8e39aea2c54b3b6",
"sha256": "a20ceafc2b561f6fede5f5a7a44afb0558378c2d370d383d144abfe136b689b0"
},
"downloads": -1,
"filename": "pymasc-1.0.0-cp312-cp312-macosx_10_13_universal2.whl",
"has_sig": false,
"md5_digest": "0eba759384b2d333c8e39aea2c54b3b6",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.8",
"size": 5528955,
"upload_time": "2025-08-15T15:19:13",
"upload_time_iso_8601": "2025-08-15T15:19:13.467233Z",
"url": "https://files.pythonhosted.org/packages/88/64/95547923b72b1aa0ccc40241194b9c6e2e48db560f2881c5d075411347bf/pymasc-1.0.0-cp312-cp312-macosx_10_13_universal2.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "f8e2aa2b2bebd3be6d00ee000ec68e5417dc6594f90ef9485debfea991e06b1f",
"md5": "4d47490e974113968a30d7a3650c92f3",
"sha256": "72c693dce3bb80c8cfc8f64bce360cbfe2344fbdc7e820bea62f03c184be4168"
},
"downloads": -1,
"filename": "pymasc-1.0.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
"has_sig": false,
"md5_digest": "4d47490e974113968a30d7a3650c92f3",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.8",
"size": 7123723,
"upload_time": "2025-08-15T15:19:15",
"upload_time_iso_8601": "2025-08-15T15:19:15.381382Z",
"url": "https://files.pythonhosted.org/packages/f8/e2/aa2b2bebd3be6d00ee000ec68e5417dc6594f90ef9485debfea991e06b1f/pymasc-1.0.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "fb47b4e97c949aee4ca0c7632c35e743a5cf0d95ad78c566daf79d7b301f6507",
"md5": "f31a7bd63991d5af1c103174207da8ae",
"sha256": "5e669e312be1f1e712f0f96d0d2116e5c6ab17d3587229190a09f18090990ea3"
},
"downloads": -1,
"filename": "pymasc-1.0.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl",
"has_sig": false,
"md5_digest": "f31a7bd63991d5af1c103174207da8ae",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.8",
"size": 7167524,
"upload_time": "2025-08-15T15:19:17",
"upload_time_iso_8601": "2025-08-15T15:19:17.314214Z",
"url": "https://files.pythonhosted.org/packages/fb/47/b4e97c949aee4ca0c7632c35e743a5cf0d95ad78c566daf79d7b301f6507/pymasc-1.0.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "6bfc458a6acd672290099d20ef8f4857acae7d8209ab1fe8262c0a1e90dc31d8",
"md5": "742bc2b11f99ffcecd4ddbe5f82256fc",
"sha256": "ab6970afccdef4c7156c03b316219791ddd3a003a65008ccb55c8ed0c2f2c99b"
},
"downloads": -1,
"filename": "pymasc-1.0.0-cp313-cp313-macosx_10_13_universal2.whl",
"has_sig": false,
"md5_digest": "742bc2b11f99ffcecd4ddbe5f82256fc",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.8",
"size": 5515065,
"upload_time": "2025-08-15T15:19:19",
"upload_time_iso_8601": "2025-08-15T15:19:19.217976Z",
"url": "https://files.pythonhosted.org/packages/6b/fc/458a6acd672290099d20ef8f4857acae7d8209ab1fe8262c0a1e90dc31d8/pymasc-1.0.0-cp313-cp313-macosx_10_13_universal2.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "a5f24ec15660adb1543e9eeb8cda33789f0900454a316cbbb05707f78db2c151",
"md5": "d6636b39dda566e5f9c76503f3e6b955",
"sha256": "4b18545f052b18953ce97b61349373a6a4322049d89c1fb47fc0b5c88e79ba21"
},
"downloads": -1,
"filename": "pymasc-1.0.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
"has_sig": false,
"md5_digest": "d6636b39dda566e5f9c76503f3e6b955",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.8",
"size": 7085921,
"upload_time": "2025-08-15T15:19:20",
"upload_time_iso_8601": "2025-08-15T15:19:20.942003Z",
"url": "https://files.pythonhosted.org/packages/a5/f2/4ec15660adb1543e9eeb8cda33789f0900454a316cbbb05707f78db2c151/pymasc-1.0.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "1cab496f6bad23d2012e6de5423afc14fa02f84f7d36e8554d3d4d2545c4d16b",
"md5": "19d076ecd6cc202e7c755109e09f0a4e",
"sha256": "28899656329a6245419cbd8b5497bf458280152d71406cf3bbf94d1d8af966a0"
},
"downloads": -1,
"filename": "pymasc-1.0.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl",
"has_sig": false,
"md5_digest": "19d076ecd6cc202e7c755109e09f0a4e",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.8",
"size": 7127694,
"upload_time": "2025-08-15T15:19:22",
"upload_time_iso_8601": "2025-08-15T15:19:22.797130Z",
"url": "https://files.pythonhosted.org/packages/1c/ab/496f6bad23d2012e6de5423afc14fa02f84f7d36e8554d3d4d2545c4d16b/pymasc-1.0.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "4b71d28e3e60de60f834a42dc6664d42a4813014e65c589e94e9ef9fb04fa035",
"md5": "2cdc5f010021b22406f93ce22e57735a",
"sha256": "6b6a34712874873d69cef50146a5cdcfbb730eddbd20af943507a1b4d9bdf01a"
},
"downloads": -1,
"filename": "pymasc-1.0.0-cp38-cp38-macosx_10_9_universal2.whl",
"has_sig": false,
"md5_digest": "2cdc5f010021b22406f93ce22e57735a",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": ">=3.8",
"size": 5564717,
"upload_time": "2025-08-15T15:19:24",
"upload_time_iso_8601": "2025-08-15T15:19:24.574067Z",
"url": "https://files.pythonhosted.org/packages/4b/71/d28e3e60de60f834a42dc6664d42a4813014e65c589e94e9ef9fb04fa035/pymasc-1.0.0-cp38-cp38-macosx_10_9_universal2.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "f2b483c36dfb1f3b9dc6f33e6568960330f0327cfeff97722f72479a457bd8d3",
"md5": "f4344a51215a94d86223c6bb9fcb682c",
"sha256": "0ff76b8924bb6f05c43e5d5fda99edfee78d041e6b4665c9f8fe3e19f8fbeb39"
},
"downloads": -1,
"filename": "pymasc-1.0.0-cp38-cp38-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
"has_sig": false,
"md5_digest": "f4344a51215a94d86223c6bb9fcb682c",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": ">=3.8",
"size": 7089893,
"upload_time": "2025-08-15T15:19:26",
"upload_time_iso_8601": "2025-08-15T15:19:26.055985Z",
"url": "https://files.pythonhosted.org/packages/f2/b4/83c36dfb1f3b9dc6f33e6568960330f0327cfeff97722f72479a457bd8d3/pymasc-1.0.0-cp38-cp38-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "684fe315e1f0d3f3f8f2141357328ec777433c345e6cdb5e3c3e0f99ccf52b1a",
"md5": "7cfd50c765cfc5f90db15129f1302858",
"sha256": "3c6c65f51ebba2e6465fecb0cd439a021a0efa10dde3357651238abd198c921b"
},
"downloads": -1,
"filename": "pymasc-1.0.0-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl",
"has_sig": false,
"md5_digest": "7cfd50c765cfc5f90db15129f1302858",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": ">=3.8",
"size": 7099113,
"upload_time": "2025-08-15T15:19:29",
"upload_time_iso_8601": "2025-08-15T15:19:29.437483Z",
"url": "https://files.pythonhosted.org/packages/68/4f/e315e1f0d3f3f8f2141357328ec777433c345e6cdb5e3c3e0f99ccf52b1a/pymasc-1.0.0-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "175b8ee83710d905786699266ffbb643328c64b754c5a6270b90aa25faf51458",
"md5": "292b3405d535c55138c4dd028c2ba53a",
"sha256": "15fe0863713f4a467d418e139a15a607887de6eafde49e1cd8b0ff22441fdcac"
},
"downloads": -1,
"filename": "pymasc-1.0.0-cp39-cp39-macosx_10_9_universal2.whl",
"has_sig": false,
"md5_digest": "292b3405d535c55138c4dd028c2ba53a",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.8",
"size": 5528884,
"upload_time": "2025-08-15T15:19:31",
"upload_time_iso_8601": "2025-08-15T15:19:31.373445Z",
"url": "https://files.pythonhosted.org/packages/17/5b/8ee83710d905786699266ffbb643328c64b754c5a6270b90aa25faf51458/pymasc-1.0.0-cp39-cp39-macosx_10_9_universal2.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "0588bb571ba50d378fba31db7a20d53cbe9cd08467efdd26c020b80a898db12c",
"md5": "2ac76859ac4f3948d40bf0bb93a458f4",
"sha256": "d48ba2289418157791975e65563607446766d96e338d3f34b55b6bcc6561d383"
},
"downloads": -1,
"filename": "pymasc-1.0.0-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
"has_sig": false,
"md5_digest": "2ac76859ac4f3948d40bf0bb93a458f4",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.8",
"size": 6999157,
"upload_time": "2025-08-15T15:19:33",
"upload_time_iso_8601": "2025-08-15T15:19:33.465599Z",
"url": "https://files.pythonhosted.org/packages/05/88/bb571ba50d378fba31db7a20d53cbe9cd08467efdd26c020b80a898db12c/pymasc-1.0.0-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "b7930ac6a430bd96f31270715cec7d1c2e1ad5e298c06b8b357d0228f4d73327",
"md5": "0e4583c737fae14c579212c415a7850b",
"sha256": "4ebcf5e3c5807b9e690dba55f145f6752b0bbeb546b23595e4da3c96118f83a1"
},
"downloads": -1,
"filename": "pymasc-1.0.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl",
"has_sig": false,
"md5_digest": "0e4583c737fae14c579212c415a7850b",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.8",
"size": 7013793,
"upload_time": "2025-08-15T15:19:35",
"upload_time_iso_8601": "2025-08-15T15:19:35.355049Z",
"url": "https://files.pythonhosted.org/packages/b7/93/0ac6a430bd96f31270715cec7d1c2e1ad5e298c06b8b357d0228f4d73327/pymasc-1.0.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "9a42f007c56b5fd4ced879b142f75f1269a255635f32addcf51f922351604807",
"md5": "d4e4cd080a5c916eb03ef0c278f554fe",
"sha256": "5d1a275b2beb570ba6a1cc9de585316f53189b48013b4868e1617d454955da00"
},
"downloads": -1,
"filename": "pymasc-1.0.0.tar.gz",
"has_sig": false,
"md5_digest": "d4e4cd080a5c916eb03ef0c278f554fe",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 4610186,
"upload_time": "2025-08-15T15:19:36",
"upload_time_iso_8601": "2025-08-15T15:19:36.926615Z",
"url": "https://files.pythonhosted.org/packages/9a/42/f007c56b5fd4ced879b142f75f1269a255635f32addcf51f922351604807/pymasc-1.0.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-15 15:19:36",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "ronin-gw",
"github_project": "PyMaSC",
"travis_ci": true,
"coveralls": false,
"github_actions": true,
"lcname": "pymasc"
}