{ "info": { "author": "Matthew Wakefield", "author_email": "matthew.wakefield@unimelb.edu.au", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Science/Research", "License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)", "Operating System :: POSIX", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Scientific/Engineering :: Bio-Informatics" ], "description": "[![Build Status](https://travis-ci.org/genomematt/xenomapper.svg?branch=master)](https://travis-ci.org/genomematt/xenomapper)\n[![Coverage Status](https://coveralls.io/repos/genomematt/xenomapper/badge.svg)](https://coveralls.io/r/genomematt/xenomapper)\n[![JOSS](http://joss.theoj.org/papers/7065e20e97ff4e44695b5e9fef7cdcd8/status.svg)](http://dx.doi.org/10.21105/joss.00018)\n[![DOI](https://zenodo.org/badge/11450/genomematt/xenomapper.svg)](https://zenodo.org/badge/latestdoi/11450/genomematt/xenomapper)\n[![DOI](https://img.shields.io/pypi/v/xenomapper.svg)](https://pypi.python.org/pypi/XenoMapper/)\n\nXenomapper\n==========\n\nXenomapper is a utility for post processing mapped reads that have been aligned to a primary genome and a secondary genome and binning reads into species specific, multimapping in each species, unmapped and unassigned bins. It can be used on single end or paired end sequencing data. In paired end data evidence of sequence specificity for either read will be used to assign both reads.\n\nUse cases include xenografts of human cancers and host pathogen interactions.\n\nXenomapper is most effective with mapped reads that include an XS or ZS score that gives the mapping score of the next best read. These include Bowtie2 (Langmead, 2012) and HISAT (Kim, 2015). \n\n![Schematic of Xenomapper Use](/schematic.jpg \"Schematic of Xenomapper Use\")\n\nInstallation\n============\nXenomapper requires python 3.3 or higher and is tested on linux and MacOS with CPython and pypy3. For bam file decoding samtools must be installed.\n\nInstalling from the Python Package Index with pip is the easiest option:\n\n pip3 install xenomapper\n\nAlternatively if you would like to install from the github repository\n\n git clone https://github.com/genomematt/xenomapper\n pip3 install --upgrade xenomapper\n\nAlthough the repository tests by continuous integration with TravisCI its good practice to run the tests locally and check your install works correctly. The tests are run with the following command:\n\n python3 -m xenomapper.tests.test_all\n\nAll users should upgrade to v0.5.0 or higher as earlier versions have known bugs.\n\nUsing Xenomapper\n================\n\nusage:\n\n xenomapper [-h] [--primary_sam PRIMARY_SAM]\n [--secondary_sam SECONDARY_SAM]\n\t\t\t\t\t [--primary_bam PRIMARY_BAM]\n [--secondary_bam SECONDARY_BAM]\n [--primary_specific PRIMARY_SPECIFIC]\n [--secondary_specific SECONDARY_SPECIFIC]\n [--primary_multi PRIMARY_MULTI]\n [--secondary_multi SECONDARY_MULTI]\n [--unassigned UNASSIGNED]\n\t\t\t\t\t [--unresolved UNRESOLVED]\n [--paired]\n\t\t\t\t\t [--min_score MIN_SCORE]\n\t\t\t\t\t [--cigar_scores]\n [--version]\n\n\tA script for parsing pairs of sam files and returning sam files\n\tcontaining only reads where no better mapping exist in other files.\n\tUsed for filtering reads where multiple species may contribute \n\t(eg human tissue xenografted into mouse, pathogen growing on plant).\n\n\tFiles should contain an AS and XS score and better matches must have\n\ta higher alignment score (but can be negative).\n\tReads must be in the same order in both species.\n\n\tIn practice this is best acchieved by using Bowtie2 in --local mode.\n\tIf the -p option is used you must also use --reorder.\n\n\tLimited support is provided for aligners that do not produce AS and XS\n\tscore tags via the --cigar_score option.\n\n\tAll input files must be seekable\n\t(ie not a FIFO, process substitution or pipe)'\n\n\toptional arguments:\n\t -h, --help show this help message and exit\n\t --primary_sam PRIMARY_SAM\n\t a SAM format Bowtie2 mapping output file corresponding\n\t to the primary species of interest\n\t --secondary_sam SECONDARY_SAM\n\t a SAM format Bowtie2 mapping output file corresponding\n\t to the secondary or contaminating species\n\t --primary_bam PRIMARY_BAM\n\t a BAM format Bowtie2 mapping output file corresponding\n\t to the primary species of interest\n\t --secondary_bam SECONDARY_BAM\n\t a BAM format Bowtie2 mapping output file corresponding\n\t to the secondary or contaminating species\n\t --primary_specific PRIMARY_SPECIFIC\n\t name for SAM format output file for reads mapping to a\n\t specific location in the primary species\n\t --secondary_specific SECONDARY_SPECIFIC\n\t name for SAM format output file for reads mapping to a\n\t specific location in the secondary species\n\t --primary_multi PRIMARY_MULTI\n\t name for SAM format output file for reads multi\n\t mapping in the primary species\n\t --secondary_multi SECONDARY_MULTI\n\t name for SAM format output file for reads multi\n\t mapping in the secondary species\n\t --unassigned UNASSIGNED\n\t name for SAM format output file for unassigned (non-\n\t mapping) reads\n\t --unresolved UNRESOLVED\n\t name for SAM format output file for unresolved (maps\n\t equally well in both species) reads\n\t --paired the SAM files consist of paired reads with forward and\n\t reverse reads occuring once and interlaced\n\t --conservative conservatively allocate paired end reads with\n\t discordant category allocations. Only pairs that are\n\t both specific, or specific and multi will be allocated\n\t as specific. Pairs that are discordant for species\n\t will be deemed unresolved. Pairs where any read is\n\t unassigned will be deemed unassigned.\n\t --min_score MIN_SCORE\n\t\t\t\t\t\t\tthe minimum mapping score. Reads with scores less than\n\t\t\t\t\t\t\tor equal to min_score will be considered unassigned.\n\t\t\t\t\t\t\tValues should be chosen based on the mapping program \n\t\t\t\t\t\t\tand read length\n\t --cigar_scores Use the cigar line and the NM tag to calculate a\n\t score. For aligners that do not support the AS tag. No\n\t determination of multimapping state will be done.\n\t Reads that are unique in one species and multimap in\n\t the other species may be misassigned as no score can\n\t be calculated in the multimapping species. Score is -6\n\t * mismatches + -5 * indel open + -3 * indel extend +\n\t -2 * softclip.\n\t --use_zs Use the value of the ZS tag in place of XS for\n\t determining the mapping score of the next best\n\t alignment. Used with HISAT as the XS:A tag is\n\t conventionally used for strand in spliced mappers.\n\t --version print version information and exit\n\n\nTo output bam files in a bash shell use process substitution:\n\n\n xenomapper --primary_specific >(samtools view -bS - > outfilename.bam)\n\n\nA worked example of using xenomapper can be found in [example_usage.ipynb](example_usage.ipynb)\n\nxenomappability\n===============\nxenomappability is a tool for creating mappability wiggle files that reflect the paired end and multi species nature of the final number more accurately than the commonly used single end mappability tracks.\n\nThis feature is computationally intensive for useful genomes. In most cases you will want to segment into chromosomal or smaller regions and calculate on a cluster.\n\n\n xenomappability --fasta tests/data/test_from_EcoliK12DH10B.fasta --readlength 10 > tests/data/test_from_EcoliK12DH10B_10reads.fasta\n\n bowtie2-build tests/data/test_from_EcoliK12DH10B.fasta tests/data/test_from_EcoliK12DH10B\n bowtie2 -x tests/data/test_from_EcoliK12DH10B -f -U tests/data/test_from_EcoliK12DH10B_10reads.fasta -S tests/data/test_from_EcoliK12DH10B_10reads.sam\n\n xenomappability --mapped_test_data tests/data/test_from_EcoliK12DH10B_10reads.sam > tests/data/test_from_EcoliK12DH10B_10reads.wig\n xenomappability --single_end_wiggle tests/data/test_from_EcoliK12DH10B_10reads.wig --sam_for_sizes tests/data/paired_end_testdata_human.sam`\n\nContributing to Xenomapper\n==========================\nXenomapper is licensed under the GPLv3. You are free to fork this repository under the terms of that license. If you have suggested changes please start by raising an issue in the issue tracker. Pull requests are welcome and will be included at the discretion of the author, but must have 100% test coverage.\nBug reports should be made to the issue tracker. Difficulty in understanding how to use the software is a documentation bug, and should also be raised on the issue tracker with the tag `question` so your question and my response are easily found by others.\n\n\nCiting Xenomapper\n=================\n\nXenomapper is published in the Journal of Open Source Software. Please cite the paper in academic publications [DOI:10.21105.joss.00018](http://dx.doi.org/10.21105/joss.00018). Each release also has a Zenodo DOI identifier for each release. In an ideal world this is what you would cite to indicate the code you use, and make everything more reproducible but academic credit is better served at the moment by the paper. Try and include the Zenodo DOI or a version number in your methods. The DOI for the current release is [![DOI](https://zenodo.org/badge/11450/genomematt/xenomapper.svg)](https://zenodo.org/badge/latestdoi/11450/genomematt/xenomapper)\n\nReferences\n=================\nLangmead B, Salzberg S. Fast gapped-read alignment with Bowtie 2. Nature Methods. 2012, 9:357-359. http://bowtie-bio.sourceforge.net/bowtie2/\n\nKim D, Langmead B, Salzberg SL. HISAT: a fast spliced aligner with low memory requirements. Nat Methods. 2015 12:357-60. https://github.com/infphilo/hisat\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/genomematt/xenomapper.git", "keywords": "", "license": "GPLv3", "maintainer": "", "maintainer_email": "", "name": "XenoMapper", "package_url": "https://pypi.org/project/XenoMapper/", "platform": "", "project_url": "https://pypi.org/project/XenoMapper/", "project_urls": { "Homepage": "https://github.com/genomematt/xenomapper.git" }, "release_url": "https://pypi.org/project/XenoMapper/1.0.2/", "requires_dist": null, "requires_python": "", "summary": "xenomapper - mapping mixed reads from two species", "version": "1.0.2" }, "last_serial": 5498558, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "1ae65b6a5b798d66d8f8423e0c6657ca", "sha256": "a3be40890001063787735c1149eede0c16841e0d4f08a1aa4a3ae58079faec6b" }, "downloads": -1, "filename": "XenoMapper-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "1ae65b6a5b798d66d8f8423e0c6657ca", "packagetype": "bdist_wheel", "python_version": "any", "requires_python": null, "size": 19932, "upload_time": "2016-05-12T10:50:44", "url": "https://files.pythonhosted.org/packages/85/8e/3de72e24d5ca2fe70581b1f406175d25f5b39edfd2aa810af69237007dbb/XenoMapper-1.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "05c393f499bccfe3c81ba212ef7a4063", "sha256": "b2bc201a610dd4f2a4c05457cb406111d5f5bf19c362b25ccff5b8afebfdf341" }, "downloads": -1, "filename": "XenoMapper-1.0.0.tar.gz", "has_sig": false, "md5_digest": "05c393f499bccfe3c81ba212ef7a4063", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16671, "upload_time": "2016-05-12T10:51:39", "url": "https://files.pythonhosted.org/packages/f6/92/8e791ce94c7bb769c6b94c02788012e3b468cca0792a8a5efa46d410b036/XenoMapper-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "739b47d75d9b4530243b2227c06fce12", "sha256": "6a00bbd3b6e0b317ebbfdc7bf90443ab45018664db38ba6c70363f1a1327349e" }, "downloads": -1, "filename": "XenoMapper-1.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "739b47d75d9b4530243b2227c06fce12", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 21216, "upload_time": "2016-05-23T05:16:52", "url": "https://files.pythonhosted.org/packages/58/60/fa432fac808287a5abc88974e0ff77392090d57cc6b6ed079829294e407b/XenoMapper-1.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ae89c4e1c85a095bfb7bf7b3d74f00e0", "sha256": "f2394acd25738e4eb925bfa1bece2fb7e69c3f4f6dd67ff7d31d0e0666b9607f" }, "downloads": -1, "filename": "XenoMapper-1.0.1.tar.gz", "has_sig": false, "md5_digest": "ae89c4e1c85a095bfb7bf7b3d74f00e0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15459, "upload_time": "2018-02-23T04:20:48", "url": "https://files.pythonhosted.org/packages/1e/d6/811950db18646e75176ec20c6d33a669457bae3636b593354c6fa9973cc0/XenoMapper-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "45018ff5ed9a99508aaf32e8835ce9b7", "sha256": "c094fa66432aa60951c641c3b7863bc8ea9001994065140f1c5718617800948c" }, "downloads": -1, "filename": "XenoMapper-1.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "45018ff5ed9a99508aaf32e8835ce9b7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 29156, "upload_time": "2019-07-08T00:51:40", "url": "https://files.pythonhosted.org/packages/8e/5c/4aa859da073664887d81d1230e9e619d0e7abcdc9b3e70e0792a1565c9e1/XenoMapper-1.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4cdf3e1627ae38440b533358a53cd9a3", "sha256": "61dfd0dff1741cbda101443ca9c9e933f465a2a921087d25f44e23da7825d3ab" }, "downloads": -1, "filename": "XenoMapper-1.0.2.tar.gz", "has_sig": false, "md5_digest": "4cdf3e1627ae38440b533358a53cd9a3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15187, "upload_time": "2019-07-08T00:51:43", "url": "https://files.pythonhosted.org/packages/e3/ab/cb8e4aef027762414c8101dd4559fa1b07f5231b6980b1c352d491123d0f/XenoMapper-1.0.2.tar.gz" } ], "1.0b1": [ { "comment_text": "", "digests": { "md5": "46131856eb9648902e8b8acae4f0cf3e", "sha256": "a4e52eb5f4871a0d7b695a47ad4a848034a69df3aab86dab5879390ca71797f1" }, "downloads": -1, "filename": "XenoMapper-1.0b1-py3-none-any.whl", "has_sig": false, "md5_digest": "46131856eb9648902e8b8acae4f0cf3e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 18256, "upload_time": "2015-04-11T03:11:19", "url": "https://files.pythonhosted.org/packages/62/e2/3371fb859a8de157f4ffed9c0c5a761dc95ededba9e6e27254b582adde24/XenoMapper-1.0b1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9b3c46c710c22d0c68a631dcb08b6336", "sha256": "c0a77ff161ac69ba8f30c4062e50dd2f49fd8c8d8d066679784544bfb8ee538c" }, "downloads": -1, "filename": "XenoMapper-1.0b3-py3-none-any.whl", "has_sig": false, "md5_digest": "9b3c46c710c22d0c68a631dcb08b6336", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 18805, "upload_time": "2015-04-13T04:35:04", "url": "https://files.pythonhosted.org/packages/b2/ee/ee1bf16dbea3928e542d78add15a20eb4ed65e8091d66b45d593212dbb0e/XenoMapper-1.0b3-py3-none-any.whl" } ], "1.0b3": [], "1.0b5": [ { "comment_text": "", "digests": { "md5": "d6b381ccb91f2d5cd4f3f7bcfa967e28", "sha256": "dfe8afb0f5d5778daa81d06aaab59e19ad06a3d419fef593cad333cbc5fe021e" }, "downloads": -1, "filename": "XenoMapper-1.0b5-py3-none-any.whl", "has_sig": false, "md5_digest": "d6b381ccb91f2d5cd4f3f7bcfa967e28", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 18818, "upload_time": "2015-05-05T02:32:42", "url": "https://files.pythonhosted.org/packages/98/b3/b4cd3758a5ae9a32d401eed33df9b354a866d2417984fe3898707b2a082c/XenoMapper-1.0b5-py3-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "45018ff5ed9a99508aaf32e8835ce9b7", "sha256": "c094fa66432aa60951c641c3b7863bc8ea9001994065140f1c5718617800948c" }, "downloads": -1, "filename": "XenoMapper-1.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "45018ff5ed9a99508aaf32e8835ce9b7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 29156, "upload_time": "2019-07-08T00:51:40", "url": "https://files.pythonhosted.org/packages/8e/5c/4aa859da073664887d81d1230e9e619d0e7abcdc9b3e70e0792a1565c9e1/XenoMapper-1.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4cdf3e1627ae38440b533358a53cd9a3", "sha256": "61dfd0dff1741cbda101443ca9c9e933f465a2a921087d25f44e23da7825d3ab" }, "downloads": -1, "filename": "XenoMapper-1.0.2.tar.gz", "has_sig": false, "md5_digest": "4cdf3e1627ae38440b533358a53cd9a3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15187, "upload_time": "2019-07-08T00:51:43", "url": "https://files.pythonhosted.org/packages/e3/ab/cb8e4aef027762414c8101dd4559fa1b07f5231b6980b1c352d491123d0f/XenoMapper-1.0.2.tar.gz" } ] }