\n\n## Background\nThe high degree of similarity between gametologous sequences on the sex chromosomes can lead to the misalignment of sequencing reads and substantially affect variant calling. Here we present XYalign, a new tool that (1) quickly infers sex chromosome ploidy in NGS data, (2) remaps reads based on the inferred sex chromosome complement of the individual, and (3) outputs quality, depth, and allele-balance metrics across chromosomes.\n\n## Preprint\n\nPlease see our preprint for more information:\n\n*Identifying, understanding, and correcting technical biases on the sex chromosomes in next-generation sequencing data.* 2018. Webster TH; Couse M; Grande BM; Karlins E;\nPhung T; Richmond PA; Whitford W; Wilson Sayres MA. bioRxiv 346940; doi: https://doi.org/10.1101/346940\n\nIf you use XYalign or discuss/correct for bias in mapping on the sex chromosomes, please cite this preprint.\n\n## Using XYalign\n\nSee full documentation at [Read The Docs](http://xyalign.readthedocs.io/en/latest/index.html) -- Under construction\n\nPost any questions you have at the [XYalign Google Group](https://groups.google.com/forum/#!forum/xyalign)\n\nPost any bugs/issues to [XYalign's issues page on Github](https://github.com/WilsonSayresLab/XYalign/issues)\n\n## Quick start and examples\n\n### Installing XYalign\nXYalign has only been tested on Linux and Mac systems. We recommend users install and manage XYalign (and programming environments) using\nConda. To do this\n\n1. First download and install either\n[Anaconda](https://www.continuum.io/downloads)\nor [Miniconda](http://conda.pydata.org/miniconda.html) (both work well,\nMiniconda is a lightweight version of Anaconda).\n\n2. Finish installation with the following commands to install XYalign and all\nof its dependancies in an environment called \"xyalign_env\":\n\n```\n\nconda config --add channels defaults\n\nconda config --add channels conda-forge\n\nconda config --add channels bioconda\n\nconda create -n xyalign_env xyalign\n\n```\n\n3. Load your new environment (containing XYalign and all related programs) with:\n\n```\nsource activate xyalign_env\n```\n\nSee [Bioconda](https://bioconda.github.io/) and [Conda](https://conda.io/docs/user-guide/tasks/manage-environments.html) documentation\nfor more information.\n\n### Prepare a sex-specific reference genome\nAssuming XYalign is installed correctly with all associated programs and is available\nin your ``PATH`` (see \"Installing XYalign above\"), you can use the command\n(assume the following is on one line):\n\n```\nxyalign --PREPARE_REFERENCE --ref reference.fasta\n--xx_ref_out /path/to/reference.XXonly.fasta\n--xy_ref_out /path/to/reference.XY.fasta\n--x_chromosome chrX\n--y_chromosome chrY\n--reference_mask mask.bed\n```\n\nIn the above command, ``reference.fasta`` is the original reference genome,\n``/path/to/reference.XXonly.fasta`` and ``/path/to/reference.XY.fasta`` are the\nfull paths to and names of the desired output references for XX and XY samples,\nrespectively. ``chrX`` and ``chrY`` are the *exact* names of the X and Y chromosome\nscaffolds in the assembly. ``mask.bed`` is some bed file containing regions that\nshould be masked in *both* output fastas.\n\n### Analyze a single bam file to explore sex chromosome content, etc.\nYou can use the command (assume the following is on one line):\n\n```\nxyalign --CHARACTERIZE_SEX_CHROMS\n--ref reference.fasta\n--bam sample1.bam\n--output_dir sample1_results\n--sample_id sample1\n--cpus 4\n--window_size 5000\n--chromosomes chr19 chrX chrY\n--x_chromosome chrX\n--y_chromosome chrY\n```\n\nIn the above command, ``reference.fasta`` is the full path to the reference genome\n*used to generate the bam file*, ``sample1.bam`` is the full path to the bam file\n``sample1_results`` is our desired output directory, and ``sample1`` is the name of\nour sample. we're using four cores (``--cpus 4``) and 5kb nonoverlapping\nwindows for analysis. We're analyzing three chromosomes named ``chr19``,\n``chrX``, and ``chrY``, and our X and Y scaffolds in the reference are named\n``chrX`` and ``chrY``.\n\nOur output of interest will be in ``sample1_results/plots``\nand ``sample1_results/results``. Tables (.csv) of depth and mapq measurements per window\nwill in ``sample1_results/bed`` with \"full_dataframe\" in their file names. BED files containing windows passing (\"highquality\") and failing (\"lowquality\") filtering\nthresholds will also be in ``sample1_results/bed``.\n\nRelevant flags for filtering variants include:\n\n```\n\t--variant_site_quality\n\t--variant_genotype_quality\n\t--variant_depth\n```\n\nRelevant flags for filtering windows include:\n\n```\n\t--mapq_cutoff\n\t--min_depth_filter\n\t--max_depth_filter\n\t--min_variant_count\n```\n\nYou can get details about these (and more) flags with the command:\n\n```\n\txyalign -h\n```\n\n### Analyze multiple bam files to determine sex chromosome complement, identify sex chromosome scaffolds, etc.\n\n```\nxyalign --CHROM_STATS\n--chromosomes chr1 chr8 chr19 chrX chrY\n--bam sample1.bam sample2.bam sample3.bam\n--ref null\n--sample_id bam_comparison1\n--output_dir bam_comparison1_results\n```\n\nIn the above command, we're analyzing five chromosomes in three different bam files.\nWe provide ``null`` as our reference because it's not used in these analyses.\n``--sample_id`` now becomes the name of our comparison (it's used in file names, etc.)\nand our output will be located in ``bam_comparison1_results/results``. We could also use\n``--use_counts`` to force XYalign to simply use counts of reads on each chromosome in\ncomparisons.\n\n## If you cloned XYalign before April 5, 2017 please clone a fresh version\nOn April 5th, we removed a host of large files using BFG Repo Cleaner, which changed\nthe commit history of the repo. Because of this, ```git pull``` will no longer work on clones\nprior to this cleaning. Therefore, if you cloned before this date (or can't remember when you\ncloned), it's probably a good idea to clone a fresh version.\n\n## Group Members\nName | email | github ID\n--- | --- | ---\nTim Webster | timothy.h.webster@asu.edu | @thw17\nMadeline Couse| mhcouse@gmail.com | @Madelinehazel\nBruno Grande | bgrande@sfu.ca | @brunogrande\nEric Karlins | karlinser@mail.nih.gov | @ekarlins\nTanya Phung | tnphung@ucla.edu | @tnphung\nPhillip Richmond | phillip.a.richmond@gmail.com | @Phillip-a-Richmond\nWhitney Whitford | whitney.whitford@auckland.ac.nz | @whitneywhitford\nMelissa A. Wilson Sayres | melissa.wilsonsayres@asu.edu | @mwilsonsayres\n\n\n",
"description_content_type": "",
"docs_url": null,
"download_url": "",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "https://github.com/WilsonSayresLab/XYalign",
"keywords": "",
"license": "GNU General License version 3",
"maintainer": "",
"maintainer_email": "",
"name": "XYalign",
"package_url": "https://pypi.org/project/XYalign/",
"platform": "",
"project_url": "https://pypi.org/project/XYalign/",
"project_urls": {
"Homepage": "https://github.com/WilsonSayresLab/XYalign"
},
"release_url": "https://pypi.org/project/XYalign/1.1.5/",
"requires_dist": [
"matplotlib",
"numpy",
"pandas",
"pybedtools",
"pysam",
"scipy"
],
"requires_python": "",
"summary": "Command line tools and python library to infer ploidy, correct for sex chromosome complement, and work with NGS data",
"version": "1.1.5"
},
"last_serial": 4421076,
"releases": {
"1.0.0": [
{
"comment_text": "",
"digests": {
"md5": "b9315052f9a68ae73608aeeddac45c6d",
"sha256": "79ee655c3fa6356af6368dbdfba3a977f640d93065b61ae271f9e2ea5b26bd19"
},
"downloads": -1,
"filename": "XYalign-1.0.0.tar.gz",
"has_sig": false,
"md5_digest": "b9315052f9a68ae73608aeeddac45c6d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 45443,
"upload_time": "2017-09-20T21:08:20",
"url": "https://files.pythonhosted.org/packages/ca/5f/3508044d4c18caa8773049162baa78dc994b69fc25a2b953a3224289cc71/XYalign-1.0.0.tar.gz"
}
],
"1.1.1": [
{
"comment_text": "",
"digests": {
"md5": "98ff335ddb1b995fc60483919812256d",
"sha256": "e1d132f70aad0fa298ac5c41a771cf044f4b34e2af1bf13ee01483092d525c97"
},
"downloads": -1,
"filename": "XYalign-1.1.1-py2-none-any.whl",
"has_sig": false,
"md5_digest": "98ff335ddb1b995fc60483919812256d",
"packagetype": "bdist_wheel",
"python_version": "py2",
"requires_python": null,
"size": 62960,
"upload_time": "2018-06-13T00:27:50",
"url": "https://files.pythonhosted.org/packages/b3/91/f4a94116d0f57f72a95b5d60cb6c09a7df17bd1ce8b9e34d671a3c9dcbd8/XYalign-1.1.1-py2-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "8d0c65541195787c2f65d74e10b07b3d",
"sha256": "257034e66906db09ca98f36645f61c3b2fc9c235fffa0751535a1c0ec44e64d5"
},
"downloads": -1,
"filename": "XYalign-1.1.1.tar.gz",
"has_sig": false,
"md5_digest": "8d0c65541195787c2f65d74e10b07b3d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 54343,
"upload_time": "2018-06-13T00:27:51",
"url": "https://files.pythonhosted.org/packages/f4/70/f2f187b849c9a7bab0522a99138c85595dfc5efe6942dde51d540002e0d6/XYalign-1.1.1.tar.gz"
}
],
"1.1.2": [
{
"comment_text": "",
"digests": {
"md5": "4321922b416020077e68db75763af165",
"sha256": "06422559dbe800f0253f3bf8e06f48d51489ba07554e72c61ff90238f9bf5480"
},
"downloads": -1,
"filename": "XYalign-1.1.2-py2-none-any.whl",
"has_sig": false,
"md5_digest": "4321922b416020077e68db75763af165",
"packagetype": "bdist_wheel",
"python_version": "py2",
"requires_python": null,
"size": 62967,
"upload_time": "2018-06-13T03:52:39",
"url": "https://files.pythonhosted.org/packages/f6/18/7bb2efaa5a3a841da63099a0f203b9135ee09153206e51a0aff880b69930/XYalign-1.1.2-py2-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "fb5fc10e312b6f4ce67da75b6aeec397",
"sha256": "0fc0cb76d5446b6174791657e041f78b1f6574a4fafadb45e816199eefb20e1c"
},
"downloads": -1,
"filename": "XYalign-1.1.2.tar.gz",
"has_sig": false,
"md5_digest": "fb5fc10e312b6f4ce67da75b6aeec397",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 47035,
"upload_time": "2018-06-13T03:52:41",
"url": "https://files.pythonhosted.org/packages/79/eb/04a277b575f6405d5b1ce4f318dab4f3ee24ad731472d2d962847b1c04aa/XYalign-1.1.2.tar.gz"
}
],
"1.1.3": [
{
"comment_text": "",
"digests": {
"md5": "2055493a3454944b5c5d6ac2b0edfc7c",
"sha256": "ba0bc013639ab9c8f520c12fb01ffa0aa770b5ab9c37fe785e22ea2f57f3d9ba"
},
"downloads": -1,
"filename": "XYalign-1.1.3-py2-none-any.whl",
"has_sig": false,
"md5_digest": "2055493a3454944b5c5d6ac2b0edfc7c",
"packagetype": "bdist_wheel",
"python_version": "py2",
"requires_python": null,
"size": 72539,
"upload_time": "2018-06-13T19:02:16",
"url": "https://files.pythonhosted.org/packages/7f/03/1a975c162c5d5b79289989a5c86f999950baba9cd2a3b1699dc4ed089664/XYalign-1.1.3-py2-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "201a2cd3f4c4a927d53260f97316bdd4",
"sha256": "c6f3d483bbb3d5ee2f60441a9ed3752146a735a1d806efdc0916417b487d37e6"
},
"downloads": -1,
"filename": "XYalign-1.1.3.tar.gz",
"has_sig": false,
"md5_digest": "201a2cd3f4c4a927d53260f97316bdd4",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 54359,
"upload_time": "2018-06-13T19:02:18",
"url": "https://files.pythonhosted.org/packages/68/36/2c92bbfb62d42192752f5457e85cdf8975809d2027db1e5f4928612660d2/XYalign-1.1.3.tar.gz"
}
],
"1.1.4": [
{
"comment_text": "",
"digests": {
"md5": "217c6a33aba959314fe7cd776fbd07e3",
"sha256": "4303c6962ea3abbd6754a633fb07d4c2804f02630821ec410b87b11502f38971"
},
"downloads": -1,
"filename": "XYalign-1.1.4-py2-none-any.whl",
"has_sig": false,
"md5_digest": "217c6a33aba959314fe7cd776fbd07e3",
"packagetype": "bdist_wheel",
"python_version": "py2",
"requires_python": null,
"size": 74139,
"upload_time": "2018-06-22T23:00:05",
"url": "https://files.pythonhosted.org/packages/6a/43/0612ddfd33b74fad22c3427b51c253c7289d6e1f4a637d668716b93e8001/XYalign-1.1.4-py2-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "736b4e9ccfa92a3e3e7e65878699e958",
"sha256": "719eb9331efade6d487f750b131d404121e1b6a0cb5e7382ade7105eaf26c12d"
},
"downloads": -1,
"filename": "XYalign-1.1.4.tar.gz",
"has_sig": false,
"md5_digest": "736b4e9ccfa92a3e3e7e65878699e958",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 57884,
"upload_time": "2018-06-22T23:00:06",
"url": "https://files.pythonhosted.org/packages/e9/97/ce28f78dc3161e3bd7cbe6a0cb83b13d26226876eaee30a3a22bd0b677ca/XYalign-1.1.4.tar.gz"
}
],
"1.1.5": [
{
"comment_text": "",
"digests": {
"md5": "568d99da5bf083da393161c5231401eb",
"sha256": "2d6bdd033dc87e10c417a99ee857aa8e24100b6467dd7695fff55cf695d60616"
},
"downloads": -1,
"filename": "XYalign-1.1.5-py3-none-any.whl",
"has_sig": false,
"md5_digest": "568d99da5bf083da393161c5231401eb",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 65262,
"upload_time": "2018-10-27T00:14:58",
"url": "https://files.pythonhosted.org/packages/ec/d1/44c1b57f8711f3003edeb94810009d211c39a10973f05ad42701bb3ff693/XYalign-1.1.5-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "13933cbbd46f31eab65eb4e76af3fbd3",
"sha256": "6cc607b4c6b45fcc4d95ad7051920aefe74ff33dcd2bc74a358c68d8543fffe3"
},
"downloads": -1,
"filename": "XYalign-1.1.5.tar.gz",
"has_sig": false,
"md5_digest": "13933cbbd46f31eab65eb4e76af3fbd3",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 57830,
"upload_time": "2018-10-27T00:14:59",
"url": "https://files.pythonhosted.org/packages/ab/d3/390dee1bfaf487324e154862c9902699e9c1c0799a9bbd869d21d79c4ebf/XYalign-1.1.5.tar.gz"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "568d99da5bf083da393161c5231401eb",
"sha256": "2d6bdd033dc87e10c417a99ee857aa8e24100b6467dd7695fff55cf695d60616"
},
"downloads": -1,
"filename": "XYalign-1.1.5-py3-none-any.whl",
"has_sig": false,
"md5_digest": "568d99da5bf083da393161c5231401eb",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 65262,
"upload_time": "2018-10-27T00:14:58",
"url": "https://files.pythonhosted.org/packages/ec/d1/44c1b57f8711f3003edeb94810009d211c39a10973f05ad42701bb3ff693/XYalign-1.1.5-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "13933cbbd46f31eab65eb4e76af3fbd3",
"sha256": "6cc607b4c6b45fcc4d95ad7051920aefe74ff33dcd2bc74a358c68d8543fffe3"
},
"downloads": -1,
"filename": "XYalign-1.1.5.tar.gz",
"has_sig": false,
"md5_digest": "13933cbbd46f31eab65eb4e76af3fbd3",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 57830,
"upload_time": "2018-10-27T00:14:59",
"url": "https://files.pythonhosted.org/packages/ab/d3/390dee1bfaf487324e154862c9902699e9c1c0799a9bbd869d21d79c4ebf/XYalign-1.1.5.tar.gz"
}
]
}