{ "info": { "author": "lyam.baudry@pasteur.fr", "author_email": "", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Science/Research", "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Operating System :: MacOS", "Operating System :: Microsoft :: Windows", "Operating System :: POSIX", "Operating System :: Unix", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3 :: Only", "Topic :: Scientific/Engineering", "Topic :: Scientific/Engineering :: Bio-Informatics", "Topic :: Scientific/Engineering :: Visualization" ], "description": "# instaGRAAL\n\n![ ](example/example.gif \"instaGRAAL demo\")\n\n[![PyPI version](https://badge.fury.io/py/instagraal.svg)](https://badge.fury.io/py/instagraal)\n![PyPI - Python Version](https://img.shields.io/pypi/pyversions/serpentine.svg)\n[![Docker Automated build](https://img.shields.io/docker/build/koszullab/instagraal.svg)](https://hub.docker.com/r/koszullab/instagraal/)\n[![Read the docs](https://readthedocs.org/projects/instagraal/badge)](https://instagraal.readthedocs.io)\n [![License: CC BY-NC 4.0](https://img.shields.io/badge/License-CC%20BY--NC%204.0-lightgrey.svg)](https://creativecommons.org/licenses/by-nc/4.0/)[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/ambv/black)\n\nLarge genome reassembly based on Hi-C data (continuation and partial rewrite of [GRAAL](https://github.com/koszullab/GRAAL)) and post-scaffolding polishing libraries.\n\nThis work is under continuous development/improvement - see [GRAAL](https://github.com/koszullab/GRAAL) for information about the basic principles.\n\n## Installation\n\nInstall from PyPI:\n\n```sh\n sudo pip3 install -U instagraal\n```\n\nor, if you want to get the very latest version:\n\n```sh\n sudo pip3 install -e git+https://github.com/koszullab/instagraal.git@master#egg=instagraal\n```\n\nThis should automatically handle most dependencies.\n\n### Requirements\n\nThe scaffolder and polishing libraries are written in Python 3 and CUDA. As such, an NVIDIA graphics card is required for the scaffolder to run. The Python 2 version is available at the ```python2``` branch of this repository, but be aware that development will mainly focus on the Python 3 version. The software has been tested for Ubuntu 17.04 and later, and most dependencies can be downloaded with its package manager (or Python's ```pip```).\n\n#### External libraries\n\nYou will need to download and install the [NVIDIA CUDA toolkit](https://developer.nvidia.com/cuda-downloads). Manual installation is recommended - installing ```nvidia-cuda-toolkit``` from Ubuntu's package manager has been known to cause glitches. It is fairly straightforward on OS X thanks to the installation wizard. Here is how to quickly do it on Ubuntu 18.04:\n\n```sh\n wget https://developer.nvidia.com/compute/cuda/10.0/Prod/local_installers/cuda_10.0.130_410.48_linux\n chmod +x cuda_10.0.130_410.48_linux\n sudo ./cuda_10.0.130_410.48_linux\n```\n\n**Note to Ubuntu users**: Be aware that the installation script will fail if it isn't run as root, or if a graphical instance (e.g. X) is running as well. You may need to temporarily shut it down, for instance by switching to tty1 and running the following (prior to the installation script):\n\n```sh\n sudo service lightdm stop\n```\n\n(Replace ```lightdm``` with ```mdm```, ```gdm``` or whichever login manager is present on your machine if that fails; if all else fails as well, you may have to run something like ```sudo pkill Xorg``` instead.)\n\n**Note to OS X users**: There is currently [no CUDA support](https://devtalk.nvidia.com/default/topic/1042279/cuda-10-and-macos-10-14/) on Mojave (10.14) and it is unclear when it is going to be added, if it is to be added at all. This means instaGRAAL (or indeed any CUDA-based application) will *not* work on Mojave. If you wish to run it on OS X, the only solution for now is to downgrade to High Sierra (10.13).\n\n#### Recommended libraries\n\nBecause some Python dependencies (such as ```pyopengl``` or ```h5py```) require to be built against specific files, it is recommended that you install the following packages if you encounter errors.\n\n##### OpenGL libraries\n\n* ```libglu1-mesa```\n* ```libxi-dev```\n* ```libxmu-dev```\n* ```libglu1-mesa-dev```\n* ```freeglut3-dev```\n\n##### HDF5 serialization library\n\n* ```hdf5-tools``` (```hdf5``` for OS X in brew)\n\n##### Boost libraries\n\n* ```libboost-all-dev``` (```boost``` and ```boost-python``` for OS X in brew)\n\n#### Python dependencies\n\nPython package requirements should be handled automatically by ```pip```, but should you\nwish to install them manually, these are:\n\n* ```numpy```\n* ```scipy```\n* ```matplotlib```\n* ```codepy```\n* ```h5py```\n* ```pyopengl```\n* ```docopt```\n* ```biopython```\n\nThey can also be handily installed using the supplied requirements file in the repo:\n\n pip3 install -Ur requirements.txt\n\nYou will also need to build ```pycuda``` with OpenGL support and **disable** its use of custom Boost libraries. Installing it directly from PyPI will cause errors at runtime. Here is how to do it manually with Git on Ubuntu or OS X:\n\n```sh\n git clone --recurse-submodules https://github.com/inducer/pycuda.git\n cd pycuda\n python3 configure.py --cuda-enable-gl --no-use-shipped-boost\n sudo python3 setup.py install\n```\n\nYou may run (as root) ```instagraal-setup```, an all-in-one script to handle all the above dependencies on Ubuntu 17+.\n\n### Container\n\nThere is experimental Docker support for instaGRAAL. You may fetch the corresponding image by running the following:\n\n```sh\n docker pull koszullab/instagraal\n```\n\n## How to use\n\nUnlike GRAAL, this is meant to be run from the command line.\n\n### Usage\n\n instagraal []\n [--level=4] [--cycles=100] [--coverage-std=1]\n [--neighborhood=5] [--device=0] [--circular] [--bomb]\n [--save-matrix] [--pyramid-only] [--save-pickle] [--simple]\n [--quiet] [--debug]\n\n### Options\n\n -h, --help Display this help message.\n --version Display the program's current version.\n -l 4, --level 4 Level (resolution) of the contact map.\n Increasing level by one means a threefold smaller\n resolution but also a threefold faster computation\n time. [default: 4]\n -n 100, --cycles 100 Number of iterations to perform for each bin.\n (row/column of the contact map). A high number of\n cycles has diminishing returns but there is a\n necessary minimum for assembly convergence.\n [default: 100]\n -c 1, --coverage-std 1 Number of standard deviations below the mean.\n coverage, below which fragments should be filtered\n out prior to binning. [default: 1]\n -N 5, --neighborhood 5 Number of neighbors to sample for potential\n mutations for each bin. [default: 5]\n --device 0 If multiple graphic cards are available, select\n a specific device (numbered from 0). [default: 0]\n -C, --circular Indicates genome is circular. [default: False]\n -b, --bomb Explode the genome prior to scaffolding.\n [default: False]\n --pyramid-only Only build multi-resolution contact maps (pyramids)\n and don't do any scaffolding. [default: False]\n --save-pickle Dump all info from the instaGRAAL run into a\n pickle. Primarily for development purposes, but\n also for advanced post hoc introspection.\n [default: False]\n --save-matrix Saves a preview of the contact map after each\n cycle, in csv format. [default: False]\n --simple Only perform operations at the edge of the contigs.\n [default: False]\n --quiet Only display warnings and errors as outputs.\n [default: False]\n --debug Display debug information. For development purposes\n only. Mutually exclusive with --quiet, and will\n override it. [default: False]\n\n### Input datasets\n\n#### Format specification\n\nThe above `````` passed as an argument to instaGRAAL needs three files:\n\n* A file named ```abs_fragments_contacts_weighted.txt```, containing the (sparse) Hi-C map itself. The first line must be ```id_frag_a id_frag_b n_contact```. All subsequent lines must represent the map's contacts in coordinate format (```id_frag_a``` being the row indices, ```id_frag_b``` being the column indices, ```n_contact``` being the number of contacts between each locus or index pair, _e.g._ if 5 contacts are found between fragments #2 and #3, there should be a line reading ```2 3 5``` in the file). ```n_contact``` must be an integer. The list should be sorted according to ```id_frag_a``` first, then ```id_frag_b```. Fragment ids start at 0.\n* A file named ```fragments_list.txt``` containing information related to each fragment of the genome. The first line must be ```id chrom start_pos end_pos size gc_content```, and subsequent lines (representing the fragments themselves) should follow that template. The fields should be self-explanatory; notably, ```chrom``` can be any string representing the chromosome's name to which the fragment at a given line belongs, and fragment ids should start over at 1 when the chromosome name changes. Aside from the ```chrom``` field and the ```gc``` field which is currently unused in this version and can be filled with any value, all fields should be integers. Note that ```start_pos``` starts at 0.\n* A file named ```info_contigs.txt``` containing information related to each contig/scaffold/chromosome in the genome. The first line must be ```contig length_kb n_frags cumul_length```. Field names should be again self-explanatory; naturally the contig field must contain names that are consistent with those found in ```fragments_list.txt```. Also ```length_kb``` should be an integer (rounded up or down if need be), and ```n_frags``` and ```cumul_length``` are supposed to be consistent with each other in that the cumulated length (in fragments) of contig N should be equal to the sum of the fields found in ```n_frags``` for the N-1 preceding lines. Note that ```cumul_length``` starts at 0.\n\nAll fields (including those in the files' headers) must be separated by tabs.\n\nMinimal working templates are provided in the ```example``` folder.\n\n#### Matrix generation\n\nIf you want to generate instaGRAAL-compatible matrices from scratch (i.e. from reads and a reference genome, as opposed to existing Hi-C data in one of the numerous existing formats), you may do so with [hicstuff](https://github.com/koszullab/hicstuff), which acts as both a Python library and a pipeline. A [graphical interface](https://github.com/koszullab/HiC-Box) is also available. Instructions, parameters and optional arguments are detailed in the repo's readme.\n\n## Output\n\nAfter the scaffolder is done running, whatever path you specified as output will contain a ```test_mcmc_X``` directory, where X is the level (resolution) at which scaffolding was performed. This directory, in turn, will contain the following:\n\n* ```genome.fasta```: the scaffolded genome. Scaffolds will be ordered by increasing size *in fragments*, which roughly (but not always) translates into increasing size in bp.\n* ```info_frags.txt```: a file that contains, for each newly formed scaffold, the original coordinates of every single bin in that scaffold, in the format ```chromosome, id, orientation, start, end```. Each bin has a unique ID that provides a convenient way of tracking consecutive stretches. Orientations are relative to one another, and when \"-1\" is supplied, it is understood that the reverse complement should be taken.\n\nOther files are mostly for developmental purposes and keep track of the evolution of various metrics and model parameters.\n\n## Polishing\n\nLingering artifacts found in output genomes can be corrected by editing the ```info_frags.txt``` file, either by hand or with a script. Look at options by running the following:\n\n instagraal-polish -h\n\nThe most common use case is to run all polishing procedures at once:\n\n instagraal-polish -m polishing -i info_frags.txt -f reference.fasta -o polished_assembly.fa\n\n## Troubleshooting\n\n### Loading CUDA libraries\n\nIf you encounter the following error, *despite* having installed the NVIDIA CUDA Toolkit:\n\n ImportError: libcurand.so.9.2: cannot open shared object file: No such file or directory\n\nit probably means the CUDA-related libraries haven't been properly added to your ```$PATH``` for some reason. A quick solution is to simply add this at the end of your ```.bashrc``` or ```.bash_profile``` (replace the paths with wherever you installed the toolkit and change the version number accordingly):\n\n export PATH=/usr/local/cuda-9.2/bin${PATH:+:${PATH}}\n export LD_LIBRARY_PATH=/usr/local/cuda-9.2/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}\n\n### Remote running\n\nIf you encounter the following error:\n\n freeglut (instagraal.py): failed to open display ''\n\nit most likely means you attempted to run an instaGRAAL instance remotely (e.g. over ssh) but didn't configure a proper ```$DISPLAY``` variable. In order to avoid this, simply run the following beforehand:\n\n export DISPLAY=:0\n\nNote that this will disable the movie (it will play on the remote machine instead).\n\nHowever, instaGRAAL is based on OpenGL, which means there has to be an X server of some kind running on your target machine no matter what. While this allows for pretty movies and visualizations, it may prove problematic on an environment you don't have total control over, *e.g.* a server cluster. Currently, your best bet is asking the system administrator of the target machine to set up an X instance if they haven't already.\n\n### Codepy toolchain\n\nIf you encounter an error like the following :\n\n File \"/usr/local/lib/python3.6/dist-packages/codepy/toolchain.py\", line 382, in _guess_toolchain_kwargs_from_python_config\n object_suffix = '.' + make_vars['MODOBJS'].split()[0].split('.')[1]\n IndexError: list index out of range\n\nYou need to install codepy directly from the git repository to have a more recent version than the one on PyPI. Run the following commands:\n\n```sh\n sudo pip3 uninstall codepy\n git clone https://github.com/inducer/codepy.git\n cd codepy\n sudo python3 setup.py install\n```\nYou will also need to update to gcc/g++ 8:\n\n```sh\n sudo apt install gcc-8 g++-8\n```\nIt should work directly afterwards.\n\n### General tips\n\n* instaGRAAL will attempt to detect already-built pyramids in hdf5 format, but if building was interrupted for some reason, and you re-run the pyramid building step, the hdf5 files will still be there, but corrupted. You will need to manually delete the ```pyramids``` folder and try again.\n\n* If there is a mismatch between the version of CUDA you installed and the one instaGRAAL seems to rely on (*e.g.* you installed CUDA 10 but instaGRAAL complains that it can't find ```libcurand.so.9.1```), try reinstalling ```pycuda``` and ```instagraal``` with the ```--no-cache-dir``` option.\n\n* You may experience issues if you handle dependencies with conda, such as ```pycuda``` failing to build because some header files that would be present when you installed ```libboost-all-dev``` aren't automatically recognized. If you don't want to manually mess with your ```$PATH```, it's probably best to just deactivate conda altogether and install everything with your OS's normal package manger (and ```pip```).\n\n## Documentation\n\nAs a Python package, instaGRAAL provides both a scaffolding and polishing library, as well as a convenient Hi-C matrix handling framework, and we've tried to expose much of the API behind these on [readthedocs](https://instagraal.readthedocs.io). If you wish to know more about how the scaffolder works, see the [references](#References), especially the [supplementary method](https://github.com/koszullab/GRAAL/blob/master/GRAALprinciple.pdf) delving deeper into the details of the model.\n\n## References\n\n### Principle\n\n* [High-quality genome assembly using chromosomal contact data](https://www.ncbi.nlm.nih.gov/pubmed/25517223), Herv\u00e9 Marie-Nelly, Martial Marbouty, Axel Cournac, Jean-Fran\u00e7ois Flot, Gianni Liti, Dante Poggi Parodi, Sylvie Syan, Nancy Guill\u00e9n, Antoine Margeot, Christophe Zimmer and Romain Koszul, Nature Communications, 2014\n* [A probabilistic approach for genome assembly from high-throughput chromosome conformation capture data](https://www.theses.fr/2013PA066714), Herv\u00e9 Marie-Nelly, 2013, PhD thesis\n\n### Use cases\n\n* [Proximity ligation scaffolding and comparison of two Trichoderma reesei strains genomes](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5469131/), Etienne Jourdier, Lyam Baudry, Dante Poggi-Parodi, Yoan Vicq, Romain Koszul, Antoine Margeot, Martial Marbouty, and Fr\u00e9d\u00e9rique Bidard, Biotechnology for Biofuels, 2017\n* [Scaffolding bacterial genomes and probing host-virus interactions in gut microbiome by proximity ligation (chromosome capture) assay](https://www.ncbi.nlm.nih.gov/pubmed/28232956), Martial Marbouty, Lyam Baudry, Axel Cournac, and Romain Koszul, Science Advances, 2017\n\n## Contact\n\n* lyam.baudry@pasteur.fr\n* romain.koszul@pasteur.fr\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/koszullab/instagraal", "keywords": "", "license": "GPLv3", "maintainer": "", "maintainer_email": "", "name": "instagraal", "package_url": "https://pypi.org/project/instagraal/", "platform": "", "project_url": "https://pypi.org/project/instagraal/", "project_urls": { "Homepage": "https://github.com/koszullab/instagraal" }, "release_url": "https://pypi.org/project/instagraal/0.1.6/", "requires_dist": [ "numpy", "scipy", "matplotlib", "codepy", "h5py", "pyopengl", "docopt", "biopython" ], "requires_python": ">=3.4", "summary": "Large genome reassembly based on Hi-C data.", "version": "0.1.6" }, "last_serial": 4968302, "releases": { "0.1.1": [ { "comment_text": "", "digests": { "md5": "8f0cfbee3ed6d6d205c905288efb3e31", "sha256": "d89a04948864a1e4720037b2965577cdd4c3d49cc432b6445747c3fc4e14efef" }, "downloads": -1, "filename": "instagraal-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "8f0cfbee3ed6d6d205c905288efb3e31", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 19703, "upload_time": "2018-11-22T19:02:31", "url": "https://files.pythonhosted.org/packages/ab/bf/c335dc58b6ae9a59b2d6b8fad3dcac8356a1daf25e88d5dacf5bbe2a7b7a/instagraal-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cd7cb918d43b856f1e73571adf3f7caf", "sha256": "a6830289244cfeef5aae6c2bdd519ee189e220584558d2ac0d3b7e374b7558d1" }, "downloads": -1, "filename": "instagraal-0.1.1.tar.gz", "has_sig": false, "md5_digest": "cd7cb918d43b856f1e73571adf3f7caf", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 24245429, "upload_time": "2018-11-22T19:02:36", "url": "https://files.pythonhosted.org/packages/5a/33/7379c6d74f332844c30af22b6c822285fa0aead784e9bb7ff4a7825741c2/instagraal-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "70f69aed5d009869c069be2abcb3942d", "sha256": "596e1b6aef652ef75409faddf0fd24c86a5bd728b3023388abaec4b57e3034a1" }, "downloads": -1, "filename": "instagraal-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "70f69aed5d009869c069be2abcb3942d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 19723, "upload_time": "2018-11-23T14:58:20", "url": "https://files.pythonhosted.org/packages/fa/9b/ad693d2f92ae1171787c1836122d19fea96de48cbabb662c9cef6afc7dc6/instagraal-0.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c86115d0e4307152ba81cddfdcf7ad3e", "sha256": "3cc12e47e26da0ab6a752c14382b5e14ae62f9650e23572c976ac6899680dda3" }, "downloads": -1, "filename": "instagraal-0.1.2.tar.gz", "has_sig": false, "md5_digest": "c86115d0e4307152ba81cddfdcf7ad3e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 24245474, "upload_time": "2018-11-23T14:58:31", "url": "https://files.pythonhosted.org/packages/87/ac/aaafc1a013f73898033a4fcbf77be4ec6155e83e2fa92211f0624adc08a2/instagraal-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "23e5c5bbd32e93f768ed09ebdc79243d", "sha256": "f13db5462f46f22c416a682f66625f81a884bcae514fd0548e558bbaafe716a1" }, "downloads": -1, "filename": "instagraal-0.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "23e5c5bbd32e93f768ed09ebdc79243d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 90248, "upload_time": "2018-11-28T17:09:37", "url": "https://files.pythonhosted.org/packages/81/60/e7f8016cb539f2b45ee24762edc6a0af8d4496a73304b24832f20d87a802/instagraal-0.1.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b5a12abd99d765985a962028ac353805", "sha256": "f7a1dbe89904406fe6dc7d144383dc725b61e672eb8a079358d79affef0d539c" }, "downloads": -1, "filename": "instagraal-0.1.3.tar.gz", "has_sig": false, "md5_digest": "b5a12abd99d765985a962028ac353805", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 24311600, "upload_time": "2018-11-28T17:09:42", "url": "https://files.pythonhosted.org/packages/3b/06/bd7c3b8aac2617d9af9eef4d118bf8bbc105e3faf223cb0fee14ec2ed09f/instagraal-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "2c1843ab48ff2978b05411368b2f5862", "sha256": "64978c64a7ea71570ac6e52979864ad962e4482d68ad7a2e01bab1c92fbc5292" }, "downloads": -1, "filename": "instagraal-0.1.4-py3-none-any.whl", "has_sig": false, "md5_digest": "2c1843ab48ff2978b05411368b2f5862", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 91285, "upload_time": "2018-12-03T08:20:57", "url": "https://files.pythonhosted.org/packages/a8/39/6f3acae821cf6a91882190dc93be3d6f8c7f226c8b97d3116c1f0422e67a/instagraal-0.1.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7d7d18cec0f4c5cc2cbb562bd4a7ea52", "sha256": "f44ddecfb9042dbaa8527748ac48318a8126a326b55120aec0329b09a6ed81c2" }, "downloads": -1, "filename": "instagraal-0.1.4.tar.gz", "has_sig": false, "md5_digest": "7d7d18cec0f4c5cc2cbb562bd4a7ea52", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 24312720, "upload_time": "2018-12-03T08:21:02", "url": "https://files.pythonhosted.org/packages/75/11/d502cd47755e70f645e0a481f5f5aa5ae146e7770a5b227ff73e0bd09bc0/instagraal-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "23e1cb973500d5bc3625c4d0cac14102", "sha256": "bbc61cf4383ee769afd836ba6dbfb42e5abe0dd0124728aed6fd47eda5eeb410" }, "downloads": -1, "filename": "instagraal-0.1.5-py3-none-any.whl", "has_sig": false, "md5_digest": "23e1cb973500d5bc3625c4d0cac14102", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 96794, "upload_time": "2019-02-11T02:32:04", "url": "https://files.pythonhosted.org/packages/df/bb/ace5ed463daa56738b69e485c3b65c4cd636ef46a1941422b59c7a12ae75/instagraal-0.1.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3ccc5919b593c3f6dba59152978f1e15", "sha256": "ac1ad52c3cb1054a735633b46fc0e4234894f6a2c16b9293f19b85f814744caa" }, "downloads": -1, "filename": "instagraal-0.1.5.tar.gz", "has_sig": false, "md5_digest": "3ccc5919b593c3f6dba59152978f1e15", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 24317583, "upload_time": "2019-02-11T02:32:34", "url": "https://files.pythonhosted.org/packages/dd/d6/832e51ca475681e1df1f6385d4a323921cc8299e2584b4036f5ce927618f/instagraal-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "ecd57cc0d0e7ade150425806cde43b17", "sha256": "b1ede2c3304445aa3b441b64188c006b04fff845e6aa14d5ddce9486bd2ca02e" }, "downloads": -1, "filename": "instagraal-0.1.6-py3-none-any.whl", "has_sig": false, "md5_digest": "ecd57cc0d0e7ade150425806cde43b17", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 90871, "upload_time": "2019-03-21T14:13:20", "url": "https://files.pythonhosted.org/packages/9d/2d/f05384ea57803e1299c4b7123bf9c66bcf2ad783a436550592504584a1fa/instagraal-0.1.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e72345431150296584c758bfc93fa1ca", "sha256": "74fea7cf6d57b4ccd05fb19421bbd13bdccaf0c795da9458aace1b91afabc00d" }, "downloads": -1, "filename": "instagraal-0.1.6.tar.gz", "has_sig": false, "md5_digest": "e72345431150296584c758bfc93fa1ca", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 24319193, "upload_time": "2019-03-21T14:13:35", "url": "https://files.pythonhosted.org/packages/48/ab/dc324f41caf1c6eadbe702ea5e7965f1bc3fb204ab150973b38626c308ce/instagraal-0.1.6.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "ecd57cc0d0e7ade150425806cde43b17", "sha256": "b1ede2c3304445aa3b441b64188c006b04fff845e6aa14d5ddce9486bd2ca02e" }, "downloads": -1, "filename": "instagraal-0.1.6-py3-none-any.whl", "has_sig": false, "md5_digest": "ecd57cc0d0e7ade150425806cde43b17", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 90871, "upload_time": "2019-03-21T14:13:20", "url": "https://files.pythonhosted.org/packages/9d/2d/f05384ea57803e1299c4b7123bf9c66bcf2ad783a436550592504584a1fa/instagraal-0.1.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e72345431150296584c758bfc93fa1ca", "sha256": "74fea7cf6d57b4ccd05fb19421bbd13bdccaf0c795da9458aace1b91afabc00d" }, "downloads": -1, "filename": "instagraal-0.1.6.tar.gz", "has_sig": false, "md5_digest": "e72345431150296584c758bfc93fa1ca", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 24319193, "upload_time": "2019-03-21T14:13:35", "url": "https://files.pythonhosted.org/packages/48/ab/dc324f41caf1c6eadbe702ea5e7965f1bc3fb204ab150973b38626c308ce/instagraal-0.1.6.tar.gz" } ] }