{ "info": { "author": "Jake TM Pearce", "author_email": "", "bugtrack_url": null, "classifiers": [ "Intended Audience :: Science/Research", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Scientific/Engineering :: Bio-Informatics", "Topic :: Scientific/Engineering :: Visualization" ], "description": "# pyCompare \n\n[![Build Status](https://travis-ci.org/jaketmp/pyCompare.svg?branch=master)](https://travis-ci.org/jaketmp/pyCompare) [![codecov](https://codecov.io/gh/jaketmp/pyCompare/branch/master/graph/badge.svg)](https://codecov.io/gh/jaketmp/pyCompare) ![PyPI - Python Version](https://img.shields.io/pypi/pyversions/pyCompare.svg) [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.1238915.svg)](https://doi.org/10.5281/zenodo.1238915) [![PyPI](https://img.shields.io/pypi/v/pyCompare.svg)](https://pypi.org/project/pyCompare/) [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/jaketmp/pyCompare/master?filepath=pyCompare-Demo.ipynb)\n\n\n\nA Python module for generating [Bland-Altman](https://en.wikipedia.org/wiki/Bland\u2013Altman_plot) plots to compare two sets of measurements.\n\nYou can try out the code using [Binder](https://mybinder.org/v2/gh/jaketmp/pyCompare/master?filepath=pyCompare-Demo.ipynb).\n\n\n\n## Installation\n\nTo install _via_ [pip](https://pypi.org/project/pyCompare/), run:\n\n pip install pyCompare\n\nInstallation with pip allows the usage of the uninstall command:\n\n pip uninstall pyCompare\n\n\n## Documentation\n\n### blandAltman( )\n\n blandAltman(data1, data2,\n limitOfAgreement=1.96,\n confidenceInterval=95,\n confidenceIntervalMethod='approximate',\n detrend=None,\n percentage=False,\n **kwargs)\n\nGenerate a Bland-Altman plot to compare two sets of measurements of the same value.\n\n`data1` and `data2` should be 1D numpy arrays of equal length containing the paired measurements.\n\nIf not `None` plot confidence interval over the *x*% range with `confidenceInterval=x`\n\nConfidence intervals on the mean difference and limit of agreement may be calculated using:\n- 'exact paired' uses the exact paired method described by Carkeet\n- 'approximate' uses the approximate method described by Bland & Altman\n\nThe 'exact paired' method will give more accurate confidence intervals on the limits of agreement when the number of paired measurements is low (approx < 100), at the expense of much slower plotting time.\n\nThe *detrend* parameter supports the following options:\n- ``None`` do not attempt to detrend data - plots raw values\n- 'Linear' attempt to model and remove a multiplicative offset between each assay by linear regression\n- 'ODR' attempt to model and remove a multiplicative offset between each assay by orthogonal distance regression\n\n'ODR' is the recommended method if you do not use ``None``.\n\nWhen `True`, the `percentage` option plots the difference between methods as a percentage, instead of in the units the methods were measured in.\n\nPlots are displayed using the current matplotlib backend by default, or may be saved with the `savePath=` argument.\n\nWhen saving, png format graphics are saved by default:\n\n blandAltman(data1, data2,\n savePath='SavedFigure.png')\n\nThe save format type can be chosen from those known by [matplotlib](https://matplotlib.org/api/_as_gen/matplotlib.pyplot.savefig.html) with the `figureFormat=` argument:\n\n blandAltman(data1, data2,\n savePath='SavedFigure.svg',\n figureFormat='svg)\n\n#### References\n\nTo cite `pyCompare`, use the Zendo DOI: [10.5281/zenodo.1238915](https://doi.org/10.5281/zenodo.1238915).\n\n- Altman, D. G., and Bland, J. M. \u201cMeasurement in Medicine: The Analysis of Method Comparison Studies\u201d Journal of the Royal Statistical Society. Series D (The Statistician), vol. 32, no. 3, 1983, pp. 307\u2013317. [JSTOR](https://www.jstor.org/stable/2987937).\n- Altman, D. G., and Bland, J. M. \u201cMeasuring agreement in method comparison studies\u201d Statistical Methods in Medical Research, vol. 8, no. 2, 1999, pp. 135\u2013160. [DOI](https://doi.org/10.1177/096228029900800204).\n- Carkeet, A. \"Exact Parametric Confidence Intervals for Bland-Altman Limits of Agreement\" Optometry and Vision Science, vol. 92, no 3, 2015, pp. e71\u2013e80 [DOI](https://doi.org/10.1097/OPX.0000000000000513).\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/jaketmp/pyCompare", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "pyCompare", "package_url": "https://pypi.org/project/pyCompare/", "platform": "", "project_url": "https://pypi.org/project/pyCompare/", "project_urls": { "Homepage": "https://github.com/jaketmp/pyCompare" }, "release_url": "https://pypi.org/project/pyCompare/1.4.0/", "requires_dist": [ "numpy (>=1.14.2)", "scipy (>=1.0.1)", "matplotlib (>=3.0.2)" ], "requires_python": "", "summary": "Bland-Altman plots for Python", "version": "1.4.0" }, "last_serial": 5786517, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "948e95ad54763eb029178fe72d823e20", "sha256": "a762a0505647e30fa4e62372c9c07aa8d512b984ccaeea423455d6797dcf1f2c" }, "downloads": -1, "filename": "pyCompare-1.0.0.tar.gz", "has_sig": false, "md5_digest": "948e95ad54763eb029178fe72d823e20", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5692, "upload_time": "2018-05-01T14:10:38", "url": "https://files.pythonhosted.org/packages/d8/50/9418e8f8d8efcb63d3ca231d292496377985b041e8738c5b4733107fb48e/pyCompare-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "3a5fb32c89313485ecff47611d27dae9", "sha256": "1febc9d8cd4861bac24393409866c84834adc291d3eee02a7109b2f334fadb4d" }, "downloads": -1, "filename": "pyCompare-1.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "3a5fb32c89313485ecff47611d27dae9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6271, "upload_time": "2018-05-01T17:44:33", "url": "https://files.pythonhosted.org/packages/d4/f5/e27624481743a532c41387b42c2ae6d734eb19a0afae551811ba18f2b745/pyCompare-1.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b41bcdbe9fefebbfaa7662df4ef39d87", "sha256": "8a35ac2deef21fd61b4cb0974204d179742688a347bbef7f0d74a055cbe99373" }, "downloads": -1, "filename": "pyCompare-1.0.1.tar.gz", "has_sig": false, "md5_digest": "b41bcdbe9fefebbfaa7662df4ef39d87", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5659, "upload_time": "2018-05-01T17:44:34", "url": "https://files.pythonhosted.org/packages/ea/0c/5af9d2bd1c0c326e92a11fe178a812e903c08d325c8dd915076f67826704/pyCompare-1.0.1.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "62afbfd75f759fa1187e46522bcf4d3f", "sha256": "675c1dfdd0a36cd65ba7d6df38d6ae99ce79197a276b874a8142beae5013d704" }, "downloads": -1, "filename": "pyCompare-1.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "62afbfd75f759fa1187e46522bcf4d3f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6473, "upload_time": "2018-05-02T14:40:14", "url": "https://files.pythonhosted.org/packages/1c/a9/710c33c3a4976020f88d228da5e3b03cca85b587099d83d7023b07ed2e04/pyCompare-1.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "304b8c2f9d50aa03839c1e1f20925a06", "sha256": "c66e0277e722d66160da72b35516bcd358fdbcebddc8026d4a67e8594f998f57" }, "downloads": -1, "filename": "pyCompare-1.1.0.tar.gz", "has_sig": false, "md5_digest": "304b8c2f9d50aa03839c1e1f20925a06", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5880, "upload_time": "2018-05-02T14:40:15", "url": "https://files.pythonhosted.org/packages/f4/cb/0a599f603291361d538bea508162e0283b5d707c12db362cdd461326bfe7/pyCompare-1.1.0.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "85e1f24655b351dd536ba7ae061b77fa", "sha256": "2b31c42009e4e0d3f62afdbd494d5d0f2ceceb1984938c2cdb2ec3d1dff6c851" }, "downloads": -1, "filename": "pyCompare-1.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "85e1f24655b351dd536ba7ae061b77fa", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7325, "upload_time": "2018-05-30T20:28:24", "url": "https://files.pythonhosted.org/packages/a4/fd/4820d42c2bc6e284b3cc044fa35c6c114592430d945958350bb8d3c978ad/pyCompare-1.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d381e4ba944405e9a0832a0be103df7d", "sha256": "97216c761621c44ef89882025a1124d680054e5df57be074ec394e29a0904288" }, "downloads": -1, "filename": "pyCompare-1.2.0.tar.gz", "has_sig": false, "md5_digest": "d381e4ba944405e9a0832a0be103df7d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6603, "upload_time": "2018-05-30T20:28:25", "url": "https://files.pythonhosted.org/packages/bc/7c/9d68d5060dbcb9af2eae4ed1a9117f55b832b0ebe6df7c3421549b0a7837/pyCompare-1.2.0.tar.gz" } ], "1.2.2": [ { "comment_text": "", "digests": { "md5": "a6be210071c94b160ce1da06d8b32474", "sha256": "893792a3e93ab6999c6580bd1ea502c5daa332ab290022f9be5d79d4f3ca37fc" }, "downloads": -1, "filename": "pyCompare-1.2.2-py3-none-any.whl", "has_sig": false, "md5_digest": "a6be210071c94b160ce1da06d8b32474", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7370, "upload_time": "2018-07-10T09:03:33", "url": "https://files.pythonhosted.org/packages/a9/8a/ebbfe905df3e106feba026d5d2befcfe0daa20ddbea7daa7b622049258d0/pyCompare-1.2.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "55b1ad877d348cf86dde698f16967850", "sha256": "06481196a3d4e8139ea40697093fdc7ad91a9e313247574d1de83897118895ef" }, "downloads": -1, "filename": "pyCompare-1.2.2.tar.gz", "has_sig": false, "md5_digest": "55b1ad877d348cf86dde698f16967850", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6715, "upload_time": "2018-07-10T09:03:34", "url": "https://files.pythonhosted.org/packages/04/37/5b79433fd00c0b6a7fbeafafa301fd66f2a860e722e5c791dbe404abaa90/pyCompare-1.2.2.tar.gz" } ], "1.2.3": [ { "comment_text": "", "digests": { "md5": "07253f5884afc6a7d05da14fedfbb1a1", "sha256": "1012a9cf46daa2594934a538d7e100ac44dd297eaf57749c9efc594f14167bad" }, "downloads": -1, "filename": "pyCompare-1.2.3-py3-none-any.whl", "has_sig": false, "md5_digest": "07253f5884afc6a7d05da14fedfbb1a1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8903, "upload_time": "2018-11-13T08:24:13", "url": "https://files.pythonhosted.org/packages/1a/bd/faac5d23136c54e63b2af722eacc46fa45bb8fc57cb5c72c08395065bacc/pyCompare-1.2.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "89b23de4bfd9436381623d6e55c9c136", "sha256": "1920d503cdb8ceb669319198d5e92eccc0ddd1e42d850d1a0c3551383fbc65ca" }, "downloads": -1, "filename": "pyCompare-1.2.3.tar.gz", "has_sig": false, "md5_digest": "89b23de4bfd9436381623d6e55c9c136", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7033, "upload_time": "2018-11-13T08:24:15", "url": "https://files.pythonhosted.org/packages/b7/14/4901a1ae12f6404590b4046d30e6a385fbedcac6d84b3d1aa8b7d5ef316a/pyCompare-1.2.3.tar.gz" } ], "1.3.1": [ { "comment_text": "", "digests": { "md5": "bf568b2d3535e125181b2a50b4443488", "sha256": "4a659fd9f24539089eff7a856809ec295becd4067559aa4608ea95150053a923" }, "downloads": -1, "filename": "pyCompare-1.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "bf568b2d3535e125181b2a50b4443488", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9268, "upload_time": "2019-06-06T16:02:53", "url": "https://files.pythonhosted.org/packages/e9/8f/d3fba727624b9754c3721314a6cffafce240cc1faa1dada358488bc39541/pyCompare-1.3.1-py3-none-any.whl" } ], "1.3.2": [ { "comment_text": "", "digests": { "md5": "cb04ee70470369d5a921553c2fb33e3b", "sha256": "3c8b41b8c05c23de23411ef5c5f33681f260314fe47e2cff297f9c4c2eec2d91" }, "downloads": -1, "filename": "pyCompare-1.3.2-py3-none-any.whl", "has_sig": false, "md5_digest": "cb04ee70470369d5a921553c2fb33e3b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9446, "upload_time": "2019-07-12T13:12:36", "url": "https://files.pythonhosted.org/packages/b4/ff/06f28c19ffc732fdb018d4e650f3235f8f7dbf570864bdf38909cf39db76/pyCompare-1.3.2-py3-none-any.whl" } ], "1.3.3": [ { "comment_text": "", "digests": { "md5": "f698c76d739d10bcda1c3e10eaab3819", "sha256": "96b3b2ede951d27615d9bb5115840e1aa5485a9be71b639d1d41df2f7b37757a" }, "downloads": -1, "filename": "pyCompare-1.3.3-py3-none-any.whl", "has_sig": false, "md5_digest": "f698c76d739d10bcda1c3e10eaab3819", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10833, "upload_time": "2019-07-12T14:12:59", "url": "https://files.pythonhosted.org/packages/bd/36/9b5c6a055fbc532f7f870338a511dbd3fcc2935e1fb7e513ae23767e6c4e/pyCompare-1.3.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "28a22cc2061bf694fd5c7e8f3afa8cb4", "sha256": "916ca7d474a0c6aff87320d7324516f82d48219a884137b39c794ac60e6f9212" }, "downloads": -1, "filename": "pyCompare-1.3.3.tar.gz", "has_sig": false, "md5_digest": "28a22cc2061bf694fd5c7e8f3afa8cb4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8360, "upload_time": "2019-07-12T14:13:00", "url": "https://files.pythonhosted.org/packages/e4/9d/ee7312eaf46ef66bab511ee5ea2db03dc73160aac2c4749249cc379bf69d/pyCompare-1.3.3.tar.gz" } ], "1.4.0": [ { "comment_text": "", "digests": { "md5": "86f978c02d01d240d0247b599f43260d", "sha256": "548dc39bfdc7293bd3172cb4807e7ae89982b1ba02f9850076da5f3c7373eeb0" }, "downloads": -1, "filename": "pyCompare-1.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "86f978c02d01d240d0247b599f43260d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10990, "upload_time": "2019-09-05T13:21:18", "url": "https://files.pythonhosted.org/packages/f6/5e/f32f3796531eda1bfea62fe0994cfcc31bc8037aa331bbc74ef40ebeac04/pyCompare-1.4.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e9a8c22811bfc9a61dac857d0e3ada37", "sha256": "652bf1c467e2033360e0245e4a5242351d31b6f8bd11f737471ecd9dd0b645a6" }, "downloads": -1, "filename": "pyCompare-1.4.0.tar.gz", "has_sig": false, "md5_digest": "e9a8c22811bfc9a61dac857d0e3ada37", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9002, "upload_time": "2019-09-05T13:21:19", "url": "https://files.pythonhosted.org/packages/b1/61/358d0db0e304f47c22e454aad02ae1d467f479eb781ff13c1230f21ecc36/pyCompare-1.4.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "86f978c02d01d240d0247b599f43260d", "sha256": "548dc39bfdc7293bd3172cb4807e7ae89982b1ba02f9850076da5f3c7373eeb0" }, "downloads": -1, "filename": "pyCompare-1.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "86f978c02d01d240d0247b599f43260d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10990, "upload_time": "2019-09-05T13:21:18", "url": "https://files.pythonhosted.org/packages/f6/5e/f32f3796531eda1bfea62fe0994cfcc31bc8037aa331bbc74ef40ebeac04/pyCompare-1.4.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e9a8c22811bfc9a61dac857d0e3ada37", "sha256": "652bf1c467e2033360e0245e4a5242351d31b6f8bd11f737471ecd9dd0b645a6" }, "downloads": -1, "filename": "pyCompare-1.4.0.tar.gz", "has_sig": false, "md5_digest": "e9a8c22811bfc9a61dac857d0e3ada37", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9002, "upload_time": "2019-09-05T13:21:19", "url": "https://files.pythonhosted.org/packages/b1/61/358d0db0e304f47c22e454aad02ae1d467f479eb781ff13c1230f21ecc36/pyCompare-1.4.0.tar.gz" } ] }