FePhyFoFum / phyx

phylogenetics tools for linux (and other mostly posix compliant) computers
blackrim.org
GNU General Public License v3.0
112 stars 17 forks source link

Code cleanup #126

Closed josephwb closed 4 years ago

josephwb commented 4 years ago

Ok, some lose ends remain, but this involves a lot of bug fixes and speedups, so pushing this through now, and will pick up the remnants shortly.

Changes to Phyx

Repo-wide

Issues addressed

New programs

Miscellaneous (no particular order)

void foo (some args) { // some initializing code here { Timer tm; // do something here to be timed } // do something else }

- `pxupgma` was completely rewritten. somewhere along the line, it stopped producing the correct result (using PAUP* as a check)
- `pslssq` now handles all the supported datatypes (DNA, AA, BINARY, MULTI) rather than just the first 2
- `pxboot` overhauled
- `pxclsq` refactored
- added the ability to peek at line(s) in a stream to make decisions for downstream procedures without losing position in the stream. found in `utils.h`:

std::string peek_line (std::istream& pios); std::vector peek_lines (std::istream& pios, const int& n);


- `pxaa2cdn` was overhauled (more efficient, and better error-checking)
- more consistent member variable names and formatting
- remedy various `-Wall` compiler warnings
- tree cloner in `tree.h`. important if we want to do something with a tree _and_ keep the original
- `pxs2nex` write the correct Nexus datatype and alphabet
- a bunch of new example files in `/src/TEST`. all the crazy phylip formats, interleaved Nexus files, binary and morphology alignments, etc.
- `pxtrt` overhaul
- about 40K other minor changes