{ "info": { "author": "Marcel Zwiers", "author_email": "m.zwiers@donders.ru.nl", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "# BIDScoin\n\n\"A\n\n[![PyPI version](https://badge.fury.io/py/bidscoin.svg)](https://badge.fury.io/py/bidscoin)\n![PyPI - Python Version](https://img.shields.io/pypi/pyversions/bidscoin.svg)\n\n- [The BIDScoin workflow](#the-bidscoin-workflow)\n * [Required source data structure](#required-source-data-structure)\n * [Coining your source data to BIDS](#coining-your-source-data-to-bids)\n + [Step 1a: Running the bidsmapper](#step-1a-running-the-bidsmapper)\n + [Step 1b: Running the bidseditor](#step-1b-running-the-bidseditor)\n + [Step 2: Running the bidscoiner](#step-2-running-the-bidscoiner)\n * [Finishing up](#finishing-up)\n- [Plug-in functions](#options-and-plug-in-functions)\n- [BIDScoin functionality / TODO](#bidscoin-functionality--todo)\n- [BIDScoin tutorial](#bidscoin-tutorial)\n\nBIDScoin is a user friendly [open-source](https://github.com/Donders-Institute/bidscoin) python toolkit that converts (\"coins\") source-level (raw) neuroimaging data-sets to [nifti](https://nifti.nimh.nih.gov/) / [json](https://www.json.org/) / [tsv](https://en.wikipedia.org/wiki/Tab-separated_values) data-sets that are organized following the Brain Imaging Data Structure, a.k.a. [BIDS](http://bids.neuroimaging.io) standard. Rather then depending on complex or ambiguous programmatic logic for the identification of imaging modalities, BIDScoin uses a direct mapping approach to identify and convert the raw source data into BIDS data. The information sources that can be used to map the source data to BIDS are:\n\n 1. Information in MRI header files (DICOM, PAR/REC or .7 format; e.g. SeriesDescription)\n 2. Information from nifti headers (e.g. image dimensionality)\n 3. Information in the file structure (file- and/or directory names, e.g. number of files)\n\n> NB: Currently, the DICOM support (option 1) has been fully implemented, but the support for option 2 and 3 is planned for [future](#bidscoin-functionality--todo) releases.\n\nThe mapping information is stored as key-value pairs in the human readable and widely supported [YAML](http://yaml.org/) files. The nifti- and json-files are generated with [dcm2niix](https://github.com/rordenlab/dcm2niix). In addition, users can provide custom written [plug-in functions](#options-and-plug-in-functions), e.g. for using additional sources of information or e.g. for parsing of Presentation logfiles.\n\nBecause all the mapping information can be edited with a graphical user interface, BIDScoin requires no programming knowledge in order to use it.\n\nFor information on the BIDScoin installation and requirements, see the [installation guide](./docs/installation.md).\n\n## The BIDScoin workflow\n\n### Required source data structure\nBIDScoin will take your (raw) source data as well as a YAML file with the key-value mapping (dictionary) information as input, and returns a BIDS folder as output. The source data input folder should be organised according to a `/sub-identifier/[ses-identifier]/seriesfolder/dicomfile` structure. This data organization is how users receive their data from the (Siemens) scanners at the [DCCN](https://www.ru.nl/donders/) (NB: the `ses-identifier` sub-folder is optional and can be left out).\n\n- If your data is not already organized in this way, you can use the handy [dicomsort.py](./bidscoin/dicomsort.py) command-line utility to move your unordered or DICOMDIR ordered DICOM-files into a `seriesfolder` organization with the DICOM series-folders being named [SeriesNumber]-[SeriesDescription]. Series folders contain a single data type and are typically acquired in a single run.\n\n- Another command-line utility that can be helpful in organizing your source data is [rawmapper.py](./bidscoin/rawmapper.py). This utility can show you the overview (map) of all the values of DICOM-fields of interest in your data-set and, optionally, use these fields to rename your source data sub-folders (this can be handy e.g. if you manually entered subject-identifiers as [Additional info] at the scanner console and you want to use these to rename your subject folders).\n\n> If these utilities do not satisfy your needs, then have a look at this [reorganize_dicom_files](https://github.com/robertoostenveld/bids-tools/blob/master/doc/reorganize_dicom_files.md) tool.\n\n### Coining your source data to BIDS\nHaving an organized source data folder, the actual data-set conversion to BIDS is performed by the [(1a)](#step-1a-running-the-bidsmapper) the `bidsmapper.py`, [(1b)](#step-1b-running-the-bidseditor) the `bidseditor.py` and [(2)](#step-2-running-the-bidscoiner) the `bidscoiner.py` command-line tools. The `bidsmapper` makes a map of the different kind of datatypes in your source dataset, with the `bidseditor` you can edit this map, and the `bidscoiner` does the actual work to convert the source data into BIDS. By default (but see the `-i` option of the bidsmapper below), step 1a automatically launches step 1b, so in it's simplest form, all you need to do to convert your raw source data into BIDS is to run two simple commands, e.g.:\n ```\n bidsmapper.py sourcefolder bidsfolder\n bidscoiner.py sourcefolder bidsfolder\n ```\n\n#### Step 1a: Running the bidsmapper\n\n usage: bidsmapper.py [-h] [-b BIDSMAP] [-t TEMPLATE] [-n SUBPREFIX]\n [-m SESPREFIX] [-i {0,1,2}] [-v]\n sourcefolder bidsfolder\n\n Creates a bidsmap.yaml YAML file in the bidsfolder/code/bidscoin that maps the information\n from all raw source data to the BIDS labels. You can check and edit the bidsmap file with\n the bidseditor (but also with any text-editor) before passing it to the bidscoiner\n N.B.: Institute users may want to use a site-customized template bidsmap (see the\n --template option). The bidsmap_dccn template from the Donders Institute can serve as\n an example (or may even mostly work for other institutes out of the box).\n\n positional arguments:\n sourcefolder The source folder containing the raw data in\n sub-#/ses-#/run format (or specify --subprefix and\n --sesprefix for different prefixes)\n bidsfolder The destination folder with the (future) bids data and\n the bidsfolder/code/bidscoin/bidsmap.yaml output file\n\n optional arguments:\n -h, --help show this help message and exit\n -b BIDSMAP, --bidsmap BIDSMAP\n The bidsmap YAML-file with the study heuristics. If\n the bidsmap filename is relative (i.e. no \"/\" in the\n name) then it is assumed to be located in\n bidsfolder/code/bidscoin. Default: bidsmap.yaml\n -t TEMPLATE, --template TEMPLATE\n The bidsmap template with the default heuristics (this\n could be provided by your institute). If the bidsmap\n filename is relative (i.e. no \"/\" in the name) then it\n is assumed to be located in bidsfolder/code/bidscoin.\n Default: bidsmap_template.yaml\n -n SUBPREFIX, --subprefix SUBPREFIX\n The prefix common for all the source subject-folders.\n Default: 'sub-'\n -m SESPREFIX, --sesprefix SESPREFIX\n The prefix common for all the source session-folders.\n Default: 'ses-'\n -i {0,1,2}, --interactive {0,1,2}\n {0}: The sourcefolder is scanned for different kinds\n of scans without any user interaction. {1}: The\n sourcefolder is scanned for different kinds of scans\n and, when finished, the resulting bidsmap is opened\n using the bidseditor. {2}: As {1}, except that already\n during scanning the user is asked for help if a new\n and unknown run is encountered. This option is most\n useful when re-running the bidsmapper (e.g. when the\n scan protocol was changed since last running the\n bidsmapper). Default: 1\n -v, --version Show the BIDS and BIDScoin version\n\n examples:\n bidsmapper.py /project/foo/raw /project/foo/bids\n bidsmapper.py /project/foo/raw /project/foo/bids -t bidsmap_dccn\n\nThe bidsmapper will scan your `sourcefolder` to look for different runs (scan-types) to create a mapping for each run to a bids output name (a.k.a. the 'bidsmap'). By default (but see the `-i` option above), when finished the bidsmapper will automatically launch [step 1b](#step-1b-running-the-bidseditor), as described in the next section (but step 1b can also always be run separately by directly running the bidseditor).\n\n> Tip: use the `-t bidsmap_dccn` option and see if it works for you. If not, consider opening it with a text editor and adapt it to your needs.\n\n#### Step 1b: Running the bidseditor\n\n usage: bidseditor.py [-h] [-s SOURCEFOLDER] [-b BIDSMAP] [-t TEMPLATE]\n [-n SUBPREFIX] [-m SESPREFIX]\n bidsfolder\n\n This tool launches a graphical user interface for editing the bidsmap.yaml file\n that is e.g. produced by the bidsmapper or by this bidseditor itself. The user can\n fill in or change the BIDS labels for entries that are unidentified or sub-optimal,\n such that meaningful BIDS output names will be generated from these labels. The saved\n bidsmap.yaml output file can be used for converting the source data to BIDS using\n the bidscoiner.\n\n positional arguments:\n bidsfolder The destination folder with the (future) bids data\n\n optional arguments:\n -h, --help show this help message and exit\n -s SOURCEFOLDER, --sourcefolder SOURCEFOLDER\n The source folder containing the raw data. If empty,\n it is derived from the bidsmap provenance information\n -b BIDSMAP, --bidsmap BIDSMAP\n The bidsmap YAML-file with the study heuristics. If\n the bidsmap filename is relative (i.e. no \"/\" in the\n name) then it is assumed to be located in\n bidsfolder/code/bidscoin. Default: bidsmap.yaml\n -t TEMPLATE, --template TEMPLATE\n The bidsmap template with the default heuristics (this\n could be provided by your institute). If the bidsmap\n filename is relative (i.e. no \"/\" in the name) then it\n is assumed to be located in bidsfolder/code/bidscoin.\n Default: bidsmap_template.yaml\n -n SUBPREFIX, --subprefix SUBPREFIX\n The prefix common for all the source subject-folders.\n Default: 'sub-'\n -m SESPREFIX, --sesprefix SESPREFIX\n The prefix common for all the source session-folders.\n Default: 'ses-'\n\n examples:\n bidseditor.py /project/foo/bids\n bidseditor.py /project/foo/bids -t bidsmap_dccn.yaml\n bidseditor.py /project/foo/bids -b my/custom/bidsmap.yaml\n\n Here are a few tips & tricks:\n -----------------------------\n\n DICOM Attributes\n An (DICOM) attribute label can also be a list, in which case the BIDS labels / mapping\n are applies if a (DICOM) attribute value is in this list. If the attribute value is\n empty it is not used to identify the run. Wildcards can also be given, either as a single\n '*', or enclosed by '*'. Examples:\n SequenceName: '*'\n SequenceName: '*epfid*'\n SequenceName: ['epfid2d1rs', 'fm2d2r']\n SequenceName: ['*epfid*', 'fm2d2r']\n NB: Editing the DICOM attributes is normally not necessary and adviced against\n\n Dynamic BIDS labels\n The BIDS labels can be static, in which case the label is just a normal string, or dynamic,\n when the string is enclosed with pointy brackets like `` or\n `<>`. In case of single pointy brackets the label will be replaced\n during bidsmapper, bidseditor and bidscoiner runtime by the value of the (DICOM) attribute\n with that name. In case of double pointy brackets, the label will be updated for each\n subject/session during bidscoiner runtime. For instance, then the `run` label `<<1>>` in\n the bids name will be replaced with `1` or increased to `2` if a file with runindex `1`\n already exists in that directory.\n\n Fieldmaps: suffix\n Select 'magnitude1' if you have 'magnitude1' and 'magnitude2' data in one series-folder\n (this is what Siemens does) -- the bidscoiner will automatically pick up the 'magnitude2'\n data during runtime. The same holds for 'phase1' and 'phase2' data. See the BIDS\n specification for more details on fieldmap suffixes\n\n Fieldmaps: IntendedFor\n You can use the `IntendedFor` field to indicate for which runs (DICOM series) a fieldmap\n was intended. The dynamic label of the `IntendedFor` field can be a list of string patterns\n that is used to include all runs in a session that have that string pattern in their BIDS\n file name. Example: use `<>` to include all functional runs or `<>`\n to include \"Stop1Go\"-, \"Stop2Go\"- and \"Reward\"-runs.\n NB: The fieldmap might not be used at all if this field is left empty!\n\n Manual editing / inspection of the bidsmap\n You can of course also directly edit or inspect the `bidsmap.yaml` file yourself with any\n text editor. For instance to merge a set of runs that by adding a wildcard to a DICOM\n attribute in one run item and then remove the other runs in the set. See ./docs/bidsmap.md\n and ./heuristics/bidsmap_dccn.yaml for more information.\n\nAs shown below, the main window of the bidseditor opens with the `BIDS map` tab that contains a list of `input samples` that uniquely represents all the different files that are present in the source folder, together with the associated `BIDS output name`. The path in the `BIDS output name` is shown in red if the modality is not part of the BIDS standard, striked-out gray when the runs will be ignored in the conversion to BIDS, otherwise it is colored green. Double clicking the sample (DICOM) filename opens an inspection window with the full header information (double clicking sample filenames works throughout the GUI).\n\n![Bidseditor main window](./docs/bidseditor_main.png)\n\nThe user can click the `Edit` button for each list item to open a new edit window, as show below. In this interface, the right BIDS `Modality` (drop down menu) and the `suffix` label (drop down menu) can set correctly, after which the associated BIDS `Labels` can be edited (double click black items). As a result, the new BIDS `Output name` is then shown in the bottom text field. This is how the BIDS output data will look like and, if this looks all fine, the user can store this mapping to the bidsmap and return to the main window by clicking the `OK` button.\n\n![Bidseditor edit window](./docs/bidseditor_edit.png)\n\nFinally, if all BIDS output names in the main window are fine, the user can click on the `Save` button and proceed with running the bidscoiner tool.\n\n#### Step 2: Running the bidscoiner\n\n usage: bidscoiner.py [-h] [-p PARTICIPANT_LABEL [PARTICIPANT_LABEL ...]] [-f]\n [-s] [-b BIDSMAP] [-n SUBPREFIX] [-m SESPREFIX] [-v]\n sourcefolder bidsfolder\n\n Converts (\"coins\") datasets in the sourcefolder to nifti / json / tsv datasets in the\n bidsfolder according to the BIDS standard. Check and edit the bidsmap.yaml file to\n your needs using the bidseditor.py tool before running this function. You can run\n bidscoiner.py after all data is collected, or run / re-run it whenever new data has\n been added to the source folder (presuming the scan protocol hasn't changed). If you\n delete a (subject/) session folder from the bidsfolder, it will be re-created from the\n sourcefolder the next time you run the bidscoiner.\n\n Provenance information, warnings and error messages are stored in the\n bidsfolder/code/bidscoin/bidscoiner.log file.\n\n positional arguments:\n sourcefolder The source folder containing the raw data in\n sub-#/[ses-#]/run format (or specify --subprefix and\n --sesprefix for different prefixes)\n bidsfolder The destination / output folder with the bids data\n\n optional arguments:\n -h, --help show this help message and exit\n -p PARTICIPANT_LABEL [PARTICIPANT_LABEL ...], --participant_label PARTICIPANT_LABEL [PARTICIPANT_LABEL ...]\n Space seperated list of selected sub-# names / folders\n to be processed (the sub- prefix can be removed).\n Otherwise all subjects in the sourcefolder will be\n selected\n -f, --force If this flag is given subjects will be processed,\n regardless of existing folders in the bidsfolder.\n Otherwise existing folders will be skipped\n -s, --skip_participants\n If this flag is given those subjects that are in\n particpants.tsv will not be processed (also when the\n --force flag is given). Otherwise the participants.tsv\n table is ignored\n -b BIDSMAP, --bidsmap BIDSMAP\n The bidsmap YAML-file with the study heuristics. If\n the bidsmap filename is relative (i.e. no \"/\" in the\n name) then it is assumed to be located in\n bidsfolder/code/bidscoin. Default: bidsmap.yaml\n -n SUBPREFIX, --subprefix SUBPREFIX\n The prefix common for all the source subject-folders.\n Default: 'sub-'\n -m SESPREFIX, --sesprefix SESPREFIX\n The prefix common for all the source session-folders.\n Default: 'ses-'\n -v, --version Show the BIDS and BIDScoin version\n\n examples:\n bidscoiner.py /project/foo/raw /project/foo/bids\n bidscoiner.py -f /project/foo/raw /project/foo/bids -p sub-009 sub-030\n\n### Finishing up\n\nAfter a successful run of `bidscoiner.py`, the work to convert your data in a fully compliant BIDS dataset is unfortunately not yet fully over and, depending on the complexity of your data-set, additional tools may need to be run and meta-data may need to be entered manually (not everything can be automated). For instance, you should update the content of the `dataset_description.json` and `README` files in your bids folder and you may need to provide e.g. additional `*_scans.tsv`,`*_sessions.tsv` or `participants.json` files (see the [BIDS specification](http://bids.neuroimaging.io/bids_spec.pdf) for more information). Moreover, if you have behavioural log-files you will find that BIDScoin does not (yet) [support](#bidscoin-functionality--todo) converting these into BIDS compliant `*_events.tsv/json` files (advanced users are encouraged to use the `bidscoiner.py` [plug-in](#options-and-plug-in-functions) possibility and write their own log-file parser).\n\nIf all of the above work is done, you can (and should) run the web-based [bidsvalidator](https://bids-standard.github.io/bids-validator/) to check for inconsistencies or missing files in your bids data-set (NB: the bidsvalidator also exists as a [command-line tool](https://github.com/bids-standard/bids-validator)).\n\n> NB: The provenance of the produced BIDS data-sets is stored in the `bids/code/bidscoin/bidscoiner.log` file. This file is also very useful for debugging / tracking down bidsmapping issues.\n\n## Options and plug-in functions\nBIDScoin provides the possibility for researchers to write custom python functions that will be executed at bidsmapper.py and bidscoiner.py runtime. To use this functionality, enter the name of the module (default location is the plugins-folder; otherwise the full path must be provided) in the bidsmap dictionary file to import the plugin functions. The functions in the module should be named `bidsmapper_plugin` for bidsmapper.py and `bidscoiner_plugin` for bidscoiner.py. See [README.py](./bidscoin/plugins/README.py) for more details and placeholder code.\n\n## BIDScoin functionality / TODO\n- [x] DICOM source data\n- [ ] PAR / REC source data\n- [ ] P7 source data\n- [ ] Nifti source data\n- [x] Fieldmaps\n- [x] Multi-echo data\n- [x] Multi-coil data\n- [x] PET data\n- [ ] Stimulus / behavioural logfiles\n\n> Are you a python programmer with an interest in BIDS who knows all about GE and / or Philips data? Are you experienced with parsing stimulus presentation log-files? Or do you have ideas to improve the this toolkit or its documentation? Have you come across bugs? Then you are highly encouraged to provide feedback or contribute to this project on [https://github.com/Donders-Institute/bidscoin](https://github.com/Donders-Institute/bidscoin).\n\n## BIDScoin tutorial\nThis tutorial is specific for researchers from the DCCN and makes use of data-sets stored on its central file-system. However, it should not be difficult to use (at least part of) this tutorial for other data-sets as well.\n\n1. **Preparation.** Activate the bidscoin environment and create a tutorial playground folder in your home directory by executing these bash commands (see also `module help bidscoin`): \n ```\n module add bidscoin \n source activate /opt/bidscoin \n cp -r /opt/bidscoin/tutorial ~\n ```\n The new `tutorial` folder contains a `raw` source-data folder and a `bids_ref` reference BIDS folder, i.e. the end product of this tutorial.\n\n Let's begin with inspecting this new raw data collection: \n - Are the DICOM files for all the sub-*/ses-* folders organised in series-subfolders (e.g. sub-001/ses-01/003-T1MPRAGE/0001.dcm etc)? Use `dicomsort.py` if not\n - Use the `rawmapper.py` command to print out the DICOM values of the \"EchoTime\", \"Sex\" and \"AcquisitionDate\" of the fMRI series in the `raw` folder\n\n2. **BIDS mapping.** Scan all folders in the raw data collection for unknown data by running the [bidsmapper](#step-1a-running-the-bidsmapper) bash command: \n ```\n bidsmapper.py raw bids\n ```\n - Rename the \"task_label\" of the functional scans into something more readable, e.g. \"Reward\" and \"Stop\"\n - Add a search pattern to the IntendedFor field such that it will select your fMRI runs (see the [bidseditor](#step-1b-running-the-bidseditor) `fieldmap` section for more details)\n - When all done, (re)open the `bidsmap.yaml` file and change the options such that you will get non-zipped nifti data (i.e. `*.nii `instead of `*.nii.gz`) in your BIDS data collection. You can use a text editor or, much better, run the [bidseditor](#step-1b-running-the-bidseditor) command line tool.\n\n3. **BIDS coining.** Convert your raw data collection into a BIDS collection by running the [bidscoiner](#step-2-running-the-bidscoiner) commandline tool (note that the input is the same as for the bidsmapper):\n ```\n bidscoiner.py raw bids\n ```\n - Check your `bids/code/bidscoin/bidscoiner.log` and `bids/code/bidscoin/bidscoiner.errors` files for any errors or warnings\n - Compare the results in your `bids/sub-*` subject folders with the in `bids_ref` reference result. Are the file and foldernames the same? Also check the json sidecar files of the fieldmaps. Do they have the right \"EchoTime\" and \"IntendedFor\" fields?\n - What happens if you re-run the `bidscoiner.py` command? Are the same subjects processed again? Re-run \"sub-001\".\n - Inspect the `bids/participants.tsv` file and decide if it is ok.\n - Update the `dataset_description.json` and `README` files in your `bids` folder\n - As a final step, run the [bids-validator](https://github.com/bids-standard/bids-validator) on your `~/bids_tutorial` folder. Are you completely ready now to share this dataset?\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/Donders-Institute/bidscoin", "keywords": "bids mri imaging neuroimaging dicom nifti pet", "license": "", "maintainer": "", "maintainer_email": "", "name": "bidscoin", "package_url": "https://pypi.org/project/bidscoin/", "platform": "", "project_url": "https://pypi.org/project/bidscoin/", "project_urls": { "Homepage": "https://github.com/Donders-Institute/bidscoin" }, "release_url": "https://pypi.org/project/bidscoin/2.3.1/", "requires_dist": [ "pandas", "pydicom (>=1.0.2)", "PyQt5 (>=5.12.1)", "ruamel.yaml (>=0.15.35)", "coloredlogs" ], "requires_python": ">=3.6", "summary": "Converts and organises raw MRI data-sets according to the Brain Imaging Data Structure (BIDS)", "version": "2.3.1" }, "last_serial": 5834848, "releases": { "1.4": [ { "comment_text": "", "digests": { "md5": "84f41bacdcc85eecfdd02a1356beca96", "sha256": "40e6590d95923ed9b891b6f91bc8aec4cda27001437e153f0e8e5b2bf6f431f2" }, "downloads": -1, "filename": "bidscoin-1.4-py3-none-any.whl", "has_sig": false, "md5_digest": "84f41bacdcc85eecfdd02a1356beca96", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 75725, "upload_time": "2018-11-23T15:32:30", "url": "https://files.pythonhosted.org/packages/d5/5c/bf23e8ed70442610131d52761b0bdb5ce9a2fd8689e3a3783c703e60d289/bidscoin-1.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b8348f65bbfc0e59b321645ca2aeb95d", "sha256": "a2a900dced96dcb966034e05c1ef53cb935a38f492a5af2463890269f5748faf" }, "downloads": -1, "filename": "bidscoin-1.4.tar.gz", "has_sig": false, "md5_digest": "b8348f65bbfc0e59b321645ca2aeb95d", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 34195, "upload_time": "2018-11-23T15:32:33", "url": "https://files.pythonhosted.org/packages/3e/c1/614c64318d15eaca67a31a3cf373040bae3b24946c5b17b00e6f8b1382e3/bidscoin-1.4.tar.gz" } ], "1.5": [ { "comment_text": "", "digests": { "md5": "30e34e7e2daa471c386827ae2fd968a4", "sha256": "3b8196311a593d3eae359043e58b0ac20d72c80e85d1b5bf986ae2b638da6f81" }, "downloads": -1, "filename": "bidscoin-1.5-py3-none-any.whl", "has_sig": false, "md5_digest": "30e34e7e2daa471c386827ae2fd968a4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 84268, "upload_time": "2019-03-11T09:28:36", "url": "https://files.pythonhosted.org/packages/fd/32/ecbcdeebf1a27f2f1479afa66d626e74747236a1a7e88a4d809b6f494421/bidscoin-1.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "744d708dd944ecfcb386bf53b5d9f08b", "sha256": "a3adc3375e7045dabc7debb29deca37d5acdb26209128d4844c0f9369b0d2938" }, "downloads": -1, "filename": "bidscoin-1.5.tar.gz", "has_sig": false, "md5_digest": "744d708dd944ecfcb386bf53b5d9f08b", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 43380, "upload_time": "2019-03-11T09:28:38", "url": "https://files.pythonhosted.org/packages/b9/ce/c2d47522892e263e75a0874346181c71d6e2359606b4e5145e2536134c39/bidscoin-1.5.tar.gz" } ], "2.0": [ { "comment_text": "", "digests": { "md5": "6a119c669be5cb3507ebccc37252dd6c", "sha256": "6a87751e9a7e3e8b4641aa189257fe855084ebc351a840585b48c155e20a1424" }, "downloads": -1, "filename": "bidscoin-2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "6a119c669be5cb3507ebccc37252dd6c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 111186, "upload_time": "2019-06-18T14:07:32", "url": "https://files.pythonhosted.org/packages/4e/50/9b39daa5d8a884689f24faa7e14a73dd21cb51e1165d3f49f41c7698233f/bidscoin-2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "37349b25f0c1b9fe2de4c18710f0be47", "sha256": "142df5e061ac662e5da5b47b0fc4ea781c369085f74ddb2e30cd5d341754531c" }, "downloads": -1, "filename": "bidscoin-2.0.tar.gz", "has_sig": false, "md5_digest": "37349b25f0c1b9fe2de4c18710f0be47", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 65053, "upload_time": "2019-06-18T14:07:37", "url": "https://files.pythonhosted.org/packages/15/fc/79d877f728bbd2649b3788ec1d939301b72b153d6c1aa1d9d9ab3abe37df/bidscoin-2.0.tar.gz" } ], "2.1": [ { "comment_text": "", "digests": { "md5": "cdc1836e6e1a59bddd1f1dafe9ebeb2d", "sha256": "d6bcf9cfaac3879fcaa069ed66c88cd0c16e924ec03de8f5012f060edd1e98c0" }, "downloads": -1, "filename": "bidscoin-2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "cdc1836e6e1a59bddd1f1dafe9ebeb2d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 113512, "upload_time": "2019-06-23T14:16:03", "url": "https://files.pythonhosted.org/packages/31/15/c04b4277fc1eac9219bcf257953c1c847863d56df26e80837fafbc18b57e/bidscoin-2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2161c204852d9427b98208a9941d848f", "sha256": "b15972b46c7ae1e3df22c502d754389c56bd838b72d8c6e6ec64e39b4e6194bc" }, "downloads": -1, "filename": "bidscoin-2.1.tar.gz", "has_sig": false, "md5_digest": "2161c204852d9427b98208a9941d848f", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 66437, "upload_time": "2019-06-23T14:16:08", "url": "https://files.pythonhosted.org/packages/fc/b5/3f023b3969725b3414e79c58eaa565d3f7ab6a80eb2fc540879f23eb3d7d/bidscoin-2.1.tar.gz" } ], "2.2": [ { "comment_text": "", "digests": { "md5": "dcf86e718cc4ae7695e2d06b22d1e9e4", "sha256": "360e3577bc8ba2cf277e6ec661b267db165a021157b7d717bbfcd47202c0d7da" }, "downloads": -1, "filename": "bidscoin-2.2-py3-none-any.whl", "has_sig": false, "md5_digest": "dcf86e718cc4ae7695e2d06b22d1e9e4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 120863, "upload_time": "2019-07-11T14:16:18", "url": "https://files.pythonhosted.org/packages/f4/2c/218e49c3993ac0a3e5634722caad4293eedac59983da4289eb69c490d710/bidscoin-2.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9592fc41d31e5154aed1e6a33a183dd6", "sha256": "05f67d579c2c64f6d6ed336ed36e1b856acb5989618bb8f07f235de1cd86b0f2" }, "downloads": -1, "filename": "bidscoin-2.2.tar.gz", "has_sig": false, "md5_digest": "9592fc41d31e5154aed1e6a33a183dd6", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 73650, "upload_time": "2019-07-11T14:16:24", "url": "https://files.pythonhosted.org/packages/e6/d1/1f204809efa69ddbaac26c6a8834c41884099256796a1947cc02d7372d30/bidscoin-2.2.tar.gz" } ], "2.3": [ { "comment_text": "", "digests": { "md5": "c4111877b581433bf50d357cc5a6b5fe", "sha256": "f32cefa660639de7eb7fa15dda0c258f07ad55bde13745d31c422e029a68f1fc" }, "downloads": -1, "filename": "bidscoin-2.3-py3-none-any.whl", "has_sig": false, "md5_digest": "c4111877b581433bf50d357cc5a6b5fe", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 129944, "upload_time": "2019-08-29T15:15:11", "url": "https://files.pythonhosted.org/packages/ca/2c/b51eb810219cfb1af0884d9204acde88e7f846cfa5f8f496226db5d9396b/bidscoin-2.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f71ab154bc2cd67b26fa865340e4aebf", "sha256": "157e1bb319b26884fbaf5ef895c06ad691ace4ef52e0d75baff18545714e4b0f" }, "downloads": -1, "filename": "bidscoin-2.3.tar.gz", "has_sig": false, "md5_digest": "f71ab154bc2cd67b26fa865340e4aebf", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 80332, "upload_time": "2019-08-29T15:15:18", "url": "https://files.pythonhosted.org/packages/04/f2/b253226567c525916c21477f1dabb6afed12d022623ce5f5097f4e6512ad/bidscoin-2.3.tar.gz" } ], "2.3.1": [ { "comment_text": "", "digests": { "md5": "77e86705873ec2d22983e0d08d8e6f8d", "sha256": "4a06f686fa349ef38825b42bd7aceb7b6aef427bcaff4e77362778980e89184f" }, "downloads": -1, "filename": "bidscoin-2.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "77e86705873ec2d22983e0d08d8e6f8d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 130637, "upload_time": "2019-09-16T08:31:03", "url": "https://files.pythonhosted.org/packages/bb/23/10a6b7d9554c4315d2fad15eab0a77ac1d65c88d4bde0bae7c18b72c5469/bidscoin-2.3.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "426d664c010da2f6fa132212fd938d38", "sha256": "d904e37d4cd12bc9f7f4d340df626e1bdc4d91b7ee71f6b4879af5cbd3a8f5d7" }, "downloads": -1, "filename": "bidscoin-2.3.1.tar.gz", "has_sig": false, "md5_digest": "426d664c010da2f6fa132212fd938d38", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 80840, "upload_time": "2019-09-16T08:31:11", "url": "https://files.pythonhosted.org/packages/3e/06/3619616917411fae6830eb192d614adc95cdcdea8530318c5d244c65570b/bidscoin-2.3.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "77e86705873ec2d22983e0d08d8e6f8d", "sha256": "4a06f686fa349ef38825b42bd7aceb7b6aef427bcaff4e77362778980e89184f" }, "downloads": -1, "filename": "bidscoin-2.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "77e86705873ec2d22983e0d08d8e6f8d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 130637, "upload_time": "2019-09-16T08:31:03", "url": "https://files.pythonhosted.org/packages/bb/23/10a6b7d9554c4315d2fad15eab0a77ac1d65c88d4bde0bae7c18b72c5469/bidscoin-2.3.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "426d664c010da2f6fa132212fd938d38", "sha256": "d904e37d4cd12bc9f7f4d340df626e1bdc4d91b7ee71f6b4879af5cbd3a8f5d7" }, "downloads": -1, "filename": "bidscoin-2.3.1.tar.gz", "has_sig": false, "md5_digest": "426d664c010da2f6fa132212fd938d38", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 80840, "upload_time": "2019-09-16T08:31:11", "url": "https://files.pythonhosted.org/packages/3e/06/3619616917411fae6830eb192d614adc95cdcdea8530318c5d244c65570b/bidscoin-2.3.1.tar.gz" } ] }