Skip to content

Commit

Permalink
All code.
Browse files Browse the repository at this point in the history
  • Loading branch information
dnlobo committed Aug 23, 2023
1 parent 26b2b0a commit 59f8587
Show file tree
Hide file tree
Showing 195 changed files with 17,831 additions and 0 deletions.
16 changes: 16 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
Builds
GeneratedFiles
Doc
CodeAnalyst
ipch
MacBuild
Temp
x64
*.exe
*.zip
*.sdf
*.suo
*.sln.docstates
memory_leaks.txt
*.opendb
*.db
28 changes: 28 additions & 0 deletions Evolution.sln
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
VisualStudioVersion = 14.0.25420.1
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Evolution", "Evolution.vcxproj", "{B12702AD-ABFB-343A-A199-8E24837244A3}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{B12702AD-ABFB-343A-A199-8E24837244A3}.Debug|x64.ActiveCfg = Debug|x64
{B12702AD-ABFB-343A-A199-8E24837244A3}.Debug|x64.Build.0 = Debug|x64
{B12702AD-ABFB-343A-A199-8E24837244A3}.Debug|x86.ActiveCfg = Debug|Win32
{B12702AD-ABFB-343A-A199-8E24837244A3}.Debug|x86.Build.0 = Debug|Win32
{B12702AD-ABFB-343A-A199-8E24837244A3}.Release|x64.ActiveCfg = Release|x64
{B12702AD-ABFB-343A-A199-8E24837244A3}.Release|x64.Build.0 = Release|x64
{B12702AD-ABFB-343A-A199-8E24837244A3}.Release|x86.ActiveCfg = Release|Win32
{B12702AD-ABFB-343A-A199-8E24837244A3}.Release|x86.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
558 changes: 558 additions & 0 deletions Evolution.vcxproj

Large diffs are not rendered by default.

51 changes: 51 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# Automatic design of GRMs for spatial patterns

Supplementary Data for:

> Automatic design of gene regulatory mechanisms for spatial pattern formation<br>
> Reza Mousavi and Daniel Lobo<br>
[Lobo Lab](https://lobolab.umbc.edu)<br>
> *Under review*
We present a general framework to automatically design GRMs able to produce any given spatial pattern. The automated method is based on high-performance evolutionary computation to rapidly design GRMs--including the necessary number of genes and interaction mechanisms.

## Building
Two different solutions are included:
* Evolution: an evolutionary algorithm for designing GRMs
* Viewer: user interface for visualizing the evolutionary algorithm results

Open each solution and compile them with Microsoft Visual Studio. Make sure the required dependencies are installed on your computer.

## Dependencies
* Microsoft Visual Studio
* NVIDIA CUDA Toolkit
* Eigen
* Qt
* Qwt

## Implementation
The `Src` folder contains all the C++ source code. It is further organized into the following folders:

### `Common`
This folder includes helper classes to handle files, save logs, and perform general mathematical methods.

### `DB`
This folder contains the code for accessing the database files that store the settings and results of the automated algorithm. These include the parameters needed to run the method, the GRMs produced during the evolutionary search, and the evolutionary statistics computed during execution. The viewer can open these files to display the results of an evolutionary run.

### `Experiment`
This folder includes the code to specify the target spatial gene expression pattern defined in an experiment. The input target pattern is implemented as an image, in which each color corresponds to a different gene.

### `GPUSimulator`
This folder contains the simulator that runs on the GPU. This includes the simulation of GRMs and the computation of their fitness (error with respect the target gene expression pattern). In addition, this folder includes classes for the initialization of GPUs, the copying of input gene expression patterns, and the transfer of GRMs and their numerical fitness between the CPU and GPU memory.

### `Model`
This folder includes the implementation of GRMs. A mechanism includes a set of genes and their parameters and a set of links specifying the type of regulatory interactions between two genes and their parameters.

### `Search`
This folder contains the code for loading the parameters of the evolutionary algorithm, handling the mechanism populations on the different islands, generating new mechanisms by executing evolutionary operators (crossover and mutation), and selecting the next generation populations. The folder also includes an implementation of the mechanism fitness calculator that runs on the CPU.

### `Simulator`
This folder includes the simulator that runs on the CPU. This includes the implementation for generating the two-dimensional orthogonal input morphogen gradients, loading parameters related to the simulation, loading the GRMs defined as classes into a system of PDEs for simulation, and performing the numerical simulation using an Euler finite difference method.

### `UI`
The UI folder contains the user interface for both the evolution and viewer. The evolution program is run with a command line interface that uses a multi-thread implementation for maximizing performance. The viewer includes a graphical user interface to visualize the results of the evolution and perform simulations of the discovered mechanisms.
Binary file added Resources/Images/famfamfam_silk_icons/add.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Resources/Images/famfamfam_silk_icons/brick.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Resources/Images/famfamfam_silk_icons/bullet_add.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Resources/Images/famfamfam_silk_icons/bullet_red.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Resources/Images/famfamfam_silk_icons/calculator.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Resources/Images/famfamfam_silk_icons/connect.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Resources/Images/famfamfam_silk_icons/delete.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Resources/Images/famfamfam_silk_icons/door_in.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Resources/Images/famfamfam_silk_icons/find.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Resources/Images/famfamfam_silk_icons/heart_add.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Resources/Images/famfamfam_silk_icons/help.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Resources/Images/famfamfam_silk_icons/pill_add.png
Binary file added Resources/Images/famfamfam_silk_icons/pill_go.png
Binary file added Resources/Images/famfamfam_silk_icons/report.png
Binary file added Resources/Images/famfamfam_silk_icons/transmit.png
41 changes: 41 additions & 0 deletions Resources/resources.qrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
<RCC>
<qresource prefix="/">
<file>Images/famfamfam_silk_icons/add.png</file>
<file>Images/famfamfam_silk_icons/application_view_detail.png</file>
<file>Images/famfamfam_silk_icons/brick.png</file>
<file>Images/famfamfam_silk_icons/bullet_add.png</file>
<file>Images/famfamfam_silk_icons/bullet_black.png</file>
<file>Images/famfamfam_silk_icons/bullet_blue.png</file>
<file>Images/famfamfam_silk_icons/bullet_delete.png</file>
<file>Images/famfamfam_silk_icons/bullet_green.png</file>
<file>Images/famfamfam_silk_icons/bullet_red.png</file>
<file>Images/famfamfam_silk_icons/bullet_white.png</file>
<file>Images/famfamfam_silk_icons/connect.png</file>
<file>Images/famfamfam_silk_icons/database_add.png</file>
<file>Images/famfamfam_silk_icons/database_delete.png</file>
<file>Images/famfamfam_silk_icons/database_go.png</file>
<file>Images/famfamfam_silk_icons/database_save.png</file>
<file>Images/famfamfam_silk_icons/delete.png</file>
<file>Images/famfamfam_silk_icons/door_in.png</file>
<file>Images/famfamfam_silk_icons/find.png</file>
<file>Images/famfamfam_silk_icons/folder_database.png</file>
<file>Images/famfamfam_silk_icons/heart_add.png</file>
<file>Images/famfamfam_silk_icons/page_white_database.png</file>
<file>Images/famfamfam_silk_icons/picture_save.png</file>
<file>Images/famfamfam_silk_icons/pill_add.png</file>
<file>Images/famfamfam_silk_icons/pill_go.png</file>
<file>Images/famfamfam_silk_icons/shape_handles.png</file>
<file>Images/famfamfam_silk_icons/shape_move_backwards.png</file>
<file>Images/famfamfam_silk_icons/shape_square.png</file>
<file>Images/famfamfam_silk_icons/shape_square_delete.png</file>
<file>Images/famfamfam_silk_icons/table_delete.png</file>
<file>Images/quadrupleHead32.png</file>
<file>Images/famfamfam_silk_icons/transmit.png</file>
<file>Images/famfamfam_silk_icons/database_lightning.png</file>
<file>Images/famfamfam_silk_icons/calculator.png</file>
<file>Images/famfamfam_silk_icons/report.png</file>
<file>Images/famfamfam_silk_icons/calculator_add.png</file>
<file>Images/famfamfam_silk_icons/picture_delete.png</file>
<file>Images/famfamfam_silk_icons/help.png</file>
</qresource>
</RCC>
32 changes: 32 additions & 0 deletions Resources/versionInfo.rc
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
// Copyright (c) Lobo Lab (lobolab.umbc.edu)
// All rights reserved.

#include <windows.h>
#include "version.h"

VS_VERSION_INFO VERSIONINFO
FILEVERSION V_MAYORVERSION, V_MINORVERSION, V_BUGFIXVERSION
PRODUCTVERSION V_MAYORVERSION, V_MINORVERSION, V_BUGFIXVERSION
FILEFLAGSMASK 0x3fL
FILEFLAGS 0
FILEOS VOS_NT_WINDOWS32
FILETYPE VFT_APP
FILESUBTYPE VFT2_UNKNOWN
BEGIN
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x409, 1200
END
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904b0"
BEGIN
VALUE "CompanyName", V_COMPANYNAME
VALUE "FileDescription", V_FILEDESCRIPTION
VALUE "LegalCopyright", V_LEGALCOPYRIGHT
VALUE "OriginalFilename", V_ORIGINALFILENAME
VALUE "ProductName", V_PRODUCTNAME
VALUE "ProductVersion", V_PRODUCTVERSION
END
END
END
28 changes: 28 additions & 0 deletions SearchViewer.sln
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
VisualStudioVersion = 14.0.23107.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SearchViewer", "SearchViewer.vcxproj", "{B12702AD-ABFB-343A-A199-8E24837244A3}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{B12702AD-ABFB-343A-A199-8E24837244A3}.Debug|x64.ActiveCfg = Debug|x64
{B12702AD-ABFB-343A-A199-8E24837244A3}.Debug|x64.Build.0 = Debug|x64
{B12702AD-ABFB-343A-A199-8E24837244A3}.Debug|x86.ActiveCfg = Debug|Win32
{B12702AD-ABFB-343A-A199-8E24837244A3}.Debug|x86.Build.0 = Debug|Win32
{B12702AD-ABFB-343A-A199-8E24837244A3}.Release|x64.ActiveCfg = Release|x64
{B12702AD-ABFB-343A-A199-8E24837244A3}.Release|x64.Build.0 = Release|x64
{B12702AD-ABFB-343A-A199-8E24837244A3}.Release|x86.ActiveCfg = Release|Win32
{B12702AD-ABFB-343A-A199-8E24837244A3}.Release|x86.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
Loading

0 comments on commit 59f8587

Please sign in to comment.