{"id":16411978,"url":"https://github.com/amirmasoudabdol/flyopt","last_synced_at":"2026-06-13T18:33:30.845Z","repository":{"id":70085897,"uuid":"83037891","full_name":"amirmasoudabdol/flyOpt","owner":"amirmasoudabdol","description":"The Drosophila melanogaster gap genes circuit simulator, coupled with Scatter Search optimization algorithm","archived":false,"fork":false,"pushed_at":"2017-02-24T13:43:18.000Z","size":537,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-02-24T05:47:23.438Z","etag":null,"topics":["biological-simulations","drosophila","gene-regulation","numerical-optimization","optimization-algorithms"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/amirmasoudabdol.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-02-24T12:10:11.000Z","updated_at":"2019-04-18T17:30:49.000Z","dependencies_parsed_at":"2023-03-06T20:15:39.660Z","dependency_job_id":null,"html_url":"https://github.com/amirmasoudabdol/flyOpt","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/amirmasoudabdol/flyOpt","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amirmasoudabdol%2FflyOpt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amirmasoudabdol%2FflyOpt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amirmasoudabdol%2FflyOpt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amirmasoudabdol%2FflyOpt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/amirmasoudabdol","download_url":"https://codeload.github.com/amirmasoudabdol/flyOpt/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amirmasoudabdol%2FflyOpt/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34296375,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-13T02:00:06.617Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["biological-simulations","drosophila","gene-regulation","numerical-optimization","optimization-algorithms"],"created_at":"2024-10-11T06:47:13.628Z","updated_at":"2026-06-13T18:33:30.831Z","avatar_url":"https://github.com/amirmasoudabdol.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# flyOpt                       {#mainpage}\n\n*flyOpt* is a combined simulator and optimizer of *D. melanogaster* gap gene network. Simulator implements the *Connectionist Model of Development* in which the interaction between group of genes being simulated both in time and space (embryo) to produce spatio-temporal gene expression patterns of gap genes. The optimizer embedded in the code uses *Scatter Search* algorithm to find parameters of the gap genes network by fitting the model to the data.\n\n## Requirements\n\nBefore compilation, you need to install several key packages:\n\n- [GSL](https://www.gnu.org/software/gsl/)\n- [Sundials](http://computation.llnl.gov/projects/sundials)\n- [gnuplot](http://www.gnuplot.info), only for visualization, `v` script `visualizer/`\n- [Perl](https://www.perl.org), necessary dependency of flyOpt code. (Perl is usually available on macOS (OS X) and almost all Linux system.)\n- [Doxygen](http://www.stack.nl/~dimitri/doxygen/), for documentation\n\nThe packages listed above can be install using [homebrew](http://brew.sh) on macOS by: `brew install gsl sundials gnuplot doxygen`. On Linux, search for the packages in your package manager.\n\n## Components and Structure of the Code\n\nThe code consists of few components:\n\n- *D. melanogaster gap gene network simulator* (`fly/` \u0026 `utils/`)\n- *[Scatter Search](ss/README.md)* optimization algorithm (`ss/`)\n- *[Enhanced Scatter Search](ess/README.md)* optimization algorithm (`ess/`)\n- *Visualization* scripts, a simple Perl script implemented to read parameters from an input file, simulate the expression patterns and plot the final results. (`visualizer/`)\n\n## Compiling and Running the code\n\n### Setting the Makefile parameters\n\nBefore starting the compilation process you need to make sure that `fly/Makefile` knows `sundials` and `gsl` path in your system. Set `SUNDIAL` variable at line `57` to your sundial installation path. In most cases system can find `GSL` if it's installed properly.\n\n### Compilation\n\nThe compilation process is based on the optimization method of choice.  Compilations with the `METHOD=-DSS` generated the `fly_ss` executable which optimize the problem using **Scatter Search** algorithm.\n\n`make veryclean; make METHOD=-DSS deps; make METHOD=-DSS`\n\nCompilation with the flag `METHOD=-DESS` produces the `fly_ess` executable which optimize the problem using **Enhanced Scatter Search** algorithm. \n\n`make veryclean; make METHOD=-DESS deps; make METHOD=-DESS`\n\n### Running the Simulation\n\nThere are several options available via command line to run the optimizer. Almost all the command line parameters are also available on the input file as well. In order to get the list of parameters run: `./fly_[method] -h` to get:\n\n    Usage: fly_[method] [options] \u003cdatafile\u003e\n\n    Argument:\n      \u003cdatafile\u003e          input data file\n\n    Options:\n      -a \u003caccuracy\u003e       solver accuracy for adaptive stepsize ODE solvers\n      -D                  debugging mode, prints all kinds of debugging info\n      -f \u003cparam_prec\u003e     float precision of parameters is \u003cparam_prec\u003e\n      -g \u003cg(u)\u003e           chooses g(u): e = exp, h = hvs, s = sqrt, t = tanh\n      -h                  prints this help message\n      -i \u003cstepsize\u003e       sets ODE solver stepsize (in minutes)\n      -m \u003cscore_method\u003e   w = wls, o=ols score calculation method\n      -n                  nofile: don't print .log or .state files\n      -N                  generates landscape to .landscape file in equilibrate mode \n      -s \u003csolver\u003e         choose ODE solver\n      -v                  print version and compilation date\n      -w \u003cout_file\u003e       write output to \u003cout_file\u003e instead of \u003cdatafile\u003e\n      -y \u003clog_freq\u003e       write log every \u003clog_freq\u003e * tau moves\n\nSample run command would be like:\n\n`./fly/fly_ss -s rck -i 4.0 -a 0.001 input/sample_input.inp`\n\nThe results of the simulation will be saved in a new folder at `input/sample_input.inp/`.\n\n**Note:** Make sure that input file contain appropriate algorithm parameters. Check `[$ss paramters](ss/README.md)` and `[$ess paramters](ess/README.md)`\n\n### Visualization\n\nIn order to visualize the simulation results, you can run `drawPlots` script. `drawPlots` uses `v` script to simulate and plot the gene expression levels in all predefined time-points (`10.550, 24.225, 30.475, 36.725, 42.975, 49.225, 55.475, 61.725, 67.975`). For more detailed visualization check `v -h`.\n\n`./drawPlots output_file`\n\n**Note::** Make sure that `$unf` and `$printsc` variables at line `59` of `v` script points to `unfold` and `printscore` executable.\n\n## Documentation\n\nFor full documentation, run `doxygen` command in the main folder. Then open `doc/html/index.html`\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famirmasoudabdol%2Fflyopt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Famirmasoudabdol%2Fflyopt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famirmasoudabdol%2Fflyopt/lists"}