Skip to main content

diploSHIC

Project description

diploS/HIC

This repo contains the implementation for diploS/HIC as described in Kern and Schrider (2018; https://doi.org/10.1534/g3.118.200262), along with its associated support scripts. diploS/HIC uses a deep convolutional neural network to identify hard and soft selective sweep in population genomic data.

The workflow for analysis using diploS/HIC consists of four basic parts. 1) Generation of a training set for diploS/HIC using simulation. 2) diploS/HIC training and performance evaluation. 3) Calculation of dipoS/HIC feature vectors from genomic data. 4) prediction on empirical data using the trained network. The software provided here can handle the last three parts; population genetic simulations must be performed using separate software such as discoal (https://github.com/kern-lab/discoal)

Installation

diploS/HIC has a number of dependencies that should be straightforward to install using python package managers such as conda or pip. The complete list of dependencies looks like this:

  • numpy
  • scipy
  • pandas
  • scikit-allel
  • scikit-learn
  • tensorflow
  • keras

Install on linux

I'm going to focus on the steps involved to install on a linux machine using Anaconda as our python source / main package manager. Assuming you have conda installed, create a new conda env

$ conda create -n diploshic python=3.9 --yes

Note that because I'm using the Anaconda version of python, pip will only install this in the anaconda directory which is a good thing. Now we are ready to install diploS/HIC itself. We recommend using the binarys that we have packaged using pip. Simply type

pip install diploshic

or if you prefer you can clone and build the repo yourself

$ git clone https://github.com/kern-lab/diploSHIC.git
$ cd diploSHIC 
$ pip install .

This should automatically install all the dependencies including tensorflow. You will need to determine if you want to use a CPU-only implementation (probably) or a GPU implementation of tensorflow. See https://www.tensorflow.org/install/install_linux for install instructions.

Usage

The main program that you will interface with is diploSHIC. This script is installed by default in the conda environment bin directory. This script has four run modes that allow the user to perform each of the main steps in the supervised machine learning process. We will briefly lay out the modes of use and then will provide a complete example of how to use the program for fun and profit.

diploSHIC uses the argparse module in python to try to give the user a complete, command line based help menu. We can see the top level of this help by typing

$ diploSHIC -h
usage: diploSHIC [-h] {train,predict,fvecSim,fvecVcf} ...

calculate feature vectors, train, or predict with diploSHIC

possible modes (enter \'diploSHIC modeName -h\' for modeName\'s help message:
  {fvecSim,makeTrainingSets,train,fvecVcf,predict}
                        sub-command help
    fvecSim             Generate feature vectors from simulated data
    makeTrainingSets    Combine feature vectors from muliple fvecSim runs into
                        5 balanced training sets
    train               train and test a shic CNN
    fvecVcf             Generate feature vectors from data in a VCF file
    predict             perform prediction using an already-trained SHIC CNN

optional arguments:
  -h, --help            show this help message and exit

before running diploSHIC: simulating training/testing data

All flavors of S/HIC require simulated data for training (and ideally, testing). Users can select whatever simulator they prefer and parameterize them however they wish. We have included an example script in this respository (generateSimLaunchScript.py) which demonstrates how a training set can be simulated with discoal (available at https://github.com/kern-lab/discoal).

feature vector generation modes

The first task in our pipeline is generating feature vectors from simulation data (or empirical data) to use with the CNN that we will train and then use for prediction. The diploSHIC script eases this process with two run modes

fvecSim mode

The fvecSim run mode is used for turning ms-style output into feature vectors compatible with diploSHIC. The help message from this mode looks like this

$ diploSHIC fvecSim -h
usage: diploSHIC fvecSim [-h] [--totalPhysLen TOTALPHYSLEN]
                            [--numSubWins NUMSUBWINS]
                            [--maskFileName MASKFILENAME]
                            [--chrArmsForMasking CHRARMSFORMASKING]
                            [--unmaskedFracCutoff UNMASKEDFRACCUTOFF]
                            [--outStatsDir OUTSTATSDIR]
                            [--ancFileName ANCFILENAME] [--pMisPol PMISPOL]
                            shicMode msOutFile fvecFileName

required arguments:
  shicMode              specifies whether to use original haploid SHIC (use
                        'haploid') or diploSHIC ('diploid')
  msOutFile             path to simulation output file (must be same format
                        used by Hudson's ms)
  fvecFileName          path to file where feature vectors will be written

optional arguments:
  -h, --help            show this help message and exit
   --totalPhysLen TOTALPHYSLEN
                        Length of simulated chromosome for converting infinite
                        sites ms output to finite sites (default=1100000)
  --numSubWins NUMSUBWINS
                        The number of subwindows that our chromosome will be
                        divided into (default=11)
  --maskFileName MASKFILENAME
                        Path to a fasta-formatted file that contains masking
                        information (marked by 'N'). If specified, simulations
                        will be masked in a manner mirroring windows drawn
                        from this file.
  --chrArmsForMasking CHRARMSFORMASKING
                        A comma-separated list (no spaces) of chromosome arms
                        from which we want to draw masking information (or
                        'all' if we want to use all arms. Ignored if
                        maskFileName is not specified.
  --unmaskedFracCutoff UNMASKEDFRACCUTOFF
                        Minimum fraction of unmasked sites, if masking
                        simulated data
  --outStatsDir OUTSTATSDIR
                        Path to a directory where values of each statistic in
                        each subwindow are recorded for each rep
  --ancFileName ANCFILENAME
                        Path to a fasta-formatted file that contains inferred
                        ancestral states ('N' if unknown). This is used for
                        masking, as sites that cannot be polarized are masked,
                        and we mimic this in the simulted data. Ignored in
                        diploid mode which currently does not use ancestral
                        state information
  --pMisPol PMISPOL     The fraction of sites that will be intentionally
                        polarized to better approximate real data

This mode takes three arguments and then offers many options. The arguments are the "shicMode", i.e. whether to calculate the haploid or diploid summary statistics, the name of the input file, and the name of the output file. The various options allow one to account for missing data (via masking), unfolding the site frequency spectrum via the ancestral states file (haploid only), and a mis-polarization rate of that unfolded site frequency spectrum. Please see the example usage below for a fleshed out example of how to use these features.

fvecVcf mode

The fvecVcf mode is used for calculating feature vectors from data that is stored as a VCF file. The help message from this mode is as follows

$ diploSHIC fvecVcf -h
usage: diploSHIC fvecVcf [-h] [--targetPop TARGETPOP]
                            [--sampleToPopFileName SAMPLETOPOPFILENAME]
                            [--winSize WINSIZE] [--numSubWins NUMSUBWINS]
                            [--maskFileName MASKFILENAME]
                            [--unmaskedFracCutoff UNMASKEDFRACCUTOFF]
                            [--ancFileName ANCFILENAME]
                            [--statFileName STATFILENAME]
                            [--segmentStart SEGMENTSTART]
                            [--segmentEnd SEGMENTEND]
                            shicMode chrArmVcfFile chrArm chrLen

required arguments:
  shicMode              specifies whether to use original haploid SHIC (use
                        'haploid') or diploSHIC ('diploid')
  chrArmVcfFile         VCF format file containing data for our chromosome arm
                        (other arms will be ignored)
  chrArm                Exact name of the chromosome arm for which feature
                        vectors will be calculated
  chrLen                Length of the chromosome arm
  fvecFileName          path to file where feature vectors will be written

optional arguments:
  -h, --help            show this help message and exit
  --targetPop TARGETPOP
                        Population ID of samples we wish to include
  --sampleToPopFileName SAMPLETOPOPFILENAME
                        Path to tab delimited file with population
                        assignments; format: SampleID popID
  --winSize WINSIZE     Length of the large window (default=1100000)
  --numSubWins NUMSUBWINS
                        Number of sub-windows within each large window
                        (default=11)
  --maskFileName MASKFILENAME
                        Path to a fasta-formatted file that contains masking
                        information (marked by 'N'); must have an entry with
                        title matching chrArm
  --unmaskedFracCutoff UNMASKEDFRACCUTOFF
                        Fraction of unmasked sites required to retain a
                        subwindow
  --ancFileName ANCFILENAME
                        Path to a fasta-formatted file that contains inferred
                        ancestral states ('N' if unknown); must have an entry
                        with title matching chrArm. Ignored for diploid mode
                        which currently does not use ancestral state
                        information.
  --statFileName STATFILENAME
                        Path to a file where statistics will be written for
                        each subwindow that is not filtered out
  --segmentStart SEGMENTSTART
                        Left boundary of region in which feature vectors are
                        calculated (whole arm if omitted)
  --segmentEnd SEGMENTEND
                        Right boundary of region in which feature vectors are
                        calculated (whole arm if omitted)

This mode takes five arguments and again has many options. The required arguments are the "shicMode", i.e. whether to calculate the haploid or diploid summary statistics, the name of the input file, which chromosome to arm to calculate statistics for, the length of that chromosome, and the name of the output file.

training the CNN and prediction

Once we have feature vector files ready to go we can train and test our CNN and then finally do prediction on empirical data.

formatting our training set

Before entering train mode we need to consolidate our training set into 5 files, one for each class. This is done using the makeTrainingSets mode whose help message is as follows:

$ diploSHIC makeTrainingSets -h
usage: diploSHIC makeTrainingSets [-h]
                                     neutTrainingFileName
                                     softTrainingFilePrefix
                                     hardTrainingFilePrefix
                                     sweepTrainingWindows
                                     linkedTrainingWindows outDir

required arguments:
  neutTrainingFileName  Path to our neutral feature vectors
  softTrainingFilePrefix
                        Prefix (including higher-level path) of files
                        containing soft training examples; files must end with
                        '_$i.$ext' where $i is the subwindow index of the
                        sweep and $ext is any extension.
  hardTrainingFilePrefix
                        Prefix (including higher-level path) of files
                        containing hard training examples; files must end with
                        '_$i.$ext' where $i is the subwindow index of the
                        sweep and $ext is any extension.
  sweepTrainingWindows  comma-separated list of windows to classify as sweeps
                        (usually just '5' but without the quotes)
  linkedTrainingWindows
                        list of windows to treat as linked to sweeps (usually
                        '0,1,2,3,4,6,7,8,9,10' but without the quotes)
  outDir                path to directory where the training sets will be
                        written

optional arguments:
  -h, --help            show this help message and exit

train mode

Here is the help message for the train mode of diploSHIC

$ diploSHIC train -h
usage: diploSHIC train [-h] [--epochs EPOCHS] [--numSubWins NUMSUBWINS]
                          trainDir testDir outputModel

required arguments:
  trainDir              path to training set files
  testDir               path to test set files, can be same as trainDir
  outputModel           file name for output model, will create two files one
                        with structure one with weights

optional arguments:
  -h, --help            show this help message and exit
  --epochs EPOCHS       max epochs for training CNN (default = 100)
  --numSubWins NUMSUBWINS
                        number of subwindows that our chromosome is divided
                        into (default = 11)

As you will see in a moment train mode is used for training the deep learning classifier. Its required arguments are trainDir (the directory where the training feature vectors are kept), testDir (the directory where the testing feature vectors are kept), and outputModel the file name for the trained network. One note -- diploSHIC expects five files named hard.fvec, soft.fvec, neut.fvec, linkedSoft.fvec, and linkedHard.fvec in the training and testing directories. The training and testing directory can be the same directory in which case 20% of the training examples are held out for use in testing and validation.

train mode has two options, the number of subwindows used for the feature vectors and the number of training epochs for the network.

predict mode

Once a classifier has been trained, one uses the predict mode of diploSHIC to classify empirical data. Here is the help statement

$ diploSHIC predict -h
usage: diploSHIC predict [-h] [--numSubWins NUMSUBWINS]
                            modelStructure modelWeights predictFile
                            predictFileOutput

required arguments:
  modelStructure        path to CNN structure .json file
  modelWeights          path to CNN weights .h5 file
  predictFile           input file to predict
  predictFileOutput     output file name

optional arguments:
  -h, --help            show this help message and exit
  --numSubWins NUMSUBWINS
                        number of subwindows that our chromosome is divided
                        into (default = 11)

The predict mode takes as input the two model files output by the train mode, an input file of empirical feature vectors, and a file name for the prediction output.

a quick example of the train/predict cycle

We have supplied in the repo some example data that can give you a quick run through the train/predict cycle (we will also shortly provide a soup-to-nuts example that starts by calculating feature vectors from simulations and ends with prediction of genomic data). Let's quickly give that code a spin. The directories testing/ and training/ each contain appropriately formatted diploid feature vectors that are ready to be fed into diploSHIC. First we will train the diploSHIC CNN, but we will restrict the number of training epochs to 10 to keep things relatively brief (this runs in less than 5 minutes on our server).

$ diploSHIC train training/ testing/ fooModel --epochs 10

as it runs a bunch of information monitoring the training of the network will apear. We are tracking the loss and accuracy in the validation set. When optimization is complete our trained network will be contained in two files, fooModel.json and fooModel.weights.hdf5. The last bit of output from diploSHIC gives us information about the loss and accuracy on the held out test data. From the above run my looks like this:

evaluation on test set:
diploSHIC loss: 0.404791
diploSHIC accuracy: 0.846800

Not bad. In practice I would set the --epochs value much higher than 10- the default setting of 100 should suffice in most cases. Now that we have a trained model we can make predictions on some empirical data. In the repo there is a file called testEmpirical.fvec that we will use as input

$ diploSHIC predict fooModel.json fooModel.weights.hdf5 testEmpirical.fvec testEmpirical.preds

the output predictions will be saved in testEmpirical.preds and should be straightforward to interpret.

A complete test case

In the interest of showing the user the whole enchilada when it comes to the workflow, I've provided the user with a more detailed example on the wiki of this repo. That example can be found here: https://github.com/kern-lab/diploSHIC/wiki/A-soup-to-nuts-example

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

diploshic-1.0.6.tar.gz (13.9 MB view details)

Uploaded Source

Built Distributions

diploSHIC-1.0.6-pp37-pypy37_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (73.5 kB view details)

Uploaded PyPy manylinux: glibc 2.12+ x86-64 manylinux: glibc 2.5+ x86-64

diploSHIC-1.0.6-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl (74.3 kB view details)

Uploaded PyPy manylinux: glibc 2.12+ i686 manylinux: glibc 2.5+ i686

diploSHIC-1.0.6-cp310-cp310-musllinux_1_1_x86_64.whl (125.2 kB view details)

Uploaded CPython 3.10 musllinux: musl 1.1+ x86-64

diploSHIC-1.0.6-cp310-cp310-musllinux_1_1_i686.whl (121.2 kB view details)

Uploaded CPython 3.10 musllinux: musl 1.1+ i686

diploSHIC-1.0.6-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (973.8 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.12+ x86-64

diploSHIC-1.0.6-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl (1.0 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.12+ i686

diploSHIC-1.0.6-cp39-cp39-musllinux_1_1_x86_64.whl (124.4 kB view details)

Uploaded CPython 3.9 musllinux: musl 1.1+ x86-64

diploSHIC-1.0.6-cp39-cp39-musllinux_1_1_i686.whl (120.7 kB view details)

Uploaded CPython 3.9 musllinux: musl 1.1+ i686

diploSHIC-1.0.6-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (973.1 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.12+ x86-64

diploSHIC-1.0.6-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl (1.0 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.12+ i686

diploSHIC-1.0.6-cp38-cp38-musllinux_1_1_x86_64.whl (125.3 kB view details)

Uploaded CPython 3.8 musllinux: musl 1.1+ x86-64

diploSHIC-1.0.6-cp38-cp38-musllinux_1_1_i686.whl (121.3 kB view details)

Uploaded CPython 3.8 musllinux: musl 1.1+ i686

diploSHIC-1.0.6-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (974.0 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.12+ x86-64

diploSHIC-1.0.6-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl (1.0 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.12+ i686

diploSHIC-1.0.6-cp37-cp37m-musllinux_1_1_x86_64.whl (120.2 kB view details)

Uploaded CPython 3.7m musllinux: musl 1.1+ x86-64

diploSHIC-1.0.6-cp37-cp37m-musllinux_1_1_i686.whl (117.6 kB view details)

Uploaded CPython 3.7m musllinux: musl 1.1+ i686

diploSHIC-1.0.6-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (121.9 kB view details)

Uploaded CPython 3.7m manylinux: glibc 2.12+ x86-64 manylinux: glibc 2.5+ x86-64

diploSHIC-1.0.6-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl (118.0 kB view details)

Uploaded CPython 3.7m manylinux: glibc 2.12+ i686 manylinux: glibc 2.5+ i686

diploSHIC-1.0.6-cp36-cp36m-musllinux_1_1_x86_64.whl (117.5 kB view details)

Uploaded CPython 3.6m musllinux: musl 1.1+ x86-64

diploSHIC-1.0.6-cp36-cp36m-musllinux_1_1_i686.whl (114.2 kB view details)

Uploaded CPython 3.6m musllinux: musl 1.1+ i686

diploSHIC-1.0.6-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (119.0 kB view details)

Uploaded CPython 3.6m manylinux: glibc 2.12+ x86-64 manylinux: glibc 2.5+ x86-64

diploSHIC-1.0.6-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl (114.6 kB view details)

Uploaded CPython 3.6m manylinux: glibc 2.12+ i686 manylinux: glibc 2.5+ i686

File details

Details for the file diploshic-1.0.6.tar.gz.

File metadata

  • Download URL: diploshic-1.0.6.tar.gz
  • Upload date:
  • Size: 13.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.9.19

File hashes

Hashes for diploshic-1.0.6.tar.gz
Algorithm Hash digest
SHA256 c5b74c2f8d1733288af74363c55d375c97893e3549611dd9151444a8f1d18679
MD5 122fc81010020f108ef69d849a7fc84d
BLAKE2b-256 93a6d23d6f2b1b7f0e901734d47393648f189ce94db2f5dd6acc900b4e9b7f65

See more details on using hashes here.

File details

Details for the file diploSHIC-1.0.6-pp37-pypy37_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for diploSHIC-1.0.6-pp37-pypy37_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 c3108bf1b7d364d6fb6851a5594d3840c5e72dcd267d0c4e34cb72d106555c7d
MD5 63a9776a869d42331f614953d63d4645
BLAKE2b-256 5b3983245325071bafacdbaf55d9c239f2fe9fa12eb95c2318212ec51d669879

See more details on using hashes here.

File details

Details for the file diploSHIC-1.0.6-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

File hashes

Hashes for diploSHIC-1.0.6-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 346c9b95f1784548501cb4272c714e7d1a5016592f35965be8f723c5b22f0700
MD5 222c4bf987317a2bec7a599c7afff55d
BLAKE2b-256 26b49bf6910820d684ccff889fc7705ae13655e4532c4e871400c43a5d699645

See more details on using hashes here.

File details

Details for the file diploSHIC-1.0.6-cp310-cp310-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for diploSHIC-1.0.6-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 bfc1bb0fa8f4b71c7181520de31401081ec98ebf820bed1b9a7832e3fabc4b8b
MD5 1377fe30d8dba048ad7b9c9198ce66cd
BLAKE2b-256 561b7cb2a9f51b7b1e6be12e90a0aa9a284665f9bc2acfae92c69ca8d12382d6

See more details on using hashes here.

File details

Details for the file diploSHIC-1.0.6-cp310-cp310-musllinux_1_1_i686.whl.

File metadata

File hashes

Hashes for diploSHIC-1.0.6-cp310-cp310-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 833d990a8a4f7afc4579ba60a8813bb2f9ad7d616203156ecfd47ac6b37444e5
MD5 696dd70e6c8e8793626d536dd32c0e1c
BLAKE2b-256 a4d87c808bc6012a64c6b7587bef7fec7a5192e7508ed0b5b7d7ff0f2ef9f4da

See more details on using hashes here.

File details

Details for the file diploSHIC-1.0.6-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for diploSHIC-1.0.6-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 0ea58c138719f761f14099991bbcd8595793b034c8782f5d7e5796855917e48f
MD5 c0f36dc27222449b2f0ab5d05b60f2a1
BLAKE2b-256 0d00513e3319ad1bcf2607f70f6d4715e256f97bf48b2d115bc03b61aef85dce

See more details on using hashes here.

File details

Details for the file diploSHIC-1.0.6-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

File hashes

Hashes for diploSHIC-1.0.6-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 ca0fa1aa785381104c8ebe7f69abedf17936ee794869df8a88df7f6cb9a8b418
MD5 5fcabcc3c6299703016fe63ca2b2bd4e
BLAKE2b-256 b33b41d048910179c9504c6a12b6fa4a8915908960ee5ce3c3636a69f7cc9f5e

See more details on using hashes here.

File details

Details for the file diploSHIC-1.0.6-cp39-cp39-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for diploSHIC-1.0.6-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 4147c80e1a4c2779ee7544c23f355be1a310cbecece402970f31eed7e5173440
MD5 694ee2ea8a6e6fe7a5f6afa2fc5db33c
BLAKE2b-256 ec203edeabf335a0b937c0363a090a8188037b1172997dfedd6112c7f886caf4

See more details on using hashes here.

File details

Details for the file diploSHIC-1.0.6-cp39-cp39-musllinux_1_1_i686.whl.

File metadata

File hashes

Hashes for diploSHIC-1.0.6-cp39-cp39-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 4b4a1a7c83f4c39be248f2f48d45e48a11d8b482fe18fa5a8adc11b021d0d60b
MD5 5cae4434e136ed1a16490ecbeb090b45
BLAKE2b-256 5fe72b384d3061f53df7b425f563fa553aa5811597bb2efb920b92503c9eb981

See more details on using hashes here.

File details

Details for the file diploSHIC-1.0.6-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for diploSHIC-1.0.6-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 a5625403f062863c1c3addb062d131bb602dcd831b9f1a3bc11bca5c99d8b0ee
MD5 d4478f6b8ed32f6c366fd68137e4b24a
BLAKE2b-256 49a8df48827452e1970eb816966d00be5ac763c381a9444e9cc944eb5065c85f

See more details on using hashes here.

File details

Details for the file diploSHIC-1.0.6-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

File hashes

Hashes for diploSHIC-1.0.6-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 8135fda6135e93977a1394e1b0b8ba0dfa265538aa17dd26dbabda794b5b404d
MD5 a7b39f190502f2a910a3a7c92bdcad2a
BLAKE2b-256 a6e9ce3552213c6e23256f1bcc47dfa0a0f1fbcd75c9e861f4cda49a09d99515

See more details on using hashes here.

File details

Details for the file diploSHIC-1.0.6-cp38-cp38-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for diploSHIC-1.0.6-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 c52e8a5f924fe08df5c19088764e3d78f6c2da9a0aadda5be3cb364bbe9c405a
MD5 c7af82eac962787cee8f39301251c67a
BLAKE2b-256 514e3b45650e096ac43251b145f9a073601fe97bf8d2f4740643b3b7a72ae5d9

See more details on using hashes here.

File details

Details for the file diploSHIC-1.0.6-cp38-cp38-musllinux_1_1_i686.whl.

File metadata

File hashes

Hashes for diploSHIC-1.0.6-cp38-cp38-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 0137a12f312db1131ec0e1c2f1c73910f2cddd750d1defefd49e87cf27042c8e
MD5 b8938a57f5fb6c6dd54b8d6ba0ba3bf3
BLAKE2b-256 8b4efb194a2340eba54b09997f92e79f1d2ee876818bea5a912f0531d486b1c4

See more details on using hashes here.

File details

Details for the file diploSHIC-1.0.6-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for diploSHIC-1.0.6-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 f24154b4bb803ff6c4ab5125737fe62f1d73a4e19daa3ae3bc5bf709483b9f64
MD5 024b0d455bab4ab0b811846e9d868a6b
BLAKE2b-256 316eede09bdf93d39b524faeeac604932914cd03734e986d3b3dccfe0824812b

See more details on using hashes here.

File details

Details for the file diploSHIC-1.0.6-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

File hashes

Hashes for diploSHIC-1.0.6-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 61b6d468b9da5fc97c9a35fa685d6fae68b4d97eb850a96cf4e1bf8e6fcc68a9
MD5 aebd1da6aba3fe973de6d038f568274a
BLAKE2b-256 0bd2bca24eb6a3a468354c9b4d503929fa45838384d486dbe582fdbbaf393910

See more details on using hashes here.

File details

Details for the file diploSHIC-1.0.6-cp37-cp37m-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for diploSHIC-1.0.6-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 85c35b3ff00738cdcf3eac2e8560ac463eae428c70b071fd82fe3d5cc4c9e1de
MD5 ab5b1c4ebc1e28292d392f885cea00c2
BLAKE2b-256 e4ccbd41c7a6d6ebb76d9364221e8540b16a363655b876378ec72fdb39697c0c

See more details on using hashes here.

File details

Details for the file diploSHIC-1.0.6-cp37-cp37m-musllinux_1_1_i686.whl.

File metadata

File hashes

Hashes for diploSHIC-1.0.6-cp37-cp37m-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 7c0a8784450de03f7f4eed3b8fc9a2d2f70295df66276920eef2f99bda3292f7
MD5 be03823bfe6453fc9f91824fd1c7280c
BLAKE2b-256 dac3db4310a12eb63a797fa62d05f6ebf8669c68f10c45bcbf831dee3ac58e26

See more details on using hashes here.

File details

Details for the file diploSHIC-1.0.6-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for diploSHIC-1.0.6-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 177189607a376584f5b3398472e9d59cc35edbf5b2f162eda77873c855b9a6bf
MD5 a72287af6c1d749049bf93bd18ced0b4
BLAKE2b-256 0de23ad8dfaff8b0eaab112d86c43d8fc3a2c9440238f716734a1b7b00150196

See more details on using hashes here.

File details

Details for the file diploSHIC-1.0.6-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

File hashes

Hashes for diploSHIC-1.0.6-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 7f5d5d0cf26bee48590b3eb2b5d8e3f6ce107ca3aa5dbd081c7457ab067050bf
MD5 69c9d53afca217ec0d9157130a241317
BLAKE2b-256 f2b0d52f68e7413b67ba9ecb713614e716dadafcaf5fd9f1edbda005f333b7c9

See more details on using hashes here.

File details

Details for the file diploSHIC-1.0.6-cp36-cp36m-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for diploSHIC-1.0.6-cp36-cp36m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 ce0f69c02da955e9546f329e2502ce91779bd468805df02d96227ac59cff3c6e
MD5 301bb8ecb70ab1b65ccaa1989395f5ba
BLAKE2b-256 5454d20bdb9f155a4d16d1e6369acf7ba4b5fffcec127922420197359e06ccc8

See more details on using hashes here.

File details

Details for the file diploSHIC-1.0.6-cp36-cp36m-musllinux_1_1_i686.whl.

File metadata

File hashes

Hashes for diploSHIC-1.0.6-cp36-cp36m-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 10cd1f73d32036011dc084b2d78605080cbde23d97881ff54f0883dfdc91fe60
MD5 66c9d016454bf86f74875bf7f5766563
BLAKE2b-256 4aaf656fd753809482b8eecfe57cd66ce2f722e166656eb8a7a2c24d1e33c9ea

See more details on using hashes here.

File details

Details for the file diploSHIC-1.0.6-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for diploSHIC-1.0.6-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 183149611ad6e44ee02a9d6223112b6e60e09c86e6dc90e09fd5da858aaabea6
MD5 6c4c1802dcc8dc699fae733e67c80c9e
BLAKE2b-256 16e7bbbdf9e4daa69d48b8e6ca640e70bf36bb342670484b44e1c42494ec11e7

See more details on using hashes here.

File details

Details for the file diploSHIC-1.0.6-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

File hashes

Hashes for diploSHIC-1.0.6-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 c14c9eb85a1c362eb4bfa440631766a229e47b06da89fe33b58f0c868818016d
MD5 a8b2764ce0363977a6a8e830461aa6d6
BLAKE2b-256 7922f34d781df4de348cd122aae313ce89cf10cd07e99c68f2a93df917c6985d

See more details on using hashes here.

Supported by

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