Version 0.8.1 This is primarily a bugfix release. The [documentation](https://cnvkit.readthedocs.io/) is also improved, particularly covering the cnvlib API. API: - For convenience in scripting, the relevant functions for running each CLI command (`cnvlib.commands.do_*`) are exported to the top level. For example: `import cnvlib; cnvlib.do_batch(...)` Bug fixes: - `access`: Avoid a type-validation error on Python 3. (#141) - `batch`: Parallel processing now selects an appropriate number of workers for each step of the pipeline, reducing CPU contention when processing multiple samples in parallel. (#138) - `call`: Apply the `ci` and `sem` filters before calculating b-allele frequencies and absolute copy number, as these filters can alter the final calls. - `reference`: Safely handle an edge case in detecting gender from sample coverage depths when all bins have identical coverage depth, e.g. no coverage. (#144) - `segment`: Fix handling and segmentation of SNV allele frequencies from a VCF. Ensure output column ordering is correct. Avoid a crash that could occur when SNV segmentation produces a segment that does not cover any coverage bins. (chapmanb/bcbio-nextgen#1590) - tabio: Improve handling of empty files, including VCFs with no samples and/or no locus records. If records and samples are present but genotypes are missing or undetectable, `scatter`, `call` and `export` would previously reject all records when filtering for SNPs, but will now accept all records instead.