{ "info": { "author": "Greg Operto", "author_email": "goperto@barcelonabeta.org", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "[![pipeline status](https://gitlab.com/xgrg/atn/badges/master/pipeline.svg)](https://gitlab.com/xgrg/atn/commits/master)\n[![coverage report](https://gitlab.com/xgrg/atn/badges/master/coverage.svg)](https://gitlab.com/xgrg/atn/commits/master)\n\n# atn\n\nBased on the A/T/N/ classification scheme for Alzheimer's disease biomarkers\n[Jack et al., 2016](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4970664/),\nwhat this Python module does is basically applying predefined thresholds to a\ngiven [DataFrame](https://pandas.pydata.org/) (containing biomarker data such\n as cerebrospinal fluid (CSF) levels of _ABeta42_, _ptau_, _ttau_) and building\n multiple lists of subjects with distinct profiles according to\ntheir CSF biomarkers.\n\nExample (with random data):\n\n```\nimport random\nn = 10\n\nabeta42 = [random.randrange(600e3, 1800e3)/1e3 for e in range(0, n)]\nptau = [random.randrange(4e3, 80e3)/1e3 for e in range(0, n)]\nttau = [random.randrange(97e3, 500e3)/1e3 for e in range(0, n)]\ndata = pd.DataFrame(data=[abeta42, ptau, ttau], index=['abeta42', 'ptau', 'ttau']).transpose()\ndata\n```\n\n> | | abeta42 | ptau | ttau |\n> |---|----------|--------|---------|\n> | 0 | 1142.327 | 76.636 | 375.448 |\n> | 1 | 833.484 | 77.321 | 181.75 |\n> | 2 | 951.601 | 6.981 | 309.215 |\n> | 3 | 1623.797 | 65.063 | 232.303 |\n> | 4 | 920.706 | 62.899 | 310.1 |\n> | 5 | 704.215 | 58.526 | 160.826 |\n> | 6 | 1687.357 | 53.335 | 422.249 |\n> | 7 | 1701.997 | 68.676 | 173.33 |\n> | 8 | 1774.046 | 37.214 | 255.638 |\n> | 9 | 939.946 | 21.128 | 164.803 |\n\n\n```\nimport atn\nstaging = atn.stage(data, thresholds = {'abeta42':1100, 'ptau':19.2, 'ttau':242})\nstaging\n```\n\n> | | A | T | N |\n> |----|-------|-------|-------|\n> | ID | | | |\n> | 0 | FALSE | TRUE | TRUE |\n> | 1 | TRUE | TRUE | FALSE |\n> | 2 | TRUE | FALSE | TRUE |\n> | 3 | FALSE | TRUE | FALSE |\n> | 4 | TRUE | TRUE | TRUE |\n> | 5 | TRUE | TRUE | FALSE |\n> | 6 | FALSE | TRUE | TRUE |\n> | 7 | FALSE | TRUE | FALSE |\n> | 8 | FALSE | TRUE | TRUE |\n> | 9 | TRUE | TRUE | FALSE |\n\n\n```\nprint(atn.staging_summary(staging))\n```\n\n> CSF amyloid (A) positive/negative: 5/5\n> CSF ptau (T) positive/negative: 9/1\n> CSF ttau (N) positive/negative: 5/5\n>\n> A+T+: 4\n> A+T-: 1\n> A-T-: 0\n> A-T+ (SNAPs): 5\n>\n> A+T+N+: 1\n> A+T+N-: 3\n> A-T+N+: 3\n> A-T+N-: 2\n> A-T-N-: 0\n> A-T-N+: 0\n> Total subjects: 10\n\nSo yes, it is simple, stupid. But this allows one to quickly select groups of\nsubjects as follows:\n\n```\ngroups = atn.groups(staging)\ndata.loc[groups['A+'].index]\n```\n\n> | | abeta42 | ptau | ttau |\n> |----|---------|--------|---------|\n> | ID | | | |\n> | 1 | 833.484 | 77.321 | 181.75 |\n> | 2 | 951.601 | 6.981 | 309.215 |\n> | 4 | 920.706 | 62.899 | 310.1 |\n> | 5 | 704.215 | 58.526 | 160.826 |\n> | 9 | 939.946 | 21.128 | 164.803 |\n\n# Dependencies\n\n- Python >= 3.5\n- Pandas >= 0.24.1\n\n# Install\n\nFirst make sure you have installed all the dependencies listed above. Then you can install **atn** by running the following command in a command prompt:\n\n> pip install atn\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://gitlab.com/xgrg/atn/-/archive/0.0.2/atn-0.0.2.tar.gz", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "atn", "package_url": "https://pypi.org/project/atn/", "platform": "", "project_url": "https://pypi.org/project/atn/", "project_urls": { "Homepage": "https://gitlab.com/xgrg/atn/-/archive/0.0.2/atn-0.0.2.tar.gz" }, "release_url": "https://pypi.org/project/atn/0.0.2/", "requires_dist": null, "requires_python": "", "summary": "A/T/N staging for Alzheimer's Disease based on CSF biomarkers", "version": "0.0.2" }, "last_serial": 4783415, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "474064a2713ab1e4f4c57f3d97a38992", "sha256": "bdb58059b01c882a9540a6e6853c066e92d41297ab1b7d1bb538d77d9610888f" }, "downloads": -1, "filename": "atn-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "474064a2713ab1e4f4c57f3d97a38992", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 13448, "upload_time": "2019-01-18T18:21:40", "url": "https://files.pythonhosted.org/packages/7d/3b/dcf30bafe04c7ffb4a9144716064a002109f266638b544748df7a42e6790/atn-0.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4af0010c19ced15dfc0edc91fee36597", "sha256": "a5212f0d11d7e28d9b40ffcaed11e12ec3a8966e97786f764e95a33434af8dd2" }, "downloads": -1, "filename": "atn-0.0.1.tar.gz", "has_sig": false, "md5_digest": "4af0010c19ced15dfc0edc91fee36597", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1013, "upload_time": "2019-01-18T18:21:43", "url": "https://files.pythonhosted.org/packages/fa/c8/da2190a1f127ec5bdbae2b568928ae11e40f95cfc55a5b06c0dd49cd2e1c/atn-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "f74154784bb45247d24d80dc3c8d0e50", "sha256": "4fdc22b266436af5b0990fce402d47863ab72f39958d0982aeface7677c3c1fc" }, "downloads": -1, "filename": "atn-0.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "f74154784bb45247d24d80dc3c8d0e50", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 15258, "upload_time": "2019-02-05T18:44:25", "url": "https://files.pythonhosted.org/packages/fd/39/44ffd40287f1e4dae15f934a94b77c84e99832ac830659c937f633fb6b77/atn-0.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1c1ddaa9e9c4c08fbad9c7199f392fdd", "sha256": "4e6aa848bc899a4585defe5e16e809759cd6d28734da99e83881efe8ba0d1247" }, "downloads": -1, "filename": "atn-0.0.2.tar.gz", "has_sig": false, "md5_digest": "1c1ddaa9e9c4c08fbad9c7199f392fdd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2780, "upload_time": "2019-02-05T18:44:27", "url": "https://files.pythonhosted.org/packages/55/d2/73da5d9b517b85e73ff5422fd3daa81acc06be9af9ac08b2e551dcf11960/atn-0.0.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "f74154784bb45247d24d80dc3c8d0e50", "sha256": "4fdc22b266436af5b0990fce402d47863ab72f39958d0982aeface7677c3c1fc" }, "downloads": -1, "filename": "atn-0.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "f74154784bb45247d24d80dc3c8d0e50", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 15258, "upload_time": "2019-02-05T18:44:25", "url": "https://files.pythonhosted.org/packages/fd/39/44ffd40287f1e4dae15f934a94b77c84e99832ac830659c937f633fb6b77/atn-0.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1c1ddaa9e9c4c08fbad9c7199f392fdd", "sha256": "4e6aa848bc899a4585defe5e16e809759cd6d28734da99e83881efe8ba0d1247" }, "downloads": -1, "filename": "atn-0.0.2.tar.gz", "has_sig": false, "md5_digest": "1c1ddaa9e9c4c08fbad9c7199f392fdd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2780, "upload_time": "2019-02-05T18:44:27", "url": "https://files.pythonhosted.org/packages/55/d2/73da5d9b517b85e73ff5422fd3daa81acc06be9af9ac08b2e551dcf11960/atn-0.0.2.tar.gz" } ] }