Genolink is a middleware solution enabling seamless integration and interoperability between genotype databases and Genesys-PGR (genebank passport repository). Genolink is funded as part of the Australian Grains Genebank Strategic Partnership, a $30M joint investment between the Victorian State Government and Grains Research and Development Corporation (GRDC) that aims to unlock the genetic potential of plant genetic resources for the benefit of the Australian grain growers. https://agriculture.vic.gov.au/crops-and-horticulture/the-australian-grains-genebank
-
Connects genotype databases and Genesys-PGR without the need for data duplication, reducing synchronization issues and overheads.
-
Provides real-time access to passport and genotype data, ensuring users always have current information.
-
Allows users to filter accessions based on passport information or specified lists of accessions ot specified lists of genotype ids before retrieving related genotype data.
-
Supports integration with multiple genomic platforms, enabling comprehensive data retrieval and consolidation.
-
Provides APIs for independent user-facing tools like the web-based genomic visualization tool Pretzel to leverage its functionality.
-
Reduces data redundancy by avoiding the need for local duplicate copies of databases.
Note: For any placeholder values (e.g.,
<your_db_username>,<your_db_password>, etc.), please replace them with the correct data that you need to use.
Make sure you have installed:
- Node.js (v20+)
- npm (v6+)
- MySQL (server & client)
Clone the project repository to your local machine from GitHub:
git clone <repository_url>Navigate to the 'front' directory and install dependencies:
npm installCreate a .env file in the 'front' directory with the following content:
VITE_Genesys_OIDC_CLIENT_ID=<your_client_id>
VITE_Genesys_OIDC_CLIENT_SECRET=<your_client_secret>
VITE_GENOLINK_SERVER=<your_Genolink_server_address> # e.g. https://genolink.plantinformatics.io OR http://127.0.0.1:3000
VITE_GENESYS_SERVER=https://api.sandbox.genesys-pgr.orgGenesys environment alignment
- If you are using Genesys sandbox, set:
VITE_GENESYS_SERVER=https://api.sandbox.genesys-pgr.org- Use the sandbox Client ID and Secret.
- If you are using Genesys production, set:
VITE_GENESYS_SERVER=https://api.genesys-pgr.org- Use the production Client ID and Secret.
Note: To obtain the correct Genesys OIDC Client ID and Secret for your Genolink server address (e.g. your domain or local 127.0.0.1:3000), please contact the Genesys support team. Sandbox and production have different Client IDs and Secrets. Make sure the URL and credentials belong to the same Genesys environment.
Build the frontend and move the generated 'dist' folder to the backend's root directory:
npm run build
mv dist ../back/Navigate to the back directory and install dependencies:
npm install_Install MySQL server and client for your OS _Start MySQL server _Create a database user and database:
CREATE USER '<your_db_username>'@'localhost' IDENTIFIED BY '<your_db_password>';
CREATE DATABASE <your_db_name>;GRANT ALL PRIVILEGES ON <your_db_name>.* TO '<your_db_username>'@'localhost';
FLUSH PRIVILEGES;Create a .env file in the 'back' directory with the following content:
DB_USERNAME=<your_db_username>
DB_PASSWORD=<your_db_password>
DB_NAME=<your_db_name>
DB_HOST=localhost
DB_DIALECT=mysql
GIGWA_SERVER=<your_Gigwa_server_url>
GENOLINK_SERVER=<your_Genolink_server_address> # e.g. https://genolink.plantinformatics.io OR http://127.0.0.1:3000
GENESYS_SERVER=https://api.sandbox.genesys-pgr.org
APP_PORT=<PORT> # e.g. 3000Start the backend server by running the following in 'back' folder:
node index.jsOpen your browser and navigate to http://localhost:3000 to use your application.
Make sure you have installed:
- Docker (v20+)
- Docker Compose (v1.29+)
Clone the project repository to your local machine from GitHub:
git clone <repository_url>Example .env content:
DB_ROOT_PASSWORD=<your_root_mysql_password>
DB_USERNAME=<your_db_username>
DB_PASSWORD=<your_db_password>
DB_NAME=<your_db_name>
DB_HOST=db
DB_DIALECT=mysql
GENOLINK_SERVER=<your_Genolink_server_address> # e.g. https://genolink.plantinformatics.io OR http://127.0.0.1:3000
GENESYS_SERVER=https://api.sandbox.genesys-pgr.org
APP_PORT=<PORT> # e.g. 3000
DB_PORT=<PORT> # e.g. 3306
VITE_Genesys_OIDC_CLIENT_ID=<your_Genesys_client_id>
VITE_Genesys_OIDC_CLIENT_SECRET=<your_Genesys_client_secret>
VITE_GENOLINK_SERVER=<your_Genolink_server_address> # e.g. https://genolink.plantinformatics.io OR http://127.0.0.1:3000
VITE_GENESYS_SERVER=https://api.sandbox.genesys-pgr.org
VITE_PLATFORM=Gigwa
VITE_REQUIRE_GIGWA_CREDENTIALS=true
BASE_PATH=<optional_base_path> # e.g. /test OR leave empty for rootGenesys environment alignment
- If you are using Genesys sandbox, set:
VITE_GENESYS_SERVER=https://api.sandbox.genesys-pgr.org- Use the sandbox Client ID and Secret.
- If you are using Genesys production, set:
VITE_GENESYS_SERVER=https://api.genesys-pgr.org- Use the production Client ID and Secret.
Note: To obtain the correct Genesys OIDC Client ID and Secret for your Genolink server address (e.g. your domain or local 127.0.0.1:3000), please contact the Genesys support team. Sandbox and production have different Client IDs and Secrets. Make sure the URL and credentials belong to the same Genesys environment.
Navigate to the directory containing the docker-compose.yml file and run the following command to start the containers:
docker-compose up -dOpen your browser and navigate to your_genolink_domain to use your application.
