{ "info": { "author": "Ymir Vigfusson, Lars Ruthotto, Rebecca M. Mitchell, Lauri Mustonen, Xiangxi Gao", "author_email": "ymir.vigfusson@emory.edu", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "# Introduction\n\nStrainPycon is a Python 3 package that can be used to disambiguate multiple\nstrains in mixed samples of DNA. Mathematically, StrainPycon can solve binary\nblind source separation problems and compute certain high-dimensional integrals\ninvolving binary variables. The connection between these mathematical concepts\nand strain identification is discussed in the following journal article: \n\n L. Mustonen, X. Gao, A. Santana, R.M. Mitchell, Y. Vigfusson, and L. Ruthotto, \n A Bayesian framework for molecular strain identification from mixed diagnostic samples, \n *Inverse Problems* 34(10), 105009, 2018, \n https://doi.org/10.1088/1361-6420/aad7cd\n\nStrainPycon builds on the StrainRecon.jl package written in Julia:\nhttps://github.com/lruthotto/StrainRecon.jl\n\n# Motivation\n\nAs a motivating example, suppose you have a blood sample infected by multiple\nPlasmodium falciparum malaria parasites. Assuming you have done PCR on chosen\nSNP sites, the number of calls that differ from the reference genome are\nindicative of what proportion of the strains have mutated at that SNP.\nStrainPycon is an approach for identifying the strains in the sample through\ndisambiguation (deconvolution) without requiring any prior knowledge about the\nsample or the parasite. The process can also help assess the multiplicity of\ninfection in the sample, which can aid malaria surveillance efforts, for\ninstance.\n\n# Citation\n\nIf you use StrainPycon in your project, please cite the journal article above.\n\n# Full documentation\n\nPlease refer to the full documentation of StrainPycon at:\nhttps://www.ymsir.com/strainpycon/\n\n# Requirements\n\nStrainPycon was tested in the following environment:\n+ 64-bit Linux\n+ Python 3.6.5 with NumPy 1.14.3\n\n# Basic usage\n\nUsually, the user only wants to access a few methods from the StrainRecon class:\n\n``` py\nimport strainpycon\nS = strainpycon.StrainRecon()\n```\n\nLet us generate synthetic measurement data with three strains and 24 SNP sites\nand solve the inverse problem:\n``` py\n(measurements, strains, freq) = S.random_data(24, 3)\n(strains_recon, freq_recon) = S.compute(measurements, 3)\n```\nHere, `strains_recon` should equal `strains` and `freq_recon` should equal\n`freq`.\n\nNext, let us draw another random measurement, now with Gaussian additive noise.\nWe compute the *misfit*, or negative log-likelihood, when the number of strains\nin the reconstruction varies from one to seven. Moreover, we compute posterior\nstatistics to quantify uncertainty:\n``` py\ngamma = 0.1 # standard deviation of Gaussian noise\n(measurements, strains, freq) = S.random_data(18, 4, gamma=gamma)\nmisfits = S.misfits(measurements, range(1,8))\n(strains_mean, freq_mean, strains_dev, freq_dev) = S.posterior_stats(measurements, 4, gamma)\n```\n\nA complete description of the methods and detailed examples can be found on:\nSee https://www.ymsir.com/strainpycon/\n\n# Known issues\n\nStrainPycon does not support multi-threading yet.\n\n# Contacts\n\nPlease direct questions to:\nYmir Vigfusson, Emory University, ymir.vigfusson@emory.edu\n\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://www.ymsir.com/strainpycon/", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "strainpycon", "package_url": "https://pypi.org/project/strainpycon/", "platform": "", "project_url": "https://pypi.org/project/strainpycon/", "project_urls": { "Homepage": "https://www.ymsir.com/strainpycon/" }, "release_url": "https://pypi.org/project/strainpycon/1.0/", "requires_dist": null, "requires_python": "", "summary": "Strain disambiguation methods for mixed DNA samples", "version": "1.0" }, "last_serial": 4284878, "releases": { "1.0": [ { "comment_text": "", "digests": { "md5": "af3a70ca82eabe9f5cae721c69af57a6", "sha256": "1984c98cee78019d68be295b2e3d8c6529dd7be9c45dd0eed7e44f4102a0b96b" }, "downloads": -1, "filename": "strainpycon-1.0-py2-none-any.whl", "has_sig": false, "md5_digest": "af3a70ca82eabe9f5cae721c69af57a6", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 17601, "upload_time": "2018-09-18T19:03:35", "url": "https://files.pythonhosted.org/packages/6e/2d/9a10887a1912ff3c3a1ce57a2004e98b5173a28720d5a40119ede2f62d64/strainpycon-1.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3461fc3f866bcdd2ddc1b9dcb96e0da3", "sha256": "5bbd9426aa658e75e3f2f3ba65175f52fe196ab8e14c8fc895272dda5d2246ba" }, "downloads": -1, "filename": "strainpycon-1.0.tar.gz", "has_sig": false, "md5_digest": "3461fc3f866bcdd2ddc1b9dcb96e0da3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14201, "upload_time": "2018-09-18T19:05:41", "url": "https://files.pythonhosted.org/packages/36/62/308f8c7ff04ca6d7493463314ea9270d0485ad7ca0f531d2089d352eee55/strainpycon-1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "af3a70ca82eabe9f5cae721c69af57a6", "sha256": "1984c98cee78019d68be295b2e3d8c6529dd7be9c45dd0eed7e44f4102a0b96b" }, "downloads": -1, "filename": "strainpycon-1.0-py2-none-any.whl", "has_sig": false, "md5_digest": "af3a70ca82eabe9f5cae721c69af57a6", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 17601, "upload_time": "2018-09-18T19:03:35", "url": "https://files.pythonhosted.org/packages/6e/2d/9a10887a1912ff3c3a1ce57a2004e98b5173a28720d5a40119ede2f62d64/strainpycon-1.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3461fc3f866bcdd2ddc1b9dcb96e0da3", "sha256": "5bbd9426aa658e75e3f2f3ba65175f52fe196ab8e14c8fc895272dda5d2246ba" }, "downloads": -1, "filename": "strainpycon-1.0.tar.gz", "has_sig": false, "md5_digest": "3461fc3f866bcdd2ddc1b9dcb96e0da3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14201, "upload_time": "2018-09-18T19:05:41", "url": "https://files.pythonhosted.org/packages/36/62/308f8c7ff04ca6d7493463314ea9270d0485ad7ca0f531d2089d352eee55/strainpycon-1.0.tar.gz" } ] }