Skip to main content

Rust-accelerated population genetics toolkit with ergonomic Python bindings

Project description

Ferromic

PyPI Build Status License

Ferromic is a Rust-accelerated population genetics toolkit built for haplotype-aware studies on large variant cohorts. It offers batteries-included CLI workflows alongside polished Python bindings so the same core algorithms can be reused in notebooks and scripted pipelines.

Highlights

  • Purpose built for haplotype-aware studies. Separates per-haplotype diversity metrics, supports inversion-aware sample groupings, and ships with Hudson and Weir & Cockerham FST estimators.
  • Designed for big cohorts. Rayon-powered multithreading, streaming VCF readers, progress bars, and resumable temporary directories keep terabyte-scale runs responsive.
  • Rich output surface. Generates region summaries, per-base FASTA-style tracks, PCA tables, PHYLIP files, and optional Hudson TSV exports ready for downstream notebooks.
  • First-class Python ergonomics. A PyO3-powered module exposes the same core statistics to Python, NumPy, and pandas workflows without sacrificing performance.
  • Memory-aware dense matrices. Detects ploidy, compresses genotypes into dense representations, and caches population summaries to accelerate repeated scans.
  • Operationally friendly. Ships with helper scripts, resumable temporary workspaces, and informative logging so long-running analyses can be monitored and resumed with confidence.

Quick start

Rust command-line pipeline

  1. Prepare inputs

    • Place bgzipped or plain-text VCFs for each chromosome in a directory.
    • Supply a reference FASTA and matching GTF/GFF annotation.
    • Describe regions of interest in a TSV file (see Regional configuration file).
    • (Optional) Prepare mask or allow BEDs and an FST population map if you plan to enable --fst.
  2. Invoke the main driver

    cargo run --release --bin run_vcf -- \
        --vcf_folder ./vcfs \
        --reference ./reference/hg38.no_alt.fa \
        --gtf ./reference/hg38.knownGene.gtf \
        --config_file ./regions.tsv \
        --mask_file ./hardmask.bed \
        --pca --fst
    

    The command streams each region, honours mask/allow lists, writes a CSV summary, and (with --pca or --fst) emits additional PCA and FST artefacts.

  3. Review results

    • output.csv captures haplotype-specific diversity statistics.
    • per_site_diversity_output.falsta and per_site_fst_output.falsta contain base-wise tracks for plotting or heatmaps.
    • Optional PCA and Hudson tables land next to the main CSV.

Python API

Install the wheel with pip install ferromic, then compute diversity statistics in-memory:

import numpy as np
import ferromic as fm

genotypes = np.array([
    [[0, 0], [0, 1], [1, 1]],
    [[0, 1], [0, 0], [1, 1]],
], dtype=np.uint8)

population = fm.Population.from_numpy(
    "demo",
    genotypes=genotypes,
    positions=[101, 202],
    haplotypes=[(0, 0), (0, 1), (1, 0), (1, 1), (2, 0), (2, 1)],
    sequence_length=1000,
    sample_names=["sampleA", "sampleB", "sampleC"],
)

print("Segregating sites:", population.segregating_sites())
print("Nucleotide diversity:", population.nucleotide_diversity())

pca = fm.chromosome_pca(
    variants=[
        {"position": 101, "genotypes": [[0, 0], [0, 1], [1, 1]]},
        {"position": 202, "genotypes": [[0, 1], [0, 0], [1, 1]]},
    ],
    sample_names=["sampleA", "sampleB", "sampleC"],
)

print("PCA components shape:", pca.coordinates.shape)

The Python surface mirrors the Rust crate: Hudson-style populations, per-site diversity iterators, PCA utilities, and sequence-length helpers are available under the top-level ferromic namespace. The bindings favour "plain" Python collections—variants can be dictionaries, dataclasses, or any object exposing position and genotypes, while haplotypes accept tuples such as (sample_index, "L") or (sample_index, 1). All heavy lifting happens in Rust, so interactive workflows retain native performance, and return values are rich Python objects with cached attributes (for example, FstEstimate.value, FstEstimate.sum_a, FstEstimate.sum_b, and FstEstimate.sites).

High-level API surface

Object Description
ferromic.Population Container with cached diversity metrics for a haplotype group; backs Hudson-style comparisons and exposes from_numpy(id, genotypes, positions, haplotypes, sequence_length, sample_names) for ergonomic construction.
ferromic.segregating_sites(variants) Count polymorphic sites for a cohort or region.
ferromic.nucleotide_diversity(variants, haplotypes, sequence_length) Compute π with optional BED-style masks.
ferromic.watterson_theta(segregating_sites, sample_count, sequence_length) Closed-form θ estimator mirroring the CLI output.
ferromic.per_site_diversity(variants, haplotypes, region=None) Iterator over per-position π/θ values that underpins per_site_diversity_output.falsta.
ferromic.wc_fst(...) Weir & Cockerham FST results returned as a WcFstResult object containing pairwise matrices and per-site components.
ferromic.hudson_fst(pop1, pop2) / hudson_dxy Hudson-style FST and Dxy between arbitrary Population objects, returned as structured HudsonFstResult instances.
ferromic.chromosome_pca(...) family Memory-aware PCA helpers that stream per-chromosome loadings using Faer-backed SVD, matching the CLI --pca artefacts.
Utility helpers Functions such as adjusted_sequence_length and inversion_allele_frequency mirror CLI adjustments for masked bases and inversion calls.

Consult src/pytests for end-to-end regression suites that exercise PCA, Hudson, and Weir & Cockerham pipelines directly from Python.

Installation

Use the prebuilt binaries

Download the latest release assets or run the helper script:

curl -fsSL https://raw.githubusercontent.com/SauersML/ferromic/main/install.sh | bash

The script pulls platform-appropriate tarballs for ferromic, vcf_stats, and vcf_merge, expands them in-place, marks them executable, and prints --help summaries for each tool.

Build from source

  1. Install Rust nightly (Ferromic targets edition 2024 features):

    rustup toolchain install nightly
    rustup override set nightly
    
  2. Clone and build the project:

    git clone https://github.com/SauersML/ferromic.git
    cd ferromic
    cargo build --release
    

    The compiled binaries live under target/release/.

    Use cargo run --bin run_vcf -- --help to confirm the toolchain is set up correctly.

Environment variable RAMDISK_PATH can be set to redirect temporary directories to a specific high-speed volume (defaults to /dev/shm).

Install the Python wheel

pip install ferromic

To develop against the local checkout use maturin:

python -m pip install "maturin[patchelf]"
maturin develop --release

Set PYO3_PYTHON or pass --python to target a specific interpreter.

When the wheel is installed via pip, the Rust extensions are compiled in release mode by default. During development the maturin develop workflow above produces editable installs that stay in sync with local code changes.

Input requirements

  • VCF folder (--vcf_folder) – one file per chromosome (plain or gzipped). Header validation enforces matching sample layouts across files.
  • Reference FASTA (--reference) – used to reconstruct PHYLIP sequences and to mask non-callable positions.
  • GTF/GFF (--gtf) – provides CDS definitions; overlapping transcripts trigger PHYLIP exports for both haplotype groups.
  • Region definition – either a single --region (chr:start-end) or a multi-region TSV via --config_file.

Regional configuration file

Tab-delimited TSV with a header containing seven metadata columns (which must be present even if blank) followed immediately by one column per haplotype sample:

Column Description
seqnames Chromosome identifier (with or without chr).
start 1-based inclusive start coordinate for the region window.
end 1-based inclusive end coordinate for the region window.
POS Representative variant used for provenance.
orig_ID Region identifier carried into outputs.
verdict Manual or automated verdict flag.
categ Category label for stratified summaries.
sample… One column per sample containing phased genotypes such as `0

Values to the left/right of the | assign each haplotype to group 0 or 1. Suffixes like _lowconf persist in unfiltered counts but are removed from filtered analyses.

Coordinate conventions

Ferromic consumes several genomics formats and keeps their native coordinate systems:

  • Input VCFs use 1-based inclusive coordinates as defined in the VCF specification.
  • Input BED masks/allow lists are 0-based half-open intervals.
  • Config TSV entries expect 1-based inclusive coordinates for start/end/POS fields.
  • GTF/GFF annotations are interpreted as 1-based inclusive when extracting CDS spans.
  • Outputs use 1-based inclusive coordinates for CSV/TSV reports, and PHYLIP filenames encode start/end in the same 1-based inclusive system (for example, start100_end200).

Optional masks and group definitions

  • Mask BED (--mask_file) – 0-based half-open intervals to exclude.
  • Allow BED (--allow_file) – 0-based half-open intervals to whitelist.
  • FST populations (--fst_populations) – CSV where each row names a population followed by sample identifiers for Weir & Cockerham contrasts.

Running analyses with run_vcf

CLI options

Flag Required Description
--vcf_folder <path> Directory containing chromosome VCFs.
--reference <path> Reference genome FASTA.
--gtf <path> Gene annotation GTF/GFF.
--chr <id> Restrict processing to a single chromosome.
--region <start-end> Analyse one region instead of a TSV batch.
--config_file <file> TSV of regions/haplotypes (see above).
--output_file <file> Override the default output.csv.
--min_gq <int> Genotype quality threshold (default 30).
--mask_file <bed> Exclude intervals from all statistics.
--allow_file <bed> Only consider variants inside these intervals.
--pca Emit chromosome-level PCA TSVs for filtered haplotypes.
--pca_components <int> Number of principal components (default 10).
--pca_output <file> Combined PCA summary filename (default pca_results.tsv).
--fst Enable Hudson and Weir & Cockerham FST outputs.
--fst_populations <file> Optional CSV describing named populations for FST.

Example end-to-end run

run_vcf \
  --vcf_folder ./vcfs \
  --reference ./reference/hg38.no_alt.fa \
  --gtf ./reference/hg38.knownGene.gtf \
  --config_file ./regions.tsv \
  --mask_file ./hardmask.bed \
  --allow_file ./accessibility.bed \
  --output_file diversity_summary.csv \
  --min_gq 35 \
  --pca \
  --fst

On startup Ferromic prints a status box summarising version, CPU threads, and timestamps, then streams variants chromosome-by-chromosome. Temporary FASTA slices and PHYLIP files are staged in a RAM-backed directory when available.

Principal components and FST outputs

  • PCApca_per_chr_outputs/chr_<id>.tsv hold per-chromosome coordinates with haplotype labels; pca_results.tsv aggregates global PCA computed via SVD using the Faer linear algebra backend for high-performance CPU execution.
  • Weir & Cockerham – CSV columns prefixed with haplotype_ cover overall FST, between/within population variance, and informative site counts.
  • Hudson – Summary columns hudson_fst_hap_group_0v1, hudson_dxy_hap_group_0v1, and per-group π values are produced, with an optional hudson_fst_results.tsv.gz listing every pairwise comparison.

Output artefacts

  • Summary tables:
    • output.csv – per-region statistics: raw/adjusted sequence lengths, segregating site counts, Watterson’s θ, nucleotide diversity π, inversion allele frequencies, and haplotype counts for both filtered and unfiltered tracks.
    • phy_metadata.tsv – index of generated PHYLIP files linking transcript IDs, gene names, genomic coordinates, and spliced CDS lengths to the corresponding alignment paths.
  • Track files (.falsta):
    • per_site_diversity_output.falsta – per-base arrays for π and Watterson’s θ stored as FASTA-like tracks (headers such as >per_site_diversity_pi).
    • per_site_fst_output.falsta – per-base Weir & Cockerham and Hudson components with headers like >hudson_pairwise_fst_hap_0v1_num and >wc_weighted_fst_denominator to ease parsing and genome-browser visualisation.
  • Alignments:
    • *.phy.gz – PHYLIP-formatted CDS alignments for every transcript overlapping a region, phased by haplotype group (group_{0|1}_{transcript_id}_chr_<chr>_start_<start>_end_<end>_combined.phy).
    • Optional hudson_fst_results.tsv.gz when --fst is active, listing Hudson components per comparison for the same 1-based inclusive coordinates.

Additional binaries

Binary Purpose
ferromic High-throughput VCF concatenator (distinct from the library) with chromosome-aware ordering, async writers, and Rayon chunking controls.
vcf_merge Memory-aware VCF merge utility with optional RAM ceilings, mmap-assisted buffering, and per-chromosome progress readouts.
run_vcf Primary Ferromic CLI that streams regions, emits diversity/FST summaries, PCA tables, per-base FASTA tracks, and PHYLIP CDS exports.

The concatenation and merge utilities (ferromic, vcf_merge) share --input <dir> and --output <file> flags and are optimised for large cohorts through Rayon parallelism and Tokio-based async writers. The analysis driver run_vcf exposes the richer CLI documented in Running analyses with run_vcf.

Project layout and helper scripts

  • src/ – Rust crate providing parsing, progress reporting, statistics, transcript handling, and CLI entry points.
  • scripts/ – Python utilities for downstream tasks (e.g., deduplication, dN/dS calculations, PHYLIP conversions).
  • stats/ – Exploratory analysis notebooks and plotting scripts for diversity, FST, PCA, and inversion studies.
  • data/ – Example metadata including callset.tsv, significant phenotypes, inv_properties.tsv (the current inversion metadata filename; legacy inv_info.tsv is no longer used), and support files for tutorials.
  • phewas/ – PheWAS modelling pipeline with helper modules and automation scripts.

Development

  1. Format and lint Rust code with cargo fmt --all and cargo clippy --all-targets.

  2. Run the test suite:

    cargo test
    
  3. Validate the Python bindings (optional):

    maturin develop --release
    pytest -q
    

Benchmarks such as cargo bench --bench pca quantify PCA throughput. Contributions are welcome via pull requests; please include reproducible commands and a short description of data requirements.

License

Ferromic is released under the MIT License. See LICENSE.md for details.

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

ferromic-0.1.4.tar.gz (15.3 MB view details)

Uploaded Source

Built Distributions

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

ferromic-0.1.4-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl (1.6 MB view details)

Uploaded PyPymusllinux: musl 1.2+ x86-64

ferromic-0.1.4-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl (1.2 MB view details)

Uploaded PyPymusllinux: musl 1.2+ ARM64

ferromic-0.1.4-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

ferromic-0.1.4-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl (1.6 MB view details)

Uploaded PyPymusllinux: musl 1.2+ x86-64

ferromic-0.1.4-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl (1.2 MB view details)

Uploaded PyPymusllinux: musl 1.2+ ARM64

ferromic-0.1.4-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl (1.6 MB view details)

Uploaded PyPymusllinux: musl 1.2+ x86-64

ferromic-0.1.4-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl (1.2 MB view details)

Uploaded PyPymusllinux: musl 1.2+ ARM64

ferromic-0.1.4-cp314-cp314-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.14Windows x86-64

ferromic-0.1.4-cp314-cp314-musllinux_1_2_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

ferromic-0.1.4-cp314-cp314-musllinux_1_2_aarch64.whl (1.2 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ ARM64

ferromic-0.1.4-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

ferromic-0.1.4-cp314-cp314-macosx_11_0_arm64.whl (897.2 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

ferromic-0.1.4-cp313-cp313-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.13Windows x86-64

ferromic-0.1.4-cp313-cp313-musllinux_1_2_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

ferromic-0.1.4-cp313-cp313-musllinux_1_2_aarch64.whl (1.2 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

ferromic-0.1.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

ferromic-0.1.4-cp313-cp313-macosx_11_0_arm64.whl (897.2 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

ferromic-0.1.4-cp313-cp313-macosx_10_12_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

ferromic-0.1.4-cp312-cp312-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.12Windows x86-64

ferromic-0.1.4-cp312-cp312-musllinux_1_2_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

ferromic-0.1.4-cp312-cp312-musllinux_1_2_aarch64.whl (1.2 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

ferromic-0.1.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

ferromic-0.1.4-cp312-cp312-macosx_11_0_arm64.whl (897.2 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

ferromic-0.1.4-cp312-cp312-macosx_10_12_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

ferromic-0.1.4-cp311-cp311-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.11Windows x86-64

ferromic-0.1.4-cp311-cp311-musllinux_1_2_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

ferromic-0.1.4-cp311-cp311-musllinux_1_2_aarch64.whl (1.2 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

ferromic-0.1.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

ferromic-0.1.4-cp311-cp311-macosx_11_0_arm64.whl (897.2 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

ferromic-0.1.4-cp311-cp311-macosx_10_12_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

ferromic-0.1.4-cp310-cp310-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.10Windows x86-64

ferromic-0.1.4-cp310-cp310-musllinux_1_2_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

ferromic-0.1.4-cp310-cp310-musllinux_1_2_aarch64.whl (1.2 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

ferromic-0.1.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

ferromic-0.1.4-cp39-cp39-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.9Windows x86-64

ferromic-0.1.4-cp39-cp39-musllinux_1_2_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ x86-64

ferromic-0.1.4-cp39-cp39-musllinux_1_2_aarch64.whl (1.2 MB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ ARM64

ferromic-0.1.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

File details

Details for the file ferromic-0.1.4.tar.gz.

File metadata

  • Download URL: ferromic-0.1.4.tar.gz
  • Upload date:
  • Size: 15.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.10.2

File hashes

Hashes for ferromic-0.1.4.tar.gz
Algorithm Hash digest
SHA256 fe568a6540ff799fedf0c93946ea4c12dfa85addac69ec14c46a2266194dd4ca
MD5 5242be5be4f2d0a1386af7e0fbb5abad
BLAKE2b-256 6058f541e56c42e7a396fc1d448cfab8419ef08036b235a8ac5f3fb7e8f06578

See more details on using hashes here.

File details

Details for the file ferromic-0.1.4-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for ferromic-0.1.4-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 f19b3d3559c4d784233037e9402519184bacfe2368a27081a2846836b92617d5
MD5 3b13dd929f6f780f1a9b8334c5070010
BLAKE2b-256 9ee7c6cae7fcc8fa133e756310f02e64a3f5adc0735996c53e2e1fc39552fcda

See more details on using hashes here.

File details

Details for the file ferromic-0.1.4-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for ferromic-0.1.4-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 aff24ff042be365e88c69de3ef20098fe11c5d6f19cf9f1c0d7e47929616b798
MD5 f2313fb7cec26d2761e8498680bff054
BLAKE2b-256 30e7d86710f7668c32319585f1441fa49c9e6cb60f56a8bda7fd747151f4bb05

See more details on using hashes here.

File details

Details for the file ferromic-0.1.4-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for ferromic-0.1.4-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c375f7828a9a30cf11ab3cee586772e40167b2e2ee44152b75e10fe8b756b34d
MD5 97598c5fb8f7d354cbe06627a82ed498
BLAKE2b-256 b9ea3774df859955b0d15a157a320eff08559f39233b4782492ffc5e0cbf16b4

See more details on using hashes here.

File details

Details for the file ferromic-0.1.4-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for ferromic-0.1.4-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 b4b1b08b082a137760e4d54274dc01b1070c843156172e35130b03565aac8abe
MD5 177909289c5af159e63112db3c8f6991
BLAKE2b-256 9c18955a79588b15c59df091d9cda29c3b8cc136a4821fd4af539a32ba15178f

See more details on using hashes here.

File details

Details for the file ferromic-0.1.4-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for ferromic-0.1.4-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 8608dd9ff55f28767f4d6d0d0eec1408193b10d211bdcab318824efb91032bf2
MD5 1c7c8ecfb3e82b53bae7c806a9c103eb
BLAKE2b-256 0ff3a14e78e666803fbc72174d90ccf4283cd4e1a62f6a65cfe6980681db77b8

See more details on using hashes here.

File details

Details for the file ferromic-0.1.4-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for ferromic-0.1.4-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 a878e3c78b990ad111ffc08c6eed5c25244ac8a7b8ca5a220846a48d17135d88
MD5 fe26287ed9729834eeefe1a7fbf9b050
BLAKE2b-256 ad16b9c4ec42f4177a75d0512c53629d8cdabe010a0466027d5298693fc17e94

See more details on using hashes here.

File details

Details for the file ferromic-0.1.4-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for ferromic-0.1.4-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 1d7f509791f5ab5547f9a92551e56ddb465cbe6062c9a3350c3d4ad53c485b99
MD5 5a8c62f4ad7161d75b2739058a6cf891
BLAKE2b-256 d517b5343e065679206c81aeb6ce8576af3a165e5943a55089e8e0200b82c602

See more details on using hashes here.

File details

Details for the file ferromic-0.1.4-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for ferromic-0.1.4-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 fd4209668e81f5162bc1db3835538c7d688761155fac9be49c5d664fa7608f63
MD5 cd46bd4b915f16220d63deb08ef3ef98
BLAKE2b-256 0cd920cb1415be9c7ea42a9cfb50bf24d5533f5370e443e27925038e2727ad88

See more details on using hashes here.

File details

Details for the file ferromic-0.1.4-cp314-cp314-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for ferromic-0.1.4-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 ea0a93cc90f006cc4648dd31c7a584c9d3069394de8ce965abfe104b6d113bad
MD5 556f75bda9d7f3914226ea4ae6457245
BLAKE2b-256 f053d3ddcf93985e0594769e1fab717c5af3c3659cd3647d68bdfe155607b2e1

See more details on using hashes here.

File details

Details for the file ferromic-0.1.4-cp314-cp314-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for ferromic-0.1.4-cp314-cp314-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 b0eb21534ab38aa405c13822aa3f0c467fc8dc636584208a03bb7f3b73bfdd33
MD5 04b2da18ff8fa61f37e0b3c86cc11bb2
BLAKE2b-256 3ddebb9c7933784b0bcea8ebd132e5366ddf8f68d48177ebc9bcfcf00b81cddb

See more details on using hashes here.

File details

Details for the file ferromic-0.1.4-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for ferromic-0.1.4-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c61b5088fe34d39002f5408439a608784e3f261a3bae64ba3248c982aff9eed9
MD5 4463bd33df33971740084d27b1178211
BLAKE2b-256 6beb4423036900f99ad461bdf4f67c01aa378304bfa9f5768a2137863248eb65

See more details on using hashes here.

File details

Details for the file ferromic-0.1.4-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for ferromic-0.1.4-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b513a9fe9ddb689fbbd729428e36259d7fce80a635b1c6d1357777b990d05525
MD5 dc27554666275a60220348ebebf0e9c5
BLAKE2b-256 add94eac89307270d5e40451e6546cdb05136ff68b2ebaf6c318ce76624afefe

See more details on using hashes here.

File details

Details for the file ferromic-0.1.4-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for ferromic-0.1.4-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 7352bb7357e7fb1f46843fa71d50863a9d245039a519536b402044e063cbea41
MD5 0602d2fae0b4abba8e9d4f38a89f9ce8
BLAKE2b-256 ad3ed982ec53daacd30301ff8edf3d947844567ec7bafbfb9fce1dfacaa6af6e

See more details on using hashes here.

File details

Details for the file ferromic-0.1.4-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for ferromic-0.1.4-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d027e0e53da2e03071a56aa66d594ae3c85d0834f8b477016d045a6e5ab3f663
MD5 9dd44bd83fd6ac9858a3199a676b90da
BLAKE2b-256 c98053ee49a7a9e9cbd3315f86ba47c094437a9071a93e920832b3d0ddccf337

See more details on using hashes here.

File details

Details for the file ferromic-0.1.4-cp313-cp313-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for ferromic-0.1.4-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 08ad4ec1b6afd076e5db3600c3c271a0f777756411c50b48934e0eb12758554b
MD5 254b0939e67911a3a42068180b1c51d8
BLAKE2b-256 42c5e9ca18495aa11f1e5e9d2edb48aee77de22c9aa96d7bf44e0103442192af

See more details on using hashes here.

File details

Details for the file ferromic-0.1.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for ferromic-0.1.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 024c4297b350702dd9afdb7994771d2a395af79a4b17a15e80aeaee6fb49af2d
MD5 9ee68c481cac23985b9c53e24bb6d057
BLAKE2b-256 c1155048db9af509a8d1f9c914399c65ac5a3dc5f018892cbd289d8e6d825261

See more details on using hashes here.

File details

Details for the file ferromic-0.1.4-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for ferromic-0.1.4-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6a5fc55ef82fd830dee3f33a968a10c5fbf8eb0bef7e166cd079816ffed6f9c2
MD5 acdcf9457215c117f00745f6e3470f78
BLAKE2b-256 ffa7d1ab312f3611a9da25dfaa893c374892a61b010f62eb6baf9841bb58a3b3

See more details on using hashes here.

File details

Details for the file ferromic-0.1.4-cp313-cp313-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for ferromic-0.1.4-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 c328276980677f2927d3e820a8c68e67a096d177956f3c2b83b7f8e315817ffa
MD5 924de25a6ec4d7d883c683db867e2160
BLAKE2b-256 50db9eb0819f5486e7dc9fae78da9540a721ae6c93a8d774b052ce6651b84ec8

See more details on using hashes here.

File details

Details for the file ferromic-0.1.4-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for ferromic-0.1.4-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 92d8a7329f7a791527dcad37fbed001daea8781cf25b665b785faca53a588880
MD5 0c47732a432203f00e081756a198ce34
BLAKE2b-256 82719878f264032c6b9d0722acee06863b06d476eaf348b45990637503920d76

See more details on using hashes here.

File details

Details for the file ferromic-0.1.4-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for ferromic-0.1.4-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 2c0335eede04fe316cd239cb96bf1280eb98161751d0c1dbeb379b6e8e02cf24
MD5 10d6e70118020c80f74f47ac54dcf65a
BLAKE2b-256 2b2449aa33d95962019c9a7bfa382d1d5c2bd3cc953e882c760276302a97cafb

See more details on using hashes here.

File details

Details for the file ferromic-0.1.4-cp312-cp312-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for ferromic-0.1.4-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 9e49720e3eb2767b786fd091b8a26497b74b084c61d2b5f7bd0f7a9e8a920e46
MD5 6c0c635841d75a697132c3963e2f14b2
BLAKE2b-256 a09578497214ad8cacbe21bb1a8a3768d3386c598198fae0cfafcbb6283b83a0

See more details on using hashes here.

File details

Details for the file ferromic-0.1.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for ferromic-0.1.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2a922b980bf12054c931d9bffee26cc40b65682379b323451b3f31fae538551a
MD5 6712bc0ae47354a83bc61560dc61c1e3
BLAKE2b-256 71e08db9811f3bb86f9eb60e6221a8f9af12fec96fd602a1f54585c9eedff83f

See more details on using hashes here.

File details

Details for the file ferromic-0.1.4-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for ferromic-0.1.4-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7e9339fca226703674c086be84584d19f838602f42fed48cb8a3dbe3203b51bb
MD5 624e5004b0110bcce46334d5878f7c42
BLAKE2b-256 e74a06ee48154ac20aa11ca231a43c5934771afee978c4def7530cc0a3e3f7ec

See more details on using hashes here.

File details

Details for the file ferromic-0.1.4-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for ferromic-0.1.4-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 75d9d6eb73935efb9ae47ada10e68b3d36baf8a1668b5a0137d6c39c21cec7f2
MD5 e52733dcd5cc929c29e6f2c707400c44
BLAKE2b-256 a75ce7788971856306fcbbd792650986c260ed0220c423e1c4281ea8630823c1

See more details on using hashes here.

File details

Details for the file ferromic-0.1.4-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for ferromic-0.1.4-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 0041d2d573db76133ef9e16c68bbd36f41cbc2e905116cbf0ab6d2c5ff43f1d9
MD5 775a95262894a28ecfdc9b7bb988bda7
BLAKE2b-256 a27cac60eef834ba75a2917c053cb9ed601f5b437b7d3b7e4dfc83160586baad

See more details on using hashes here.

File details

Details for the file ferromic-0.1.4-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for ferromic-0.1.4-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e032d7b8b0dadb6701dda390f54bc3e5847515c34d8986607a4f371fab533223
MD5 f84cb7d0a24219219369c31ab071c441
BLAKE2b-256 3f00e28bcbe2660d225b52a163747e90ac5e7295df535e90e5fdcea42a902ff5

See more details on using hashes here.

File details

Details for the file ferromic-0.1.4-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for ferromic-0.1.4-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 ee036827713c959c370951162ba2cc9671aa8c0af273941be02d07ff1e4fea59
MD5 8b33a6c5a70847a4a14d35ab7efdc958
BLAKE2b-256 58e62123b81fb655a5f3bc10fe8a24affd17364f438e55a11ff0d38bc7383924

See more details on using hashes here.

File details

Details for the file ferromic-0.1.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for ferromic-0.1.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4e55258c7e30720d6728e062169f54caf3db89d4a33507c984cf6fec0c2a801c
MD5 fc231b4d188c285f3529181874dbf5cd
BLAKE2b-256 ef5e4280cf05e74add7a191e64b5ca6598a56abafe341dea5518c6c969a0d8a4

See more details on using hashes here.

File details

Details for the file ferromic-0.1.4-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for ferromic-0.1.4-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8806a946f7f7e63f54d336004c28378560b85dc5b8261e5df0abcde87dd49278
MD5 75404d97fc54078e26f5f3f9a2b514ef
BLAKE2b-256 2ae39b9ca81224e8d545faa3ed28671dadfc2442535cd2dbfbf4a1ddfcbc63a4

See more details on using hashes here.

File details

Details for the file ferromic-0.1.4-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for ferromic-0.1.4-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 d6ae46c8e1402bd4df2486909a78cc08a42f23bdb50ccae63fce3cf4a67da573
MD5 21b4f1de4a845256bdaee55635b17022
BLAKE2b-256 2df0e7d28629e27de3f4ecc150c339da0133abf6721dbb9e2003ae226fd14a51

See more details on using hashes here.

File details

Details for the file ferromic-0.1.4-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for ferromic-0.1.4-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 8b2d9f956a727c27d9aaa8cf1d0553ed388c61ff7da3a6023a6ba1583930142b
MD5 2cd1da9ae30d7f7bf88e4d67e063952a
BLAKE2b-256 a43767876a8a69f295d30fedf9bf3ebd18aeebcb0c744f55801caae070587a73

See more details on using hashes here.

File details

Details for the file ferromic-0.1.4-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for ferromic-0.1.4-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 c24563ef19b3d93eb3cd0c32192c452890d99497a757d36062f0ca8bdba179e0
MD5 7eb0dcd26b848e251c59457137bd304d
BLAKE2b-256 3a507bf63e3d5c77052bf1459d1c6a9ee2b2632ac6c6c67786515120b53f88e6

See more details on using hashes here.

File details

Details for the file ferromic-0.1.4-cp310-cp310-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for ferromic-0.1.4-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 97ea4a7fd6be1b8ff9fe207071517915125b9f9e049a40c7aa8bc41a9858f3bb
MD5 da1a4ae38543f828e41060667ce74ece
BLAKE2b-256 a8792621bf88c47c7ef4de6d13ccd3a3f5f1c82fca792b8506611f0561ad7d3d

See more details on using hashes here.

File details

Details for the file ferromic-0.1.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for ferromic-0.1.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9e53a17fa7dd29c75c178d197b0905bbe007ad2df3c172644a6cc6280f5b153a
MD5 cfe512445fd9913d8c077882bf0c8cb3
BLAKE2b-256 981da1ca52b2ef95256cc83b0f0321041457b7660bdca3b60d3ff8e86f6796f3

See more details on using hashes here.

File details

Details for the file ferromic-0.1.4-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: ferromic-0.1.4-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 1.2 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.10.2

File hashes

Hashes for ferromic-0.1.4-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 33d7a2091e5d8dc2d1d4b6841f952034fea09219251384e99f71327de9101361
MD5 c36b8d40490f0f14c1fc7e1c11fbbd22
BLAKE2b-256 ef71dd81e96e8ee61e7968b6043d99d044700da042655324eada76c7060471b8

See more details on using hashes here.

File details

Details for the file ferromic-0.1.4-cp39-cp39-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for ferromic-0.1.4-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 8dca213527929e30848a6551d3d59a8fa6eb0e4dd632d095854209dd4c359605
MD5 c9e9324a92120bb1ca678977996cb353
BLAKE2b-256 6201e6ac27bef770898390cf994d32d2708ca9189309b6f2c5decb4b746a27c6

See more details on using hashes here.

File details

Details for the file ferromic-0.1.4-cp39-cp39-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for ferromic-0.1.4-cp39-cp39-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 7b63ff72520d10d37d1fb94463b0e7851c56093cf689e121ca212877bd0b8a3e
MD5 32b343fdf28a5469ee2d7abc7c24e351
BLAKE2b-256 7c56462700008de85194665432cf485d005f3919fe298d3cb3b1378d0ecd7b6c

See more details on using hashes here.

File details

Details for the file ferromic-0.1.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for ferromic-0.1.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 821c69b2fa55da6c1da67b0af0593d15ce738f0f95b32fe9d35f04547cc9b507
MD5 cf89cc4701ee8af86d35eb8b935da806
BLAKE2b-256 40eb4f2e000e6391c9d2034bd3059e0cc3ebd7c4c27337a9b0cce59932d240ed

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