{ "info": { "author": "Sander Bollen", "author_email": "sander@sndrtj.eu", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3 :: Only", "Topic :: Scientific/Engineering :: Bio-Informatics" ], "description": "[![Build Status](https://travis-ci.org/sndrtj/wisestork.svg?branch=master)](https://travis-ci.org/sndrtj/wisestork) \n[![codecov](https://codecov.io/gh/sndrtj/wisestork/branch/master/graph/badge.svg)](https://codecov.io/gh/sndrtj/wisestork)\n[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.3245885.svg)](https://doi.org/10.5281/zenodo.3245885)\n\n\nWisestork\n=======\nThis is a complete re-implementation of the original \n[Wisecondor](https://github.com/VUmcCGP/wisecondor) program.\nIts original purpose was to detect trisomies and smaller CNVs in \nmaternal plasma samples using low-coverage WGS.\n\nWisestork adds practical support for small bin sizes,\nand is intended to be useful on regular WGS and Exome sequencing as well.\n\nFor a full overview of differences with the original Wisecondor, \nsee section Differences.\n\n## Installation\n\n### PyPI\n\nInstall wisestork from PyPI with a simple:\n\n```bash\npip install wisestork\n```\n\n### Manually (development versions)\n\nThe following system dependencies are required\n\n* Python 3.5+\n\nFurthermore, the following python packages are required:\n\n* numpy\n* matplotlib\n* biopython\n* statsmodels\n* sklearn\n* pysam\n* pyfaidx\n* click\n\nIt is recommended you use a virtualenv. \n\nTo install wisestork, create a virtualenv, install the python \nrequirements using `pip install -r requirements.txt` and then run\n`python setup.py develop`\n\n\n## Input \n\nWisestork takes BAM files as input. These BAM files _must_ be indexed.\n\nAdditionally, you must provide a reference Fasta file, which should\nlikewise be indexed with `samtools faidx `. \n\n## Running\n\nA typical workflow starts with BAM files. Those BAM files _must_ be\nsorted and indexed. \n\nThe first step in a Wisestork analysis is the `count` step. This \ngenerates read counts per bin, and writes this to a BED file. The \ncommand to do this, would look like the following:\n\n`wisestork count -I -R -O -B `\n\nThe `-B` flag can be left out: Wisestork defaults to a binsize of 50kb.\nHowever, you will likely want a different binsize.\n\nOnce you have the count BED file, we have to correct for GC bias. The\ncommand to do this is:\n\n`wisestork gc-correct -I -R -O -B `\n\nFor the next step, we need the result bgzipped and tabixed, so you'll \nhave to execute `bgzip && tabix -pbed `\n\nThe last step, the `zscore` step, calculates Z-scores for each bin.\nIt requires you to have generated a reference dictionary beforehand. \nThe command to create z-scores again looks pretty similar to the \nearlier two:\n\n`wisestork zscore -I -R -O -D -B `\n\n\n### User-supplied bins\n\nIn stead of supplying a bin _size_ for each step, you may also supply a \nbin _file_. This file should be a (preferably sorted) BED file with regions\nthat exist in the input BAM file. This option is primarily useful for \nWES analyses, where the bin file would correspond to a target/bait region\nfile. Please do note that contigs must be identical to those in the \ninput BAM file. \n\nYou can supply a bin file using the `-L` flag for any subcommand.\nThis will supersede any usage of the `-B` flag.\n\n### Creating reference dictionaries\n\nThe above assumes you have already created a reference dictionary. \nIf this is not the case, you will have to generate this file. \n\nTo create the reference dictionary you will need a set of gc-corrected\nBED files (from `wisestork gc-correct`) of normal samples, and feed those\nto `wisestork newref`. The rewref command will then find the nearest\nneighbours of every bin. Later on, in the zscore command, this\ninformation is used to get a set of \"reference bins\" from the query\nsample. \n\nCommand to be used:\n\n`wisestork newref -I -I [...] -O -R -B `\n\nThe output of this _must_ be sorted with bedtools, and then bgzipped\nand tabixed. \n\n### Usage\n\n```\nUsage: wisestork [OPTIONS] COMMAND [ARGS]...\n\n Discover CNVs from BAM files.\n\n A typical workflow first extracts regions from a BAM file\n The resulting BED tracks must then be GC-corrected.\n Using a reference track of region similarity,\n One can then calculate Z-scores for every region.\n\n The following sub-commands are supported:\n - count: count coverage per bin\n - gc-correct: GC-correct bins\n - zscore: calculate Z-scores\n - newref: Generate a new reference dictionary of bin similarities\n\nOptions:\n --version Show the version and exit.\n --help Show this message and exit.\n\nCommands:\n count Count coverages\n gc-correct GC correct\n newref Create new reference\n zscore Calculate Z-scores\n```\n\nYou can additional help by typing `wisestork --help`\n\n## Differences\n\nThere are several important differences between this re-implementation\nand the original wisecondor. \n\n* This re-implementation is organized as a regular python package, \n while exposing several command-line tools. \n* Python 3 support. In fact, it's only tested on python 3.\n* All command-line tools now have UNIX-style argument parsing\n* Generating reference sets for small bin sizes is now possible in \n much less time. \n* Pickle files are no longer used. The output format is now regular BED,\n with a possible additional column. This means results can be used by \n common downstream tools like Bedtools.\n* User supplied bin files in regular BED format. \n* The countgc step is now redundant. Its functionality is now integrated\n in the gcc step. \n* The reference bin selection method was modified. The\n original wisecondor calculated differences for every bin against every\n bin of every sample, and then repeated this calculation for every \n chromosome. As this is an exponential operation, this made \n reference bin selection prohibitively slow and memory-consuming for \n smaller bin size. In stead of calculating differences, the new method\n applies a method (e.g. median) over the same bins of all samples, \n and then _sorts_ the resulting list of bins. Similar bins can be\n selected using regular list slicing. This means the time complexity \n of creating a new reference set is now just loglinear. Additional \n filterings were left the same. \n* Use of the `statsmodels` lowess function, rather than biopython's. \n This results in a significant speed-up of the gc correction.\n\n## Naming\n\nWhy name this tool wisestork, you might think?\nWell, a _condor_ is a bird. As this is a re-implementation / fork of\nwisecondor, I figured another bird would be nice name. As I live in The Hague,\nand The Hague has a stork as a city symbol, I put one and one together.\nThus, _wisestork_ was born. \n\n## License\n\nGPLv3\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/sndrtj/wisestork", "keywords": "", "license": "GPLv3+", "maintainer": "", "maintainer_email": "", "name": "wisestork", "package_url": "https://pypi.org/project/wisestork/", "platform": "", "project_url": "https://pypi.org/project/wisestork/", "project_urls": { "Homepage": "https://github.com/sndrtj/wisestork" }, "release_url": "https://pypi.org/project/wisestork/0.1.2/", "requires_dist": [ "numpy", "matplotlib", "statsmodels", "pysam", "pyfaidx", "biopython", "scipy", "click", "progressbar2" ], "requires_python": ">=3.5", "summary": "Within-sample CNV calling", "version": "0.1.2" }, "last_serial": 5409029, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "1c5d6c92e6ec379d1cead74791f02b87", "sha256": "d3ae4756605a45fd503ec5e32941bb3a22c1efd488197af1d9223e3299c60a99" }, "downloads": -1, "filename": "wisestork-0.1.0.linux-x86_64.tar.gz", "has_sig": false, "md5_digest": "1c5d6c92e6ec379d1cead74791f02b87", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 22265, "upload_time": "2019-06-13T14:46:20", "url": "https://files.pythonhosted.org/packages/8d/40/8a725f3b4d271c332e0a1a986cf1cf811bca05c154e50c2ee5b1929cb2db/wisestork-0.1.0.linux-x86_64.tar.gz" }, { "comment_text": "", "digests": { "md5": "a7b309ecaae60dcbaeb32523b13b05c6", "sha256": "4d45d980155d57ee789a96a11875e70ccc10489d4882d6283b0b27d5fc5d56c4" }, "downloads": -1, "filename": "wisestork-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "a7b309ecaae60dcbaeb32523b13b05c6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 29548, "upload_time": "2019-06-13T14:46:17", "url": "https://files.pythonhosted.org/packages/19/66/3dd0985ef115225de399bd171c6d48374fe13976635ee33e3b459af56a45/wisestork-0.1.0-py3-none-any.whl" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "bd5011c80ed196e72ed69926b9e89a35", "sha256": "934ea8f400f8b4e448d651e2d3cfc9c06f1c5ab6e35aacba0950d9f29820f755" }, "downloads": -1, "filename": "wisestork-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "bd5011c80ed196e72ed69926b9e89a35", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 29641, "upload_time": "2019-06-14T10:15:36", "url": "https://files.pythonhosted.org/packages/b1/1b/0910dc33bdba86b91892d4e966fefb5758741a6355ab60694f9fa2ae0942/wisestork-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "225f4a94acce2e00ec524e6b1f177f7d", "sha256": "084278c791fd2406430ebe02783c4e0b9009219c5ed798458f1bfd0c1ebcfa09" }, "downloads": -1, "filename": "wisestork-0.1.1.tar.gz", "has_sig": false, "md5_digest": "225f4a94acce2e00ec524e6b1f177f7d", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 19701, "upload_time": "2019-06-14T10:15:38", "url": "https://files.pythonhosted.org/packages/24/4f/a922c0aabbd9a6ccce9c6074522f479218e565f4f9cd8373938fecde512d/wisestork-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "a4a94e8d14ce16468f440e294f64161c", "sha256": "31b99bc98b05ba8e5ee823dedebf1afe2a2e8f5ecd17ef9f4be6833c962e4375" }, "downloads": -1, "filename": "wisestork-0.1.2-py3.6.egg", "has_sig": false, "md5_digest": "a4a94e8d14ce16468f440e294f64161c", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": ">=3.5", "size": 31323, "upload_time": "2019-06-17T08:14:06", "url": "https://files.pythonhosted.org/packages/44/da/b3ded01e9b97aaf8461a8256e901212808196fe1bc8e9a1e8f18757e095e/wisestork-0.1.2-py3.6.egg" }, { "comment_text": "", "digests": { "md5": "ad342696492fd5330b073b3a88d3ccc1", "sha256": "c62612bc8975c62dd1652a697cb69135b56b6e0e8f715fd212d73a32217ebe5c" }, "downloads": -1, "filename": "wisestork-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "ad342696492fd5330b073b3a88d3ccc1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 29643, "upload_time": "2019-06-17T08:14:04", "url": "https://files.pythonhosted.org/packages/91/b6/a2a9e542bcc4fac90bfb1a928f5bc129c3999086ba19fa7610cff4d7df3e/wisestork-0.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "48c4eeafb453e96a70ab5b9055ca8b71", "sha256": "f363a5d794d6aa4c4b2305e6af976916909bfa6f058ddf9304ac6a71fa3013d1" }, "downloads": -1, "filename": "wisestork-0.1.2.tar.gz", "has_sig": false, "md5_digest": "48c4eeafb453e96a70ab5b9055ca8b71", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 26933, "upload_time": "2019-06-17T08:14:08", "url": "https://files.pythonhosted.org/packages/f3/86/a0f61b9eca09470be959726b4c463ddbb5049a153f9d4a037c88b38727cf/wisestork-0.1.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "a4a94e8d14ce16468f440e294f64161c", "sha256": "31b99bc98b05ba8e5ee823dedebf1afe2a2e8f5ecd17ef9f4be6833c962e4375" }, "downloads": -1, "filename": "wisestork-0.1.2-py3.6.egg", "has_sig": false, "md5_digest": "a4a94e8d14ce16468f440e294f64161c", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": ">=3.5", "size": 31323, "upload_time": "2019-06-17T08:14:06", "url": "https://files.pythonhosted.org/packages/44/da/b3ded01e9b97aaf8461a8256e901212808196fe1bc8e9a1e8f18757e095e/wisestork-0.1.2-py3.6.egg" }, { "comment_text": "", "digests": { "md5": "ad342696492fd5330b073b3a88d3ccc1", "sha256": "c62612bc8975c62dd1652a697cb69135b56b6e0e8f715fd212d73a32217ebe5c" }, "downloads": -1, "filename": "wisestork-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "ad342696492fd5330b073b3a88d3ccc1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 29643, "upload_time": "2019-06-17T08:14:04", "url": "https://files.pythonhosted.org/packages/91/b6/a2a9e542bcc4fac90bfb1a928f5bc129c3999086ba19fa7610cff4d7df3e/wisestork-0.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "48c4eeafb453e96a70ab5b9055ca8b71", "sha256": "f363a5d794d6aa4c4b2305e6af976916909bfa6f058ddf9304ac6a71fa3013d1" }, "downloads": -1, "filename": "wisestork-0.1.2.tar.gz", "has_sig": false, "md5_digest": "48c4eeafb453e96a70ab5b9055ca8b71", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 26933, "upload_time": "2019-06-17T08:14:08", "url": "https://files.pythonhosted.org/packages/f3/86/a0f61b9eca09470be959726b4c463ddbb5049a153f9d4a037c88b38727cf/wisestork-0.1.2.tar.gz" } ] }