{ "info": { "author": "Qurro development team", "author_email": "mfedarko@ucsd.edu", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "License :: OSI Approved :: BSD License", "Operating System :: MacOS :: MacOS X", "Operating System :: POSIX", "Operating System :: Unix", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3 :: Only", "Topic :: Scientific/Engineering", "Topic :: Scientific/Engineering :: Bio-Informatics", "Topic :: Scientific/Engineering :: Visualization" ], "description": "# Qurro: Quantitative Rank/Ratio Observations\n\n
\n\"Qurro\n
\n\n
\n\"Build\n\"Code\n\"DOI\"\n\"PyPI\"\n

(Pronounced \"churro.\")

\n
\n\nQurro visualizes the output from a tool like\n[Songbird](https://github.com/biocore/songbird) or\n[DEICODE](https://github.com/biocore/DEICODE). It displays a plot of\n__feature rankings__ (either the differentials produced by a tool like\nSongbird, or the loadings in a compositional biplot produced by a tool\nlike DEICODE -- when sorted numerically, either of these input types provide\nrankings) alongside a plot showing the __log-ratios__ of\nselected features' abundances within samples.\n\nQurro can be used standalone (as a Python 3 script that generates a\nfolder containing a HTML/JS/CSS visualization) or as a\n[QIIME 2](https://qiime2.org/) plugin (that generates a QZV file that can be\nvisualized at [view.qiime2.org](https://view.qiime2.org/) or by using\n`qiime tools view`). **Starting with Qurro v0.3.0, Qurro requires a QIIME 2\nversion of at least 2019.7.**\n\nQurro should work with most modern web browsers. Firefox or Chrome are\nrecommended.\n\nQurro is still being developed, so backwards-incompatible changes might\noccur. If you have any questions, feel free to contact the development team at\n[mfedarko@ucsd.edu](mailto:mfedarko@ucsd.edu).\n\n## Demos\n\nSee the Qurro website for a list of\ninteractive demos using real datasets.\n\n### Screenshot: Visualizing KEGG orthologs in metagenomic data from the Red Sea\n\n\"Screenshot\n\nThis visualization (which uses data from\n[this study](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5315489/), with\ndifferentials generated by [Songbird](https://github.com/biocore/songbird/))\ncan be viewed online [here](https://biocore.github.io/qurro/demos/red_sea/index.html).\n\n## Installation and Usage\n\nYou can install Qurro using [pip](https://pip.pypa.io/en/stable/):\n\n```\npip install numpy\npip install qurro\n```\n\nA python version of at least 3.5 is required to use Qurro.\n\n### Temporary Caveat\n\nCertain characters in column names in the sample metadata, feature metadata (if passed), and feature differentials (if passed) will be replaced with similar characters or just removed entirely:\n\n| Old Character(s) | New Character |\n| ------------- | ------------- |\n| `.` | `:` |\n| `]` | `)` |\n| `[` | `(` |\n| `\\ ` | \\| |\n| `'` or `\"` | Nothing |\n\nThis is due to some downstream issues with handling these sorts of characters\nin field names. See [this issue](https://github.com/biocore/qurro/issues/66)\nfor context.\n\n### Integration with metabolomics feature metadata\n\nIf you have a GNPS feature metadata file (where each row in the file has a\n`parent mass` and `RTConsensus` column), you can pass in the `-gnps`\n(`--assume-gnps-feature-metadata`) command-line argument to Qurro's\nstandalone script to make Qurro understand the metadata file. **Please\nnote that this functionality is experimental**; furthermore, it is not yet\navailable in the QIIME 2 plugin version of Qurro.\n\n## Tutorials\n\n### \"Moving Pictures\" Tutorial\n\nIn the style of the QIIME 2 and DEICODE moving pictures tutorials, there is a\ndraft moving pictures tutorial (showing how to use Qurro within QIIME 2, and\nhow to interact with the generated Qurro visualization) **available\n[here](https://github.com/biocore/qurro/blob/master/docs/tutorials/moving-pictures/moving-pictures.md).**\nThis tutorial is still a work in progress, so feel free to contact us if you\nhave any outstanding questions (or any suggestions for improving this\ntutorial).\n\n### Running Qurro from the command line\n\nExamples of using Qurro (both inside and outside of QIIME 2) are\navailable in Qurro's example Jupyter notebooks, which are located\n[here](https://github.com/biocore/qurro/tree/master/example_notebooks):\n- [**`deicode_example.ipynb`**](https://nbviewer.jupyter.org/github/biocore/qurro/blob/master/example_notebooks/DEICODE_sleep_apnea/deicode_example.ipynb)\n demonstrates using [DEICODE](https://github.com/biocore/DEICODE) and then using Qurro to visualize DEICODE's output.\n- [**`songbird_example.ipynb`**](https://nbviewer.jupyter.org/github/biocore/qurro/blob/master/example_notebooks/songbird_red_sea/songbird_example.ipynb)\n demonstrates using [Songbird](https://github.com/biocore/songbird) and then using Qurro to visualize Songbird's output.\n\n## Citing Qurro\n\nA manuscript describing Qurro is in preparation. In the meantime, you can cite\nthe DOI of Qurro's source code (provided by Zenodo). See\n[this link](https://doi.org/10.5281/zenodo.3257763) for citation instructions.\n\n## Acknowledgements\n\n### Dependencies\n\nCode files for the following projects are distributed within\n`qurro/support_file/vendor/`.\nSee the `dependency_licenses/` directory for copies of these software projects'\nlicenses (each of which includes a respective copyright notice).\n- [Vega](https://vega.github.io/vega/)\n- [Vega-Lite](https://vega.github.io/vega-lite/)\n- [Vega-Embed](https://github.com/vega/vega-embed)\n- [RequireJS](https://requirejs.org/)\n- [Bootstrap](https://getbootstrap.com/docs/4.3/getting-started/introduction/)\n\nThe following software projects are required for Qurro's python code\nto function, although they are not distributed with Qurro (and are\ninstead installed alongside Qurro).\n- [Altair](https://altair-viz.github.io/)\n- [biom-format](http://biom-format.org/)\n- [click](https://palletsprojects.com/p/click/)\n- [NumPy](https://www.numpy.org/)\n- [pandas](https://pandas.pydata.org/)\n- [scikit-bio](http://scikit-bio.org/)\n\n### Testing Dependencies\n\nFor python testing/style checking, Qurro uses\n[pytest](https://docs.pytest.org/en/latest/),\n[pytest-cov](https://github.com/pytest-dev/pytest-cov),\n[flake8](http://flake8.pycqa.org/en/latest/), and\n[black](https://github.com/ambv/black). You'll also need to have QIIME 2\ninstalled to run most of the python tests (your QIIME 2 version should be at\nleast 2019.7, due to the `FeatureData[Differential]` type being merged into\nq2-types starting with this release).\n\nFor JavaScript testing/style checking, Qurro uses\n[Mocha](https://mochajs.org/), [Chai](https://www.chaijs.com/),\n[mocha-headless-chrome](https://github.com/direct-adv-interfaces/mocha-headless-chrome),\n[nyc](https://github.com/istanbuljs/nyc), [jshint](https://jshint.com/),\nand [prettier](https://prettier.io/).\n\nQurro also uses [Travis-CI](https://travis-ci.org/) and\n[Codecov](https://codecov.io/).\n\n### Data Sources\n\nThe test data located in `qurro/tests/input/mackerel/` were exported from\nQIIME 2 artifacts in [this repository](https://github.com/knightlab-analyses/qurro-mackerel-analysis). These data are from Minich et al. 2019 [1].\n\nThe test data located in `qurro/tests/input/byrd/` are from\n[this repository](https://github.com/knightlab-analyses/reference-frames).\nThese data, in turn, originate from Byrd et al.'s 2017 study on atopic\ndermatitis [2].\n\nThe test data located in `qurro/tests/input/sleep_apnea/`\n(and in `example_notebooks/DEICODE_sleep_apnea/input/`)\nare from [this Qiita study](https://qiita.ucsd.edu/study/description/10422),\nwhich is associated with Tripathi et al.'s 2018 study on sleep apnea [4].\n\nThe test data located in `qurro/tests/input/moving_pictures/`\nare from [the QIIME 2 moving pictures tutorial](https://docs.qiime2.org/2019.1/tutorials/moving-pictures/).\nThe `ordination.qza` file in this folder was computed based on the\n[DEICODE moving pictures tutorial](https://library.qiime2.org/plugins/deicode/19/).\nThese data (sans the DEICODE ordination) are associated with Caporaso et al. 2011 [5].\n\nLastly, the data located in `qurro/tests/input/red_sea`\n(and in `example_notebooks/songbird_red_sea/input/`, and shown in the\nscreenshot above) were taken from Songbird's GitHub repository in its\n[`data/redsea/`](https://github.com/biocore/songbird/tree/master/data/redsea)\nfolder, and are associated with\n[this paper](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5315489/) [3].\n\n### Logo\n\nQurro's logo was created using the [Lalezar](https://github.com/BornaIz/Lalezar) font.\nAlso, shout out to [this gist](https://gist.github.com/DavidWells/7d2e0e1bc78f4ac59a123ddf8b74932d) for showing how to center images in GitHub markdown files (which is more of a hassle than it sounds).\n\n### Special Thanks\n\nThe design of Qurro was strongly inspired by\n[EMPeror](https://github.com/biocore/emperor) and\n[q2-emperor](https://github.com/qiime2/q2-emperor/), along with\n[DEICODE](https://github.com/biocore/DEICODE). A big shoutout to\nYoshiki V\u00e1zquez-Baeza for his help in planning this project, as well as to\nCameron Martino for a ton of work on getting the code in a distributable state\n(and making it work with QIIME 2). Thanks also to Jamie Morton, who wrote the\noriginal code for producing rank and sample plots from which this is derived.\n\nAnd thanks to a bunch of the Knight Lab for helping name the tool :)\n\n## References\n\n[1] Minich, J. J., Petrus, S., Michael, J. D., Michael, T. P., Knight, R., &\nAllen, E. E. (2019). Temporal, environmental, and biological\ndrivers of the mucosal microbiome in a wild marine fish, Scomber japonicus.\n_Manuscript under review._\n\n[2] Byrd, A. L., Deming, C., Cassidy, S. K., Harrison, O. J., Ng, W. I., Conlan, S., ... & NISC Comparative Sequencing Program. (2017). Staphylococcus aureus and Staphylococcus epidermidis strain diversity underlying pediatric atopic dermatitis. _Science translational medicine, 9_(397), eaal4651.\n\n[3] Thompson, L. R., Williams, G. J., Haroon, M. F., Shibl, A., Larsen, P.,\nShorenstein, J., ... & Stingl, U. (2017). Metagenomic covariation along densely\nsampled environmental gradients in the Red Sea. _The ISME journal, 11_(1), 138.\n\n[4] Tripathi, A., Melnik, A. V., Xue, J., Poulsen, O., Meehan, M. J., Humphrey, G., ... & Haddad, G. (2018). Intermittent hypoxia and hypercapnia, a hallmark of obstructive sleep apnea, alters the gut microbiome and metabolome. _mSystems, 3_(3), e00020-18.\n\n[5] Caporaso, J. G., Lauber, C. L., Costello, E. K., Berg-Lyons, D., Gonzalez, A., Stombaugh, J., ... & Gordon, J. I. (2011). Moving pictures of the human microbiome. _Genome biology, 12_(5), R50.\n\n## License\n\nThis tool is licensed under the [BSD 3-clause license](https://en.wikipedia.org/wiki/BSD_licenses#3-clause_license_(%22BSD_License_2.0%22,_%22Revised_BSD_License%22,_%22New_BSD_License%22,_or_%22Modified_BSD_License%22)).\nOur particular version of the license is based on [scikit-bio](https://github.com/biocore/scikit-bio)'s [license](https://github.com/biocore/scikit-bio/blob/master/COPYING.txt).\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/biocore/qurro", "keywords": "", "license": "BSD", "maintainer": "Qurro development team", "maintainer_email": "mfedarko@ucsd.edu", "name": "qurro", "package_url": "https://pypi.org/project/qurro/", "platform": "", "project_url": "https://pypi.org/project/qurro/", "project_urls": { "Homepage": "https://github.com/biocore/qurro" }, "release_url": "https://pypi.org/project/qurro/0.4.0/", "requires_dist": [ "altair (==3.1.0)", "biom-format[hdf5]", "click", "numpy (>=1.12.0)", "pandas (>=0.20.1)", "scikit-bio (>0.5.3)", "pytest (>=4.2) ; extra == 'dev'", "pytest-cov (>=2.0) ; extra == 'dev'", "flake8 ; extra == 'dev'", "black ; extra == 'dev'" ], "requires_python": "", "summary": "Visualizes differentially ranked features and log ratios of their sample abundances", "version": "0.4.0" }, "last_serial": 5685045, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "73a17ba49a33526697f42f98e452979f", "sha256": "24b4e26f22b94b959bb427cf0972c134fcbabf0d3990211f69d57c36264f2faf" }, "downloads": -1, "filename": "qurro-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "73a17ba49a33526697f42f98e452979f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 326342, "upload_time": "2019-06-25T21:59:48", "url": "https://files.pythonhosted.org/packages/4a/60/a6edf896cad92d1ab5c818395185d07a1b8229b1c5f7b4863725a641d713/qurro-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "73e548cfb289afd29953bc72021dbd59", "sha256": "c60192db3185088e66c4e4de57436ea790a5ef9cb3e88de4aba256d306c7f988" }, "downloads": -1, "filename": "qurro-0.1.0.tar.gz", "has_sig": false, "md5_digest": "73e548cfb289afd29953bc72021dbd59", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 317430, "upload_time": "2019-06-25T21:59:50", "url": "https://files.pythonhosted.org/packages/8c/3e/d21c90aa38fb9803e4ed2c99195af5936b395ae32e5dec1992b1ace4fd3c/qurro-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "43f2c26a1fd79062d42f7f218c4c13a0", "sha256": "9d06bd5cdb0c72af9e2027283c15b5fef49097f2bf6b18c7f2ed95b4d7d61739" }, "downloads": -1, "filename": "qurro-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "43f2c26a1fd79062d42f7f218c4c13a0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 330377, "upload_time": "2019-07-08T22:26:57", "url": "https://files.pythonhosted.org/packages/16/53/545b7c39cd24a322d697054b1ba5c0f088c204d64d778e608c220ae85a44/qurro-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c79a5fede11d0db2dc84c45c92f50a6c", "sha256": "8fa9f5a624b6abeae805d240297a7ac81df81c94f4d4f05b713d7322be89b0c8" }, "downloads": -1, "filename": "qurro-0.2.0.tar.gz", "has_sig": false, "md5_digest": "c79a5fede11d0db2dc84c45c92f50a6c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 321268, "upload_time": "2019-07-08T22:26:59", "url": "https://files.pythonhosted.org/packages/33/80/235bc9c2cf09fdf1d3ed3f0a5ee9af1b7a38d66beb083853f7d584eb91d8/qurro-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "252c196c1ae37b57657d2b32c4f90847", "sha256": "3941961fabd94aae5e8167b8d35c0a58897bea009ae4adc87cbae5e458900558" }, "downloads": -1, "filename": "qurro-0.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "252c196c1ae37b57657d2b32c4f90847", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 329547, "upload_time": "2019-07-10T20:30:22", "url": "https://files.pythonhosted.org/packages/0f/69/25c52baa379ad506087fd83c7627de73d90a130cb4b7818dbbbc397ad5aa/qurro-0.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fea2d39d71b4afc590d59f939c32b9bf", "sha256": "4e0cd8b3410a4431995f900e8494f85cb2c8a2998705704517e6f7d72a403da5" }, "downloads": -1, "filename": "qurro-0.2.1.tar.gz", "has_sig": false, "md5_digest": "fea2d39d71b4afc590d59f939c32b9bf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 321088, "upload_time": "2019-07-10T20:30:24", "url": "https://files.pythonhosted.org/packages/0b/c2/af764e91976309ec92c3f8818fd172f95fcaedf74df1e585195c5a0d5b37/qurro-0.2.1.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "fb8ce2c18563bcca034f139ad6433b57", "sha256": "5df0611ffc8a4e9d90117e2f995abb66e6db5e6e28de6c6d648a05a6f2b70c2a" }, "downloads": -1, "filename": "qurro-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "fb8ce2c18563bcca034f139ad6433b57", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 338349, "upload_time": "2019-08-03T19:44:44", "url": "https://files.pythonhosted.org/packages/f9/50/d73f618fd1b4352604d5bf7ef825397643671118cc50587aaf36b481fa9e/qurro-0.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3b84e8b0f48d183b62c5529a3d31d79b", "sha256": "8ecc6e503e7451a3c4d8bd0d2db0043f8e92f40d74b5ba8a1e9c9315b5463794" }, "downloads": -1, "filename": "qurro-0.3.0.tar.gz", "has_sig": false, "md5_digest": "3b84e8b0f48d183b62c5529a3d31d79b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 329473, "upload_time": "2019-08-03T19:44:46", "url": "https://files.pythonhosted.org/packages/55/c8/b4bca328d469c84357d8e36c0cf40bdd120a3fa95b927a5519e23c4c7b0b/qurro-0.3.0.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "729342f88657fb82c68ecdc76260a432", "sha256": "405a411748b31496d70112917910facceb287da98e2e9cb2660bdb86815fe990" }, "downloads": -1, "filename": "qurro-0.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "729342f88657fb82c68ecdc76260a432", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 362891, "upload_time": "2019-08-16T00:24:27", "url": "https://files.pythonhosted.org/packages/4b/f6/1bf82d4cbea3d03d41965da489deaff67777e3cf113c8c3e61e6fda61be4/qurro-0.4.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8c954a39277efdc78c1d575a3de815a4", "sha256": "2f75fc94f739d49ef047df37e324f14f3ed9509a0c5bb9ff075026bb69bd01ff" }, "downloads": -1, "filename": "qurro-0.4.0.tar.gz", "has_sig": false, "md5_digest": "8c954a39277efdc78c1d575a3de815a4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 352858, "upload_time": "2019-08-16T00:24:30", "url": "https://files.pythonhosted.org/packages/00/01/5fd9e9a4726dd016374fd9c3e3b1012fc4d651384fb6af31daa4b1d7b311/qurro-0.4.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "729342f88657fb82c68ecdc76260a432", "sha256": "405a411748b31496d70112917910facceb287da98e2e9cb2660bdb86815fe990" }, "downloads": -1, "filename": "qurro-0.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "729342f88657fb82c68ecdc76260a432", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 362891, "upload_time": "2019-08-16T00:24:27", "url": "https://files.pythonhosted.org/packages/4b/f6/1bf82d4cbea3d03d41965da489deaff67777e3cf113c8c3e61e6fda61be4/qurro-0.4.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8c954a39277efdc78c1d575a3de815a4", "sha256": "2f75fc94f739d49ef047df37e324f14f3ed9509a0c5bb9ff075026bb69bd01ff" }, "downloads": -1, "filename": "qurro-0.4.0.tar.gz", "has_sig": false, "md5_digest": "8c954a39277efdc78c1d575a3de815a4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 352858, "upload_time": "2019-08-16T00:24:30", "url": "https://files.pythonhosted.org/packages/00/01/5fd9e9a4726dd016374fd9c3e3b1012fc4d651384fb6af31daa4b1d7b311/qurro-0.4.0.tar.gz" } ] }