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

Building and compiling #7

Open
LioHong opened this issue Aug 4, 2022 · 7 comments
Open

Building and compiling #7

LioHong opened this issue Aug 4, 2022 · 7 comments

Comments

@LioHong
Copy link

LioHong commented Aug 4, 2022

Hello, first of all thank you so much for keeping Evolve alive. I've tinkered with it over the course of a decade now since I was young. Now I was thinking of tweaking the code to output universe properties and the stats of all organisms to practise some bioinformatics techniques, but I'm new to C++ so I had some trouble trying to build and compile the project in Codelite. I have prior hobbyist experience with Python and Java.

Hope you could offer some guidance on this. Thank you again for keeping the project up.

@rubberduck203
Copy link
Owner

I’ll be honest with you. “Get this thing compiling and working again” has been in the back corner of my brain for a long time, but I haven’t been able to tackle that problem.

@rubberduck203
Copy link
Owner

I am really glad someone else loves this old project as much as I did though.

@LioHong
Copy link
Author

LioHong commented Aug 5, 2022

Glad to hear that. So I went on a C++ discord and asked around, and someone mentioned that they couldn't find any makefiles or MSVC solutions in the repo. Not sure what that means, but apparently those are build tools like Gradle for Java.

Well it's been a few hours later and I discovered the batch utility and ASCII export, so technically that's all I'd need from the universe.

@rubberduck203
Copy link
Owner

There are MSVC project files, like this one.

https://github.com/rubberduck203/Evolve/blob/master/evolve4src/src/evolve/evolve.vcproj

As well as some residual build logs.

https://github.com/rubberduck203/Evolve/blob/master/evolve4src/src/evolve/Release/BuildLog.htm

I think Ken was using Visual Studio when he started the project, but I don’t have any idea what version. I know the core simulation was available on *nix, but I have no idea how that was built.

(MSVC is the Microsoft C++ compiler. Solution files are used to group the project files, which actually define the build.)

@rubberduck203
Copy link
Owner

rubberduck203 commented Aug 5, 2022

Aha! There are shell scripts instead of makefiles for the *nix build!

https://github.com/rubberduck203/Evolve/blob/master/evolve4src/src/evolve_batch/linux_build.sh

@rubberduck203
Copy link
Owner

Also, just for anyone stumbling across this in the future, the windows installer is available in the releases.

https://github.com/rubberduck203/Evolve/releases

@LioHong
Copy link
Author

LioHong commented Aug 20, 2022

Hello again, I have spent the past few days preparing a repo (https://github.com/LioHong/Evolve-Simulation) that can record the stats of every organism within the simulation. In summary, my scripts convert the KFORTH genomes into a DNA-like format for ease of bioinformatic analysis. However, I ran into the limitation of Evolve itself at time-steps greater than 5000. So I would be interested in finding ways to optimise the program itself and maybe also incorporate some functions to record and observe the universe data in finer detail.

With the help of Evolve batch utility and the Photon ASCII export (PHASCII), I was able to sequentially run the simulation step-by-step and obtain the data needed to construct both an ancestry tree and a phylogenetic tree over time. I also added functions to convert the KFORTH genome to a nucleotide-like format for use with bioinformatic alignment tools, as well as a double-alphabetical format for compressed data storage.

With all these in place, I began running longer simulations of Evolve. Unfortunately, running from step=1 to step=10K took my PC 7 hr to complete, while the run from step=10K to step=20K took 24-36 hr! To somewhat circumvent this, my script can handle variable starting step, step interval and overall time period (length of run). An express mode is also included to streamline the operation process.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants