-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Major code refactoring and various cosmetic changes #11
base: main
Are you sure you want to change the base?
Conversation
Hi Benoit, I have restricted some options not to be used together, but I am not completely sure regarding the following 2 points:
Could you, please, tell if this looks sensible? Best, |
Hi Stefan, I will be continuing Benoit's work with AleRax. Thanks for opening this PR! I will look into your changes and questions. Best, |
Hi Noah, It's good to know that AleRax will be actively maintained again! Since I didn't expect any updates coming, I've been doing major code refactoring for a couple of months (fixing a number of small bugs, code structure optimization, making output more fancy and stuff mentioned in this PR description) and was going to publish the changes within this PR in the coming weeks. Now I'll have to update my changes by including your recent commits and hope to publish the final version of the PR by the end of the next week. Best, |
…ckpoints for the mixture alpha and highways
Dear @noahares and @BenoitMorel , The PR is ready for review. I started the work in August. The main goal was refactoring the code to make it more logically organized, succinct and readable. Some functions changed their names, some were merged, splitted or even removed, but the algorithmic side is left 99% intact. The 1% goes to fixing small bugs like making the optimized rate gamma categories to be included to the actual evaluators, proper speciation date backuping, proper branch label update on changing topology etc. The output became more user-friendly, as the help menu did. Incompatible options now cannot be run together leading to explicit error messages. Checkpointing became more error-proof by remembering the filtered families, the rate mixture parameter and highways and by prohibiting running with changed options. The code has been eye-checked countless times, and test runs in various modes have not uncovered any errors or unexpected LL changes compared to the current version performance. I have also run tests using corrected reconciliation models (not part of this PR, see below) to ensure everything works fine even where the current version fails. The only obvious problem we have is the style discrepancy. Most of the changes were done before Noah's publishing of the restyled code. Since my amendments are numerous and quite diffuse, I could not reproduce them on the current restyled code version from scratch. Thus, I only managed to include your HGT highway search improvements to my code, yet left all the code mostly in the original style of Benoit (barring extra whitespaces and newlines). If you find something in the code that doesn't seem right, please contact me back :) With best hopes for understanding, |
Hi @StefanFlaumberg, Thank you very much for the work you put into this! I will have a look into the changes as soon as possible. I am currently working on some improvements and feature extensions myself which are semi time-critical so I hope to merge your changes before I work on mine (or deal with merging both later). The "restyling" is exclusively from the clangd-format file so unifying the styles should not be an issue. If you have suggestions to changes to the style file, let me know. Best |
Hi @noahares , I didn't know about automatically formatting the code. Well, great that no one will have to reformat the changes manually. I'm fine with that) Considering your time constraints, just to synchronize: Best wishes, |
Hi @noahares , Hope your work on the program is going well. Since it's already been 3 weeks, I just wanted to kindly remind you of this PR and to inform that I'm also ready with another PR fixing the reconciliation models. Could you please roughly outline when you think you'll be able to check it? Thank you for your time! Best, |
Hi @StefanFlaumberg, My current workload and travels did not yet allow for sitting down to fully inspect the changes. I hope you understand that even though most changes are simple, I want to look through them closely for a codebase I am familiarizing myself with at the moment and plan to maintain in the long run. Best |
This pull request depends on the noahares/GeneRaxCore#1 PR
Together they introduce the following changes: