Skip to main content

Library and command line scripts for inferring identity-by-descent (IBD) segments shared between siblings, imputing missing parental genotypes, performing family based genome-wide association and polygenic score analyses.

Project description

snipar

snipar logo

Python Versions License: MIT CI Documentation Guide Tutorial Exercise Publication follow on Twitter PyPI Downloads

snipar (single nucleotide imputation of parents) provides a command line toolbox for family-based analyses in genetics:

  • family-GWAS: Perform family-GWAS (FGWAS) with a variety of estimators. snipar can perform family-GWAS using genetic differences between siblings, parent-offspring trios, and increase power through using imputed parental genotypes, which enables inclusion and optimal use of samples with only one parent genotyped and without genotyped parents or siblings. See Simulation Exercise: family-GWAS without imputed parental genotypes and Simulation Exercise: family-GWAS with imputed parental genotypes. The regressions are performed in an efficient linear mixed model that accounts for correlations between siblings and more distant relatives.
  • family-PGS analyses: Compute and analyze polygenic scores (PGS) for a set of individuals along with their siblings and parents, using both observed and imputed parental genotypes. snipar can estimate the direct effect (within-family) of a polygenic score: see Simulation Exercise: Polygenic score analyses. It can adjust for the impact of assortative mating on estimates of indirect genetic effects (effects of alleles in parents on offspring mediated through the environment) from family-based PGS analysis: see Simulation Exercise: Polygenic score analyses.
  • Imputation of missing parental genotypes: For samples with at least one genotyped sibling and/or parent, but without both parents' genotypes available, snipar can impute missing parental genotypes according to Mendelian laws (Mendelian Imputation) and use these to increase power for family-GWAS and PGS analyses. See Tutorial: imputing-missing-parental-genotypes
  • Identity-by-descent (IBD) segments shared by siblings: snipar implements a hidden markov model (HMM) to accurately infer identity-by-descent segments shared between siblings. The output of this is needed for imputation of missing parental genotypes from siblings. See Tutorial: inferring IBD between siblings
  • Multi-generational forward simulation with indirect genetic effects and assortative mating: snipar includes a simulation module that performs forward simulation of multiple generations undergoing random and/or assortative mating. The phenotype on which assortment occurs can include indirect genetic effects from parents. Users can input phased haplotypes for the starting generation or artificial haplotypes can be simulated. Output includes a multigenerational pedigree with phenotype values, direct and indirect genetic component values, and plink formatted genotypes for the final two generations along with imputed parental genotypes. See Simulation Exercise
  • Estimate correlations between effects: Family-GWAS summary statistics include genome-wide estimates of direct genetic effects (DGEs) — the within-family estimate of the effect of the allele — population effects — as estimated by standard GWAS — and non-transmitted coefficients (NTCs), the coefficients on parents' genotypes. The correlate.py scipt enables efficient estimation of genome-wide correlations between these different classes of effects accounting for sampling errors. See Tutorial: correlations between effects

snipar flowchart

The above illustrates an end-to-end workflow for performing family-GWAS in snipar, an example of which is given in the Tutorial. Not all steps are necessary for all analyses. For example, family-GWAS (and PGS analyses) can be performed without imputed parental genotypes, requiring only input genotypes in .bed or .bgen format along with pedigree information. Also: imputation for parent-offspring pairs can proceed without IBD inference.

Publications

Please cite at least one of these publications if you use snipar in your work!

The methodologies implemented in snipar are described in the following publications:

Young2022
Mendelian imputation of parental genotypes improves estimates of direct genetic effects.
Alexander Strudwick Young, SM Nehzati, ..., Augustine Kong.
Describes the method for imputation of missing parental genotypes and family-based GWAS with imputed parental genotypes.
🔗 Full Text

Young2023
Estimation of indirect genetic effects and heritability under assortative mating.
Alexander Strudwick Young.
Describes family-PGS analysis with adjustment for the impact of assortative mating on estimates of indirect genetic effects.
🔗 Full Text

Tan2024
Family-GWAS reveals effects of environment and mating on genetic associations. .
Tammy Tan, H Jayashankar, J Guan, SM Nehzati, M Mir, M Bennett, E Agerbo, ..., Alexander Strudwick Young.
Shows snipar applied to generate family-GWAS summary statistics from 17 different cohorts that are meta-analyzed. Describes the methodology for estimating genome-wide correlations between the different classes of effects estimated by family-GWAS.
🔗 Full Text

Guan2025
Family-based genome-wide association study designs for increased power and robustness.
Describes additional family-GWAS designs: the unified estimator, which increases power for estimating direct genetic effects in homogeneous samples (typical for GWAS) by including all samples through linear imputation; and the robust estimator, which maximizes power in strongly structured or admixed samples without introducing bias. The linear mixed model used in snipar family-GWAS and PGS analyses is described here.
Junming Guan, T Tan, SM Nehzati, M Bennett, P Turley, DJ Benjamin, Alexander Strudwick Young.
🔗 Full Text

Documentation

Documentation: https://snipar.rtfd.io/

It is recommended to read the guide: https://snipar.rtfd.io/en/latest/guide.html

And to work through the tutorial (https://snipar.readthedocs.io/en/latest/tutorial.html) and simulation exercise (https://snipar.readthedocs.io/en/latest/simulation.html).

Installing Using pip

snipar currently supports Python 3.7-3.9 on Linux, Windows, and Mac OSX (14.7 and higher). We recommend using a python distribution such as Anaconda 3 (https://store.continuum.io/cshop/anaconda/).

The easiest way to install is using pip:

pip install snipar

Sometimes this may not work because the pip in the system is outdated. You can upgrade your pip using:

  pip install --upgrade pip

Note: installing snipar requires the package bed_reader, which in turn requires Rust. If an error occurs at "Collecting bed-reader ...", please try downloading Rust following the instruction here: https://rust-lang.github.io/rustup/installation/other.html.

Virtual Environment

You may encounter problems with the installation due to Python version incompatability or package conflicts with your existing Python environment. To overcome this, you can try installing in a virtual environment. In a bash shell, this could be done either via the venv Python package or via conda.

To create the venv, use the following commands in your directory of choice: python -m venv path-to-where-you-want-the-virtual-environment-to-be

You can activate and use the environment using

  source path-to-where-you-want-the-virtual-environment-to-be/bin/activate

Alternatively, we recommend using conda:

conda create -n myenv python=3.9
conda activate myenv

Installing From Source

To install from source, clone the git repository, and in the directory containing the snipar source code, at the shell type:

pip install .

Note: installing snipar requires the package bed_reader, which in turn requires Rust. If an error occurs at "Collecting bed-reader ...", please try downloading Rust following the instruction here: https://rust-lang.github.io/rustup/installation/other.html.

Python version incompatibility

snipar does not currently support Python 3.10 or higher due to version incompatibilities of dependencies. To overcome this, see Virtual Environment above.

Apple ARM processor machines

There can be difficulties install snipar on Apple ARM processor machines due to lack of available versions of scientific computing software made for these processors' architectures. A workaround for this is to use Snipar in a docker container.

The following steps will guide you on how to create a suitable container for your M1/M2 MacBook and seamlessly integrate it into a VSCode environment. These steps assume you have little knowledge about Docker, so we will start from scratch.

1. Installing Docker Engine

Ensure that Docker Engine is installed on your machine. If it's already installed, you can skip this step. Otherwise, you can install it by following the instructions provided at the following link:

Install Docker Engine on a MacBook

2. Creating the Docker Container

To install the Snipar package, you need to create a Docker container that emulates a virtual Ubuntu machine where Snipar can be installed.

To create the appropriate Docker container, follow these steps:

  • Start the Docker engine. Just open the Docker application from your Applications folder.

  • While the engine is running, open your terminal and execute the following command to create a container named "snipar_container" (you can choose a different name if you prefer):

    docker run --name snipar_container -it amd64/python:3.9.9-slim-buster /bin/bash
    

After running this command, you should see the "snipar_container" listed in the Docker GUI under the "Containers" tab.

  • You can close the terminal at this point.

3. Running the Container

To use the environment of the created container within VSCode or other IDEs, ensure that the container is running. You can do this easily through the Docker GUI:

  • Open the Docker GUI.
  • In the "Containers" section of the dashboard, locate "snipar_container" (or the name you chose for your container).
  • Click the play button to start the container.

Once the container is running, you can access its terminal and files through the Docker GUI. Keep in mind that the files within the container are isolated from your macOS files. You won't be able to access them using Finder, but you can manage them through the Docker GUI, including uploading and downloading.

4. Attaching the Container to VSCode

If you prefer a smoother development experience with VSCode, follow these steps to attach the container to VSCode:

  • Install the "Dev Containers" extension by visiting the following link in the VS Marketplace:

    Dev Containers Extension

  • Once installed, a new icon will appear on the left sidebar of VSCode labeled " Remote Explorer."

  • Click on "Remote Explorer" and, under the "Dev Containers" section, locate " snipar_container."

  • Next to the container name, you'll find a button that says "Attach in a new window." Click on this button, and VSCode will open a new window attached to the container.

In the newly attached VSCode window, the terminal will be connected to the container, similar to the "Exec" tab in the Docker GUI. You can also open folders from the container environment (not your Mac itself) using the "Open Folder" button in VSCode. This makes it more convenient to manage files while writing code, and you can run your modules using the terminal directly within VSCode.

5. Installing snipar Package in the Container

Up to this point, you've set up the environment for snipar but haven't installed it in the container. To install snipar, follow these steps:

  • Open the terminal in the VSCode window attached to "snipar_container" (or use the "Exec" tab in the Docker GUI).
  • After cloning the git repository and cding into the directory, run the following command:
    pip install .
    

Running tests

To check that the code is working properly and that the C modules have been compiled, you can run the tests using this command:

python -m unittest snipar.tests

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

snipar-0.0.23-cp39-cp39-win_amd64.whl (53.7 MB view details)

Uploaded CPython 3.9Windows x86-64

snipar-0.0.23-cp39-cp39-win32.whl (53.7 MB view details)

Uploaded CPython 3.9Windows x86

snipar-0.0.23-cp39-cp39-musllinux_1_2_x86_64.whl (56.8 MB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ x86-64

snipar-0.0.23-cp39-cp39-musllinux_1_2_i686.whl (56.8 MB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ i686

snipar-0.0.23-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (55.4 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

snipar-0.0.23-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl (55.3 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ i686

snipar-0.0.23-cp38-cp38-win_amd64.whl (53.7 MB view details)

Uploaded CPython 3.8Windows x86-64

snipar-0.0.23-cp38-cp38-win32.whl (53.7 MB view details)

Uploaded CPython 3.8Windows x86

snipar-0.0.23-cp38-cp38-musllinux_1_2_x86_64.whl (56.8 MB view details)

Uploaded CPython 3.8musllinux: musl 1.2+ x86-64

snipar-0.0.23-cp38-cp38-musllinux_1_2_i686.whl (56.8 MB view details)

Uploaded CPython 3.8musllinux: musl 1.2+ i686

snipar-0.0.23-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (55.4 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

snipar-0.0.23-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl (55.3 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ i686

snipar-0.0.23-cp37-cp37m-win_amd64.whl (53.7 MB view details)

Uploaded CPython 3.7mWindows x86-64

snipar-0.0.23-cp37-cp37m-win32.whl (53.7 MB view details)

Uploaded CPython 3.7mWindows x86

snipar-0.0.23-cp37-cp37m-musllinux_1_2_x86_64.whl (56.6 MB view details)

Uploaded CPython 3.7mmusllinux: musl 1.2+ x86-64

snipar-0.0.23-cp37-cp37m-musllinux_1_2_i686.whl (56.7 MB view details)

Uploaded CPython 3.7mmusllinux: musl 1.2+ i686

snipar-0.0.23-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (55.2 MB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ x86-64

snipar-0.0.23-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl (55.2 MB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ i686

File details

Details for the file snipar-0.0.23-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: snipar-0.0.23-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 53.7 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.13

File hashes

Hashes for snipar-0.0.23-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 0fcf7f1c6cc15609d9bc1b5b705e4da8d3f214abf3138298a8d901195d82be26
MD5 20556d1ca0cc0cc9a34ef6316280107d
BLAKE2b-256 b95c9072a09c2351e52f38d268f5406ed3a25081fa12553d3c4cb9300fb5d294

See more details on using hashes here.

File details

Details for the file snipar-0.0.23-cp39-cp39-win32.whl.

File metadata

  • Download URL: snipar-0.0.23-cp39-cp39-win32.whl
  • Upload date:
  • Size: 53.7 MB
  • Tags: CPython 3.9, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.13

File hashes

Hashes for snipar-0.0.23-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 011281d3b2fdaf513a9892417d2c25a6d3e1d5caddb1c361a6f5435ad0c0da87
MD5 0dee3035e6168144ee021a48b0bb8a0d
BLAKE2b-256 8c83a5c0ca602b01057c2380d1d3f14c5292d8d8cf1542f9af339b13022a1711

See more details on using hashes here.

File details

Details for the file snipar-0.0.23-cp39-cp39-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for snipar-0.0.23-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 6c7cf6e90e92eb5187d57ad12dfd6222a903387fe1d42d0bd59c43750a1cb65e
MD5 735316db983df061fe23589a5479f730
BLAKE2b-256 fd4d888768cedbf510a8813e97511435bf5b805e77a4e70ceea5696385034918

See more details on using hashes here.

File details

Details for the file snipar-0.0.23-cp39-cp39-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for snipar-0.0.23-cp39-cp39-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 8576b53107496290f1c0f74985d80a23acfd24670f8ef763f81ef69d42a5fcf0
MD5 1702eb7de028c4106bd6775b21f3bb3a
BLAKE2b-256 061ae518af5e33d2d3ef02dc036040d7844027b1d5f6c7809ffdeec8f244f189

See more details on using hashes here.

File details

Details for the file snipar-0.0.23-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for snipar-0.0.23-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a397c58493149bf21352bd81a9c9ba9f1f5fe9c7aee2eccc4d8d10241ba53add
MD5 27b2f2eb0178358cd8ade9d766d7a654
BLAKE2b-256 006659146397de62739f7d4b607b10f41270da5950f0afe002deb3e1c30244f1

See more details on using hashes here.

File details

Details for the file snipar-0.0.23-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for snipar-0.0.23-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 267191d9ec4c750a7371162636119f4414589973e89d4f81a63c8c589021188f
MD5 572f36982c1b8d2228e07639dbaf4626
BLAKE2b-256 e83a26119f198c51687b4c0adbd9d5bd8a5d465feefb6129d53ffc79acb4b345

See more details on using hashes here.

File details

Details for the file snipar-0.0.23-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: snipar-0.0.23-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 53.7 MB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.13

File hashes

Hashes for snipar-0.0.23-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 7b3c693fd85e34b8e1dd8ba39ff2abc177976cc1e0cb0c2e440ae9250b6675b3
MD5 1133d877f210aa2a6a717ce6648482c9
BLAKE2b-256 98d7a77caca03183d5b7f778db0e319efd14d9df8a6bf1a602b8d0fb2b113b73

See more details on using hashes here.

File details

Details for the file snipar-0.0.23-cp38-cp38-win32.whl.

File metadata

  • Download URL: snipar-0.0.23-cp38-cp38-win32.whl
  • Upload date:
  • Size: 53.7 MB
  • Tags: CPython 3.8, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.13

File hashes

Hashes for snipar-0.0.23-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 e36e67014a372af39b9272ba82030fd4a8c309490d839d6c3f9e91d154e6bf21
MD5 4cba6150aab90e0413126db27e58a7a6
BLAKE2b-256 a5c7e743816c3911bc6a1a796a5158a68134032a57d13e23d4f55eeaa7a5b77d

See more details on using hashes here.

File details

Details for the file snipar-0.0.23-cp38-cp38-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for snipar-0.0.23-cp38-cp38-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 4b91dc2d516f54d9b6813772346cbf21f1a6d3c3a527a472736881ec63263330
MD5 93c002d9068f02c5a203f221fd43de18
BLAKE2b-256 1dd8881ce58aa5cf7936b70815e33e44b911957f9ab46ced78436e2640648fdf

See more details on using hashes here.

File details

Details for the file snipar-0.0.23-cp38-cp38-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for snipar-0.0.23-cp38-cp38-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 5144f0a4b7b997d66a00503a06db89ce356ff2c171219c09bfb0aa87fa436cbb
MD5 d1e06f9a5c13e3a257635c3f8aed1439
BLAKE2b-256 a6ec2cc416cd7da34168a652ce317ab629816dd54ff705192a2f59670c5e1f87

See more details on using hashes here.

File details

Details for the file snipar-0.0.23-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for snipar-0.0.23-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d1a542b91f7283f7d11427f0b91512ab670da0939285d45324f588c87c905098
MD5 c1ff848164fe4cef764f961c7ce86059
BLAKE2b-256 a2b9c6d0a377c96686193b2ec53ae183a797e792bebd778e42b988b8ca8d7260

See more details on using hashes here.

File details

Details for the file snipar-0.0.23-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for snipar-0.0.23-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 f0f85e181142f50a9a92b8aa35c47a8a6c2aae9325781ef98d841740a239fb47
MD5 14a82659d15df1bfb18bc6c725ad8682
BLAKE2b-256 34a875c507366bb074611855d0ba834ca03f58458858c6b050c74faf7b0bc0c6

See more details on using hashes here.

File details

Details for the file snipar-0.0.23-cp37-cp37m-win_amd64.whl.

File metadata

  • Download URL: snipar-0.0.23-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 53.7 MB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.13

File hashes

Hashes for snipar-0.0.23-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 79d0c418355a4744440d6a7411414f9c13b6535e23829470ab0ec8c455c5d2c3
MD5 fc2560f3ce49a40a6db66c30eb490d3b
BLAKE2b-256 19b26314ecc3289833414f1412b0f21388d885d653256e3cc8a257ebc793c8f9

See more details on using hashes here.

File details

Details for the file snipar-0.0.23-cp37-cp37m-win32.whl.

File metadata

  • Download URL: snipar-0.0.23-cp37-cp37m-win32.whl
  • Upload date:
  • Size: 53.7 MB
  • Tags: CPython 3.7m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.13

File hashes

Hashes for snipar-0.0.23-cp37-cp37m-win32.whl
Algorithm Hash digest
SHA256 6cddfbdf5d578f77f0d43210c5b6e988cd51b69258644b9e00195327bc51afa1
MD5 fd8d943dcd3d78fd0be14e74f4e1a0c0
BLAKE2b-256 46f9bc78348aeaabfe96aba41b3d2bd5771163970e2249aa9b87e0a62ac1c649

See more details on using hashes here.

File details

Details for the file snipar-0.0.23-cp37-cp37m-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for snipar-0.0.23-cp37-cp37m-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 decc67a551ed8a9059473655f0e8f8fa971338e4a4728b76ef83fe0f327705df
MD5 e791f0902cb50090631b0d1970501c0d
BLAKE2b-256 93f4a4bce7a0dcb34e3df782740499fb239924402860a8b68dabb997bef6cb55

See more details on using hashes here.

File details

Details for the file snipar-0.0.23-cp37-cp37m-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for snipar-0.0.23-cp37-cp37m-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 37bb523df990ef20a0db1ce932de8d27c0b130acae7875eee2fbe4c38dd5b9d5
MD5 65296dbd29d11895b7f3e5043d303f4c
BLAKE2b-256 96145d5d497f5bfce371de3139ded5f5f234258bcb8ee2314cb83a333f9225e6

See more details on using hashes here.

File details

Details for the file snipar-0.0.23-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for snipar-0.0.23-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b48aef203c2ce4b0cdedec0e3128a85713d5e32f9dd9427d72537094e2e9aad0
MD5 3c992106ce1857b4fb33aaafd8e127e4
BLAKE2b-256 6e432add32e98ee8969dd89a4cc694f08e243e82c2cc70f3b99959c1f73ca85b

See more details on using hashes here.

File details

Details for the file snipar-0.0.23-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for snipar-0.0.23-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 885d90610f83678abff8294325b3e2082d49bebe695030a5d71e624535da8bcc
MD5 21cb6ce96f2facc302b87696c02ea337
BLAKE2b-256 ddd5d732656fa19fb6518c82dc20b3a94fd87656e739d4ab334627dd52899486

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