Skip to content
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

Local development improvements #35

Open
wants to merge 5 commits into
base: main
Choose a base branch
from

Conversation

BioGeek
Copy link
Contributor

@BioGeek BioGeek commented Oct 14, 2024

This PR contains a few improvements which make local development and running the benchmark easier.

  • When developing and testing your algorithm (and those of others) locally, you often want to run the benchmark only for a single algorithm and a single dataset. This is now possible, for example:
    ./run.sh sample_data/9_species_human pi-HelixNovo
  • If you want to run the whole benchmark of all algorithms on all (sample) datasets, you can now do make run_all.
  • The container_template.def recommends to copy the whole algorithms/algorithm_name folder to /algo. So the first time you build your image, a container.sif file will be created in the algorithms/algorithm_name folder. But the second time you build your image, when build_apptainer_images.sh asks if you want to force rebuild your image, it will copy the existing container.sif into the new container.sif. And so on each time you rebuild your image, just like a Matryoshka doll. I noticed this issue when the size of my container.sif had ballooned to 64GB. As a short term solution, I have added a make clean command that removes all container images and a make build_apptainer command that force builds all apptainer images. But a better long term solution is to adapt all the container.def files to only copy the files that are needed into the /algo folder.
  • I've replaced the instances where there were several subsequent pip install <package> lines one after the other with a single pip install <list of packages>. If pip can see all the packages at once it can resolve conflicts between package dependencies more effectively. It also avoids redundant resolution steps, making the installation process faster.
  • The flag option in run.sh to recalculate all algorithm outputs didn't work for me, so I've set the default value to true.

@PominovaMS PominovaMS added the enhancement New feature or request label Mar 10, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants