General
* Performance scanning module developed (with thanks to Sofia Barreira alicarea)
* Implement --random_seed flag across the suite, allowing random components to become reproducible
* Implement --restrict flag across the suite, allowing a function to be run on only a subset of records
* buddy_resources.RunTime() upgraded
* Fix several GenBank format annotation bugs
* Handle unknown flags more gracefully and informatively
* Better handling of error messages when piping output from one Buddy module to another
* Completely remove the ETE3 dependency (which also removes PyQt4)
* Letter annotations no longer cause everything to break
* clean_regex() function added to buddy_resources, which checks that a user supplied regex is valid
* Many unit-test updates to account for some changes in output caused by BioPython 1.69
* TempDir() given a new copy_to() method
* In conjunction with upcoming changes to BioPython, allow output in NEXUS-interleaved and NEXUS-sequential
SeqBuddy
New functions
* max_records()
* min_reocrds()
* in_silico_digest() (with thanks to Paul Gonzalez paulgzlz)
* keep_taxa()
* delete_taxa()
* prepend_organism()
* delete_recs_with_feature()
* taxonomic_breakdown()
* order_recs_by_len()
* amend_metadata()
* split_by_seq_number() (with thanks to Paul Gonzalez paulgzlz)
* split_by_file_number() (with thanks to Paul Gonzalez paulgzlz)
Upgrades
* Switch annotate() function default output to GenBank
* Implement feature ranges in extract_feature_sequences
* find_orfs() given new parameters `min_size` and `rev_comp`, and matches now numbered from large to small
* pull_recs() allows searching in the description now
* delete_records() allows searching in the description now
* find_restriction_sites now handles RNA sequences and circular sequences (with thanks to Paul Gonzalez paulgzlz)
* Various bug fixes in BLAST-related functions, increasing stability
* find_pattern() now returns start-end coords
AlignBuddy
New functions
* faux_alignment()
* Create a meaningless alignment from a collection of sequences
* extract_feature_sequences()
* percent_id()
* delete_invariant_sites
* generate_hmm()
* position_frequency_matrix()
Upgrades
* Update extract_regions() syntax to match that of SeqBuddy
* New align_tool attribute added to AlignBuddy objects
* Move MSA alias detection into buddy_resources
* Add 'weighted' parameter to consensus_sequence() (with thanks to Paul Gonzalez paulgzlz)
PhyloBuddy
New functions
* ladderize() (With thanks to Connor Skennerton ctSkennerton)
Upgrades
* display_trees() function now sends output to the default web browser as SVG, instead of PyQt
* RAxML -x flag now handled for rapid bootstrapping
DatabaseBuddy
Upgrades
* Remove all reference to GI numbers to comply with NCBI phasing them out. Everything is accession numbers now.
* Much better handling of KeyboardInterrupt. It now behaves more like you would expect from a shell environment (instead of crashing out...)
* Allow larger files to be downloaded from NCBI, using the rettype 'gbwithparts'
* Allow slices of results to be displayed with `show`
* Can now run without launching a live shell (do a search and return the results from bash)