{ "info": { "author": "Kathryn Shelley, Thomas Dixon and Jonathan Brooks-Bartlett in the lab of Professor Elspeth Garman, University of Oxford", "author_email": "kathryn.l.shelley@gmail.com", "bugtrack_url": null, "classifiers": [ "Programming Language :: Python" ], "description": "# RABDAM \u2013 identifying specific radiation damage in MX structures\n\n[![Python Version](https://img.shields.io/badge/python-2.7-blue.svg)](https://www.python.org/download/releases/2.7/)\n[![Python Version](https://img.shields.io/badge/python-3.6-blue.svg)](https://www.python.org/download/releases/3.6/)\n[![LGPL licensed](https://img.shields.io/badge/license-LGPL%20v3-blue.svg)](https://github.com/GarmanGroup/RABDAM/blob/master/COPYING.LESSER)\n\nA program to calculate the *B*Damage and *B*net metrics to quantify the extent of specific radiation damage present within an individual MX structure. Suitable for running on any standard format PDB or mmCif file.\n\n\\*\\***NOTE:** These scripts are under development, and are updated regularly. The program is currently being extended to incorporate nucleic acids analysis. Whilst these new capabilities are being tested, presently RABDAM is restricted to assessing damage to (i) protein crystal structures and (ii) the protein component of protein / nucleic acid crystal structures. If in the meantime you would like to use RABDAM for nucleic acids analysis, please contact the authors at the email address provided at the bottom of the page.\\*\\*\n\n___\n\n## Contents\n-\t[How to run in brief](#how-to-run-in-brief)\n- [Background](#background)\n-\t[Usage](#usage)\n - [Installation](#installation)\n -\t[System requirements](#system-requirements)\n - [Data requirements](#data-requirements)\n -\t[Running RABDAM](#running-rabdam)\n -\t[Writing the RABDAM input file](#writing-the-rabdam-input-file)\n-\t[Queries](#queries)\n-\t[Contributors](#contributors)\n-\t[Citing RABDAM](#citing-rabdam)\n\n___\n\n## How to run in brief\nRABDAM is a command line program. To run the program with its recommended default parameter values, execute:\n\n`python rabdam.py \u2013f XXXX`\n\n, where XXXX is the 4 character PDB accession code of the MX structure under study. Alternatively, you can provide RABDAM with an absolute file path to a locally saved PDB file:\n\n`python rabdam.py \u2013f path/to/pdb_file.pdb`\n\n, or to a locally saved mmCif file:\n\n`python rabdam.py \u2013f path/to/mmcif_file.cif`\n\nSee the \u201c*Usage*\u201d section below for further details.\n\n___\n\n## Background\nDuring macromolecular crystallography (MX) data collection, X-rays are also absorbed by and deposit energy within the crystal under study, causing damage. This damage can result in localised chemical changes to the crystalline macromolecule copies, for example to disulfide bond cleavage in proteins, *etc*. Such *specific radiation damage* manifestations can lead to incorrect biological conclusions being drawn from an MX structure if they are not identified and accounted for. Unfortunately, the high intensities of third generation synchrotron sources have resulted in specific radiation damage artefacts commonly being present in MX structures deposited in the Protein Data Bank (PDB), even when data collection is carried out at 100 K.\n\nThe chemical changes induced by specific radiation damage cause an accompanying increase in the atomic *B*-factor values of affected sites. However, multiple factors can affect an atom\u2019s *B*-factor value in addition to radiation damage, the most important of these being its mobility. The increase in atomic *B*-factor (from herein referred to as *B*-factor) caused by specific radiation damage is insufficiently large to distinguish damage from mobility.\n\nThere is a strong positive correlation between the mobility of an atom within a crystal structure and its packing density, *i.e.* the number of atoms present in its local environment. The *B*Damage metric is full isotropic atomic *B*-factor corrected for packing density: specifically, the *B*Damage value of an atom *j* is equal to the ratio of its *B*-factor to the average *B*-factor of atoms 1 to *n* which occupy a similar packing density environment to atom *j*. The *B*Damage metric has been shown to identify expected sites of specific radiation damage in damaged MX structures (Gerstel *et al.*, 2015).\n\n![Images/BDamage_equation.png](Images/BDamage_equation.png)\n\nThe method of calculating an atom\u2019s *B*Damage value is summarised in the diagram below:\n\n___\n\n![Images/BDamage_methodology.png](Images/BDamage_methodology.png)\nCalculation of the *B*Damage metric. From an input PDB / mmCif file of the asymmetric unit of a macromolecule of interest, RABDAM **(A)** generates a copy of the unit cell, followed by **(B)** a 3x3x3 assembly of unit cells. **(C)** Atoms in the 3x3x3 unit cell assembly that lie further than 7 \u00c5 from the asymmetric unit are discounted. **(D)** The packing density of an atom *j* in the asymmetric unit is calculated as the number of atoms within a 7 \u00c5 radius. **(E)** Asymmetric unit atoms are ordered by packing density; the *B*Damage value of atom *j* is then calculated as the ratio of its *B*-factor to the average of the *B*-factor values of atoms grouped, via a sliding window, as occupying a similar packing density environment. Note that hydrogen atoms are not considered in the calculation of *B*Damage. Diagrams are shown in 2D rather than 3D for clarity.\n\n___\n\n*B*Damage values are calculated from full atomic isotropic *B*-factor values, which should be listed in the *B*-factor field of a structure\u2019s ATOM / HETATM records in a standard format PDB / mmCif file. However, ~10% of PDB / mmCif files list alternative *B*-factor values in this field (Touw & Vriend, 2014). The *B*-factor Databank (BDB) contains PDB files with full isotropic (\\*but not necessarily atomic) *B*-factor values in the ATOM / HETATM record *B*-factor field; all PDB entries with sufficient header information to determine the content of and if necessary re-calculate the *B*-factor field are incorporated in the BDB (Touw & Vriend, 2014). RABDAM incorporates a regularly updated list of accession codes of PDB structures deposited with full isotropic *B*-factors that has been downloaded from the BDB; the program will flag a warning if the user specifies an accession code that is not on this list for RABDAM analysis.\n\nThe *B*net metric is a derivative of the (per-atom) *B*Damage metric that summarises in a single value the total extent of specific radiation damage suffered by an MX structure. One of the best-characterised chemical changes resulting from specific radiation damage that occurs within proteins\\* is the decarboxylation of Glu and Asp residues; the *B*net metric is calculated from a kernel density estimate of the *B*Damage values of a structure\u2019s Glu and Asp side chain oxygen atoms as the ratio of the area under the curve either side of the median of the (overall) *B*Damage distribution.\n\n(\\* An equivalent of this protein-specific *B*net metric for nucleic acids is currently being developed - see the program description above.)\n\nThe method of calculating the *B*net value for a protein structure is summarised in the diagram below:\n\n___\n\n![Images/Bnet_calculation.png](Images/Bnet_calculation.png)\nThe *B*net metric is calculated as the ratio of the area either side of the median (of the overall *B*Damage distribution) underneath a kernel density estimate of the *B*Damage values of the terminal oxygen atoms of Glu and Asp residues.\n\n___\n\nRABDAM will calculate the values of the *B*Damage and *B*net metrics for any standard format PDB or mmCif file to identify potential individual sites, plus the total extent, of specific radiation damage within the structure.\n\n___\n\n## Usage\n#### Installation\n1. RABDAM can be downloaded / cloned from GitHub. You can then either run RABDAM as a script from the RABDAM directory, or alternatively you can install RABDAM as a package (which can be run from any directory) by navigating to the RABDAM directory and executing:
\n`python setup.py install`
\n\n2. RABDAM can be installed (as a package) directly from [PyPi](https://pypi.python.org/pypi/rabdam) with `pip`:
\n`pip install rabdam`
\n\n3. RABDAM is incorporated as part of the [CCP4 software suite](http://www.ccp4.ac.uk/). It is currently available as a command line package, and will shortly be incorporated into the GUI.\n\n___\n\n#### System requirements\nRABDAM supports both Python 2 and Python 3. In addition, it is dependent upon the following packages / programs that are not included in the [Anaconda Python distribution](https://www.continuum.io/downloads) (release 4.3.0 onwards):\n\n-\tThe [CCP4 software suite](http://www.ccp4.ac.uk/) (RABDAM has a dependency on the CCP4 suite program PDBCUR)\n\nTo check whether your computer is missing any of the packages / programs required to run RABDAM, execute:\n\n`python rabdam.py --dependencies`\n\n\\*\\***NOTE:** Owing to its PDBCUR dependence, RABDAM can only be run in a terminal / command prompt in which CCP4 programs can also be run (*e.g.* the CCP4 console).\\*\\*\n\nRABDAM will take approximately 1 min to run a 200 kDa structure on a single processor (as estimated from tests performed under a Macintosh Operating System on a 1.8 GHz Intel Core i5 processor). It is compatible with Windows, Macintosh and Linux operating systems.\n\n___\n\n#### Data requirements\nRABDAM can be run on any standard format PDB or mmCif file of a single model of your MX structure of interest (specifically, it requires the CRYST1 and, if present, the SSBOND lines from the header information, as well as the ATOM / HETATM records). Note however that because *B*Damage is a per-atom metric, it should only be calculated for structures for which *B*-factor values have been refined per-atom. Furthermore, owing to the correlation between *B*-factor and occupancy values, the only non-ligand atoms subject to occupancy refinement should be those in alternate conformers (whose occupancy should sum to 1).\n\n____\n\n#### Running RABDAM\n\\*\\*RABDAM can be run either as a script or as a package (see the [Installation](#installation) section for further details). The example commands provided below are for running the program as a script. If you are running RABDAM as a package (either the PyPi or CCP4 package), simply replace `python rabdam.py` with `rabdam`.\\*\\*\n\nRABDAM is a command line program. There are four main command line flags that control the program run:\n\n-\t`-i` / `--input`\n-\t`-f` / `--pdb_file`\n-\t`-r` / `--run`\n-\t`-o` / `--output`\n\n

\nThe `-i` and `-f` flags control the input to the program. One of these two mutually exclusive flags is required for RABDAM to run.\n\nThe `-i` flag is used to specify the name of the input txt file that lists your selected program parameter values (see the \"*Constructing an input file*\" section below for details of what this input file should include). If the input file is located in the same directory as the rabdam.py script, you only need provide the file name to run RABDAM:\n\n`python rabdam.py -i input_file.txt`\n\nOtherwise however you will need to provide its absolute file path:\n\n`python rabdam.py -i path/to/input_file.txt`\n\nAlternatively, if you wish to perform a run of RABDAM using entirely default parameter values, it is possible to run RABDAM without an input file; in this case the `-f` flag is used to provide RABDAM with either a 4 character PDB accession code (XXXX), or an absolute file path (path/to/pdb_file.pdb or path/to/mmcif_file.cif), of the MX structure to be analysed:\n\n`python rabdam.py -f XXXX` / `python rabdam.py -f path/to/pdb_file.pdb` / `python rabdam.py -f path/to/mmcif_file.cif`\n\nIt is possible to specify more than one PDB and / or mmCif files for analysis following the `-f` flag, *e.g.*:\n\n`python rabdam.py \u2013f path/to/pdb_file_1.pdb path/to/mmcif_file_2.cif path/to/pdb_file_3.pdb`\n\nImportantly, note that when using the `-f` flag, the supplied file path(s) must not contain any spaces. (This restriction does not apply when specifying file path(s) within an input txt file however.)\n\n

\nThe `-r` and `-o` flags control the output from the program. Both of these flags are optional.\n\nThe `-r` flag can be used to instruct RABDAM to run to completion (default), or to stop / start part way through its full run. RABDAM is structured such that it writes the *B*Damage values calculated for an input MX structure to a dataframe; this dataframe is then used to write the program output files. Through use of the `-r` flag it is possible to instruct RABDAM to stop (`-r df` / `-r dataframe`) or start (`-r analysis`) its run following dataframe construction. This option will save time if for example you wish to change the formatting of the program output files (which can be controlled using parameters specified in the input txt file - see the \u201c*Constructing an input file*\u201d section below) without changing the *B*Damage distribution itself.\n\nThe `-o` flag can be used to control the selection of output files that the program writes. By default RABDAM writes 6 output files, specified by the following 5 keywords:\n\n- `kde` : a kernel density estimate of the distribution of *B*Damage values calculated for the input MX structure\n- `bdam` : a PDB file in which the *B*-factor column of the ATOM (/ HETATM) records is replaced by ln(*B*Damage) values (thus allowing the structure to be uniformly coloured by *B*Damage using molecular graphics software such as PyMol, CCP4mg, *etc*), plus an mmCif file in which a column of *B*Damage values is appended to the ATOM (/ HETATM) records (located between the *B*-factor and element columns)\n- `csv` : a csv file listing the properties (both those in the input PDB / mmCif file and those calculated by RABDAM) of all atoms in the input MX structure included in the *B*Damage analysis\n- `bnet` : a kernel density estimate of the *B*Damage values of the terminal oxygen atoms of Glu and Asp residues, plus the value of the (protein-specific) *B*net value calculated from this distribution (see the \u201c*Background*\u201d section)\n- `summary` : an html file summarising the results presented in the above 5 output files\n\nIt is possible to control which of these output files RABDAM writes using the `-o` flag plus the keyword names of the output files (which are highlighted in the list above), listed in any order. For example, to obtain the csv and *B*net output files, execute:\n\n`python rabdam.py \u2013o csv bnet` (/ `python rabdam.py -o bnet csv`)\n\nNote that if you direct RABDAM to write the summary html file (`python rabdam.py -o summary`) then RABDAM will also write the kde and bnet files. This is because in order for the summary html file to be able to display these graphs, the graphs need to be saved to the local machine.\n\n

\nIn addition, there are two supplementary command line flags:\n\n- `-h` / `--help`\n- `--dependencies`\n\nThe `-h` flag displays a help message in the terminal / command prompt listing the different command line flags that can / must be specified when running RABDAM. The `--dependencies` flag directs the program to test whether the system it is being run on has the necessary programs / Python packages installed for RABDAM to run to completion.\n\n___\n\n#### Writing the RABDAM input file\nIf you wish to run RABDAM with non-default parameter values, you will need to provide the program with an input file specifying your selected parameter values. RABDAM takes (in any order) 16 input parameters (stipulated by the italicised keywords):\n\n- The name of the PDB / mmCif file(s) to be analysed\n\nEither a 4 character PDB accession code, or an absolute file path (which may contain spaces). It is possible to run multiple structures from a single input file by listing the names of each of those structures separated by commas (see below). This is the only parameter not stipulated by a keyword, and which does not have a default value.\n\n-\tThe output directory, *dir*\n\nThe location of the directory (specified by its absolute file path) in which you would like the program output files to be written. If not specified, this defaults to the current working directory.\n\n- Option to ignore errors encountered during batch runs, *batchContinue*\n\nDirects the program, if it encounters a recognised program error during a batch run, to either skip to the next structure in the list (\"*True*\") or to terminate (\"*False*\", default behaviour).\n\n- Option to overwrite pre-existing files with the same name as the new output files, *overwrite*\n\nDirects the program, if it encounters files of the same name as the output files it is going to write already present in the output directory, to always overwrite these pre-existing files (\"*True*\"), or to ask the user for a decision for each case encountered (\"*False*\", default behaviour).\n\n-\tThe packing density threshold, *PDT*\n\nThe packing density of an atom is calculated as the number of atoms within a sphere of radius *PDT* \u00c5. Its default value is 7, but it is possible to set it equal to any value (measured in \u00c5). **Do not change the value of this parameter unless you know what you are doing!**\n\n- The sliding window size, *windowSize*\n\nThe size (as a percentage of the total number of atoms included in the *B*Damage analysis) of the sliding window used to group atoms in a similar packing density environment for *B*Damage calculation. Its default value is 0.02 (2%), however it can take any value \u2264 1 (100%). **Do not change the value of this parameter unless you know what you are doing!**\n\n-\tOption to remove HETATM, *HETATM*\n\nSpecifies whether you want to include (\u201c*Keep*\u201d) / exclude (\u201c*Remove*\u201d) HETATM in / from the *B*Damage calculation. Owing to the difference in the *B*-factor to packing density ratios of HETATM as compared to ATOM, by default this parameter is set to \u201c*Remove*\u201d. **Do not change the value of this parameter unless you know what you are doing!**\n\n-\tOption to retain only protein / nucleic acid atoms, *proteinOrNucleicAcid*\n\nSpecifies whether to include protein atoms (\u201c*Protein*\u201d) or nucleic acid atoms (\u201c*Nucleic Acid*\u201d / \u201c*NA*\u201d) in the *B*Damage calculation. Owing to the difference in the *B*factor to packing density ratios of these two ATOM types, it is highly recommended that they are analysed separately. By default this parameter is set to \u201c*Protein*\u201d. **Currently whilst the program is under development to incorporate nucleic acids analysis this parameter cannot be altered from its default value.**\n\n-\tOption to remove atoms from the *B*Damage calculation, *removeAtoms*\n\nAllows the removal of individual atoms (specified either by their atom serial number or by their residue type) from the *B*Damage calculation (by default no atoms are removed using this parameter). For convenience when writing the input file, it is possible to specify multiple atoms at once (see the guidelines below for providing multiple values for the same parameter). This parameter is useful to allow removal of atoms with anomalously high / low *B*-factors, as for example occurs when amino acid side chains are modelled in the absence of electron density. **Do not change the value of this parameter unless you know what you are doing!**\n\n-\tOption to add atoms in to the *B*Damage calculation, *addAtoms*\n\nAllows the addition of individual atoms (specified either by their atom serial number or by their residue type) to the *B*Damage calculation (by default no atoms are added using this parameter). (Note however that the same atom cannot be considered more than once in the *B*Damage calculation.) For convenience when writing the input file, it is possible to specify multiple atoms at once (see the guidelines below for providing multiple values for the same parameter). **Do not change the value of this parameter unless you know what you are doing!**\n\n-\tOption to highlight atoms on the kernel density estimate of the *B*Damage distribution, *highlightAtoms*\n\nHighlights the *B*Damage values of specified atoms on the output kernel density estimate (by default no atoms are highlighted). Atoms are specified by their serial numbers as listed in the input PDB / mmCif file provided to RABDAM. It is possible to highlight multiple atoms at once (see the guidelines below for providing multiple values for the same parameter); note however that it is recommended no more than 6 atoms are specified at once (beyond 6 atoms the graph colour scheme will repeat itself, furthermore the complete key might not fit onto the plot).\n\n-\tOption to create a copy of the initial PDB file, *createOrigpdb*\n\nWrites a copy of the initial PDB file (which is either provided to the program directly, or is obtained via conversion of the input mmCif file) to the output directory when set to \"*True*\" (by default this parameter is set to \"*False*\").\n\n-\tOption to create a PDB file of the filtered asymmetric unit, *createAUpdb*\n\nWrites a PDB file of the filtered (to remove hydrogen atoms, 0 occupancy atoms and alternate conformers) asymmetric unit coordinates to the output directory when set to \"*True*\" (by default this parameter is set to \"*False*\").\n\n-\tOption to create a PDB file of the unit cell, *createUCpdb*\n\nWrites a PDB file of the unit cell coordinates to the output directory when set to \"*True*\" (by default this parameter is set to \"*False*\").\n\n-\tOption to create a PDB file of the 3x3x3 unit cell assembly, *createAUCpdb*\n\nWrites a PDB file of the 3x3x3 unit cell assembly coordinates to the output directory when set to \"*True*\" (by default this parameter is set to \"*False*\").\n\n-\tOption to create a PDB file of the trimmed unit cell assembly, *createTApdb*\n\nWrites a PDB file of the trimmed 3x3x3 unit cell assembly coordinates to the output directory when set to \"*True*\" (by default this parameter is set to \"*False*\").\n\n**Note that if a parameter is not specified in the input file, it will take its default value in the RABDAM run.**\n\n

\nIn order for RABDAM to successfully parse in an input file, it must comply with the following formatting guidelines:\n\n-\tKeywords and their associated values must be separated by \u201c=\u201d. Successive keyword / value pairs must be separated by \u201c,\u201d.\n-\tMultiple values for the same keyword must be separated by \u201c;\u201d. Alternatively, it is possible to specify a range of consecutive (numerical) values by providing the minimum and maximum values of the range separated by \u201c-\u201d. So, you could direct RABDAM to highlight atoms 2, 3 and 4 on the output *B*Damage kernel density estimate via either *highlightAtoms=2;3;4* or *highlightAtoms=2-4*.\n\nBelow is an example input file instructing RABDAM to analyse the lysozyme structures 4H8X and 4H9I, writing the output files to the directory C:\\Users\\UserName\\Documents\\RABDAM_test_output, and highlighting atoms 14, 15, 16 and 30 on the output *B*Damage kernel density estimate. All other parameters are set to their default values. This example input file (\"*example_input.txt*\") is provided along with the RABDAM Python scripts that can be downloaded from this web page.\n\n```\n4H8X, 4H9I,\ndir=C:\\Users\\UserName\\Documents\\RABDAM_test_output,\nbatchContinue=False,\noverwrite=False,\nPDT=7,\nwindowSize=0.02,\nHETATM=Remove,\nproteinOrNucleicAcid=Protein,\naddAtoms=,\nremoveAtoms=,\nhighlightAtoms=14-16;30,\ncreateOrigpdb=False,\ncreateAUpdb=False,\ncreateUCpdb=False,\ncreateAUCpdb=False,\ncreateTApdb=False\n```\n\n___\n\n## Queries\nPlease email kathryn.l.shelley@gmail.com.\n\n___\n\n## Contributors\n- Kathryn Shelley\n- Tom Dixon\n- Jonny Brooks-Bartlett\n\nThis software was developed in the lab of Professor Elspeth Garman at the University of Oxford.\n\n___\n\n## Citing RABDAM\nThe RABDAM software is described in:\n\n- Shelley KL, Dixon TPE, Brooks-Bartlett JC, Garman EF (2018) RABDAM: quantifying specific radiation damage in individual protein crystal structures. *J Appl Cryst* **51**: 552-559\n[https://doi.org/10.1107/S1600576718002509](https://doi.org/10.1107/S1600576718002509)\n\nPlease cite this paper if you use RABDAM to analyse specific radiation damage in your MX structure.\n\n

\nThe *B*Damage metric is defined and validated in:\n\n- Gerstel M, Deane CM, Garman EF (2015) Identifying and quantifying radiation damage at the atomic level. *J Synchrotron Radiat* **22**: 201-212. [https://doi.org/10.1107/S1600577515002131](https://doi.org/10.1107/S1600577515002131)\n\n

\nRABDAM is dependent upon the CCP4 suite program PDBCUR:\n\n- Winn MD, Ballard CC, Cowtan KD, Dodson EJ, Emsley P, Evans PR, Keegan RM, Krissinel EB, Leslie AGW, McCoy A, McNicholas SJ, Murshudov GN, Pannu NS, Potterton EA, Powell HR, Read RJ, Vagin A, Wilson KS (2011) Overview of the CCP4 suite and current developments. *Acta Crystallogr D* **67**: 235-242\n[https://doi.org/doi:10.1107/S0907444910045749](https://doi.org/doi:10.1107/S0907444910045749)\n\n

\nRABDAM extracts a list of PDB accession codes with full isotropic (\\*but not necessarily atomic) *B*-factors from the *B*-factor Databank:\n\n- Touw WG, Vriend G (2014) BDB: Databank of PDB files with consistent *B*-factors. *Protein Eng Des Sel* **27**: 457-462\n[https://doi.org/10.1093/protein/gzu044](https://doi.org/10.1093/protein/gzu044)\n\nSee also [https://github.com/cmbi/bdb](https://github.com/cmbi/bdb).\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/GarmanGroup/RABDAM", "keywords": "radiation damage,specific damage,atomic Bfactors,atomic displacement parameters,BDamage,Bnet", "license": "LGPL v3", "maintainer": "", "maintainer_email": "", "name": "rabdam", "package_url": "https://pypi.org/project/rabdam/", "platform": "", "project_url": "https://pypi.org/project/rabdam/", "project_urls": { "Homepage": "https://github.com/GarmanGroup/RABDAM" }, "release_url": "https://pypi.org/project/rabdam/1.4.1/", "requires_dist": [ "numpy", "matplotlib", "seaborn", "pandas", "requests", "setuptools" ], "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, <4", "summary": "RABDAM: A program to identify and quantify specific radiation damage within individual protein crystal structures", "version": "1.4.1" }, "last_serial": 4308183, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "2f572e5dfd6eb83501bbefdff8dae545", "sha256": "1a68f2055f65f946c88ea1c149936ed52ac59b9f24421caff376aef971b1568f" }, "downloads": -1, "filename": "rabdam-1.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2f572e5dfd6eb83501bbefdff8dae545", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6", "size": 364112, "upload_time": "2018-02-03T21:57:34", "url": "https://files.pythonhosted.org/packages/f6/ff/7671ddb8058c9a1986192319de0e2a9a15b8950afba983a493e3f36d4576/rabdam-1.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "19c5efe84407ab865da5befa293aa816", "sha256": "effc8152689f88ce0108ef32f2b22156fde9833710feeaee8438bea7f858f167" }, "downloads": -1, "filename": "rabdam-1.0.0.tar.gz", "has_sig": false, "md5_digest": "19c5efe84407ab865da5befa293aa816", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 365357, "upload_time": "2018-02-03T21:57:36", "url": "https://files.pythonhosted.org/packages/0b/7b/812c8273ee8bdba3828374ae2572c3b9d1bd839fdb3ddfc70d32386e829a/rabdam-1.0.0.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "ac3a503bdedff98fac8c8c1f450d1613", "sha256": "00373b9bf265b40c3bb01f1aafad75eaf29b2adf5af1a59767dd7cc28d011ec1" }, "downloads": -1, "filename": "rabdam-1.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ac3a503bdedff98fac8c8c1f450d1613", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, <4", "size": 364778, "upload_time": "2018-04-10T21:07:17", "url": "https://files.pythonhosted.org/packages/1a/d2/8541abc8cf5d4b66b374f4dffe9d079e72611b17e174c0543d55b0dc1840/rabdam-1.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "18c1766e94c1be99a708171aab11e5d6", "sha256": "a8fe6a4039fa97c15d9be3f8fc3183d27495cc665a4262b8993e8f818ac20572" }, "downloads": -1, "filename": "rabdam-1.1.0.tar.gz", "has_sig": false, "md5_digest": "18c1766e94c1be99a708171aab11e5d6", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, <4", "size": 543392, "upload_time": "2018-04-10T21:07:18", "url": "https://files.pythonhosted.org/packages/aa/22/7f7008302b91c57fcd7c2ca039a481216bf78fd23a32f337d7d0d892f973/rabdam-1.1.0.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "724199a984645cf8525c785d8edb352c", "sha256": "bf4e987a15f812163df68319aaa2e887fca3d04b3703049d0bb29d5f4cda5f35" }, "downloads": -1, "filename": "rabdam-1.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "724199a984645cf8525c785d8edb352c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, <4", "size": 365077, "upload_time": "2018-04-15T15:03:15", "url": "https://files.pythonhosted.org/packages/20/da/5e565a8d8a8ea80c6caaebe9bd37adf815cfa1e89a2a213384a8507ebb25/rabdam-1.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9380f2f672edad66033d1cedb12df00c", "sha256": "8344699be578ece781fbf111e6e2419959e7713e5b0beceededea09a1486c0ac" }, "downloads": -1, "filename": "rabdam-1.2.0.tar.gz", "has_sig": false, "md5_digest": "9380f2f672edad66033d1cedb12df00c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, <4", "size": 373818, "upload_time": "2018-04-15T15:03:21", "url": "https://files.pythonhosted.org/packages/5c/ad/f6c0d815e2a6aed36c2235976a981cc19090ae7621249f724d41fa85bc77/rabdam-1.2.0.tar.gz" } ], "1.4.0": [ { "comment_text": "", "digests": { "md5": "90af36f96fea28defb8b1bf0cdebd81f", "sha256": "c8dd76950a66001ccd0b819ef4e4c7fb44872d12523ee993ce5bae0e163f8945" }, "downloads": -1, "filename": "rabdam-1.4.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "90af36f96fea28defb8b1bf0cdebd81f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, <4", "size": 375461, "upload_time": "2018-09-25T08:58:09", "url": "https://files.pythonhosted.org/packages/9d/7d/c171881e3cca020786c1d71b099bff17104161521bc9e0b1d577bac948c8/rabdam-1.4.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "475369d46ef872401223f830a108734a", "sha256": "ef8fd457ebf678be90bae63c8152d074f1ae65932de92c66bedc51b53aba37b6" }, "downloads": -1, "filename": "rabdam-1.4.0.tar.gz", "has_sig": false, "md5_digest": "475369d46ef872401223f830a108734a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, <4", "size": 393892, "upload_time": "2018-09-25T08:58:11", "url": "https://files.pythonhosted.org/packages/85/eb/f51b045698afd5565b326a6a530f03f2861c654e7fe00c1559e809a5f4fd/rabdam-1.4.0.tar.gz" } ], "1.4.1": [ { "comment_text": "", "digests": { "md5": "135ae4af9b3faa96adac11628663545c", "sha256": "7569ec1ebe0adfd56045563bf2816990115fe1876b5a9438c8607766df370cff" }, "downloads": -1, "filename": "rabdam-1.4.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "135ae4af9b3faa96adac11628663545c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, <4", "size": 375728, "upload_time": "2018-09-25T11:21:56", "url": "https://files.pythonhosted.org/packages/f9/69/5bbb6f96df46a9ec0d30f8b2a587252675b0593a6c2f22925446e5bd0ecb/rabdam-1.4.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "21634953271dd39003aac2b011a0794e", "sha256": "a7ff51540526d855cb7fa20f338b75c3d27f98bddfd4fc680d026c44932062d2" }, "downloads": -1, "filename": "rabdam-1.4.1.tar.gz", "has_sig": false, "md5_digest": "21634953271dd39003aac2b011a0794e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, <4", "size": 394482, "upload_time": "2018-09-25T11:21:58", "url": "https://files.pythonhosted.org/packages/0c/d3/e0dd2ba179915936550eb468f91c3fa6fc5194ea1af7057fbc52c15d0f19/rabdam-1.4.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "135ae4af9b3faa96adac11628663545c", "sha256": "7569ec1ebe0adfd56045563bf2816990115fe1876b5a9438c8607766df370cff" }, "downloads": -1, "filename": "rabdam-1.4.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "135ae4af9b3faa96adac11628663545c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, <4", "size": 375728, "upload_time": "2018-09-25T11:21:56", "url": "https://files.pythonhosted.org/packages/f9/69/5bbb6f96df46a9ec0d30f8b2a587252675b0593a6c2f22925446e5bd0ecb/rabdam-1.4.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "21634953271dd39003aac2b011a0794e", "sha256": "a7ff51540526d855cb7fa20f338b75c3d27f98bddfd4fc680d026c44932062d2" }, "downloads": -1, "filename": "rabdam-1.4.1.tar.gz", "has_sig": false, "md5_digest": "21634953271dd39003aac2b011a0794e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, <4", "size": 394482, "upload_time": "2018-09-25T11:21:58", "url": "https://files.pythonhosted.org/packages/0c/d3/e0dd2ba179915936550eb468f91c3fa6fc5194ea1af7057fbc52c15d0f19/rabdam-1.4.1.tar.gz" } ] }