Skip to content

Commit

Permalink
SUT genome-nexus
Browse files Browse the repository at this point in the history
  • Loading branch information
arcuri82 committed Sep 12, 2022
1 parent ebe1a21 commit 0bd9ea0
Show file tree
Hide file tree
Showing 584 changed files with 49,647 additions and 0 deletions.
36 changes: 36 additions & 0 deletions jdk_8_maven/cs/rest-gui/genome-nexus/.circleci/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# Use the latest 2.1 version of CircleCI pipeline process engine.
# See: https://circleci.com/docs/2.0/configuration-reference
version: 2.1

# Define a job to be invoked later in a workflow.
# See: https://circleci.com/docs/2.0/configuration-reference/#jobs
jobs:
# Below is the definition of your job to build and test your app, you can rename and customize it as you want.
build:
# These next lines define a Docker executor: https://circleci.com/docs/2.0/executor-types/
# You can specify an image from Dockerhub or use one of our Convenience Images from CircleCI's Developer Hub.
# Be sure to update the Docker image tag below to openjdk version of your application.
# A list of available CircleCI Docker Convenience Images are available here: https://circleci.com/developer/images/image/cimg/openjdk
docker:
- image: cimg/openjdk:11.0
# Add steps to the job
# See: https://circleci.com/docs/2.0/configuration-reference/#steps
steps:
# Checkout the code as the first step.
- checkout
# Use mvn clean and package as the standard maven build phase
- run:
name: Build
command: mvn -DskipTests clean install
# Then run your tests!
- run:
name: Test
command: mvn test

# Invoke jobs via workflows
# See: https://circleci.com/docs/2.0/configuration-reference/#workflows
workflows:
sample: # This is the name of the workflow, feel free to change it to better match your workflow.
# Inside the workflow, you define the jobs you want to run.
jobs:
- build
2 changes: 2 additions & 0 deletions jdk_8_maven/cs/rest-gui/genome-nexus/.dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
notebooks/*
docs/*
33 changes: 33 additions & 0 deletions jdk_8_maven/cs/rest-gui/genome-nexus/.editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# The EditorConfig project consists of a file format for defining coding styles
# and a collection of text editor plugins that enable editors to read the file format
# and adhere to defined styles.

# EditorConfig files are read top to bottom and the closest EditorConfig files are read last.
# Properties from matching EditorConfig sections are applied in the order they were read,
# so properties in closer files take precedence.

# Please only specify the formats you want to apply through out the project in this file.
# Otherwise, please create new config file in your directory where you want to apply these styles.

# More details about EditorConfig: http://EditorConfig.org

# top-most EditorConfig file
root = true

[*]
# 4 space indentation
indent_style = space
indent_size = 4
# Unix-style newlines with a newline ending every file
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true

# Formats for markdown files only
[*.md]
trim_trailing_whitespace = false

# Formats for HTML files only
[**.html]
insert_final_newline = false
4 changes: 4 additions & 0 deletions jdk_8_maven/cs/rest-gui/genome-nexus/.env
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
REF_ENSEMBL_VERSION=ensembl92_grch37
VEP_ASSEMBLY=GRCh37
VEP_CACHE=/opt/vep/.vep/
SPECIES=homo_sapiens
5 changes: 5 additions & 0 deletions jdk_8_maven/cs/rest-gui/genome-nexus/.gitbook.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
root: ./docs/

structure:
readme: README.md
summary: SUMMARY.md
75 changes: 75 additions & 0 deletions jdk_8_maven/cs/rest-gui/genome-nexus/.github/release-drafter.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
name-template: 'v$NEXT_PATCH_VERSION'
tag-template: 'v$NEXT_PATCH_VERSION'
categories:
- title: '🧬 Features'
labels:
- 'feature'
- 'cl-feature'
- title: '✨ Enhancements'
labels:
- 'enhancement'
- 'cl-enhancement'
- title: '🐛 Bug Fixes'
labels:
- 'fix'
- 'bugfix'
- 'bug'
- 'cl-bug'
- title: '🏎 Performance Tweaks'
labels:
- 'performance'
- 'cl-performance'
- title: '🎨 Style Tweaks'
labels:
- 'style tweak'
- 'cl-style-tweak'
- title: '⚙️ REST API Changes'
labels:
- 'api'
- title: '⚙️ Changes to handle external APIs'
labels:
- 'external api'
- 'cl-external-api'
- title: '🗄 Database Migration'
labels:
- 'includes db changes'
- 'migration'
- 'cl-db-migration'
- title: '⚠️ Deprecation'
labels:
- 'deprecation'
- 'cl-deprecation'
- title: '📘 Documentation'
labels:
- 'documentation'
- 'cl-documentation'
- title: '🧹 Cleanup & Refactoring 🔧'
labels:
- 'cleanup'
- 'refactoring'
- 'cl-refactoring'
- title: '👷‍♀️ Testing, Configuration & Deployment'
labels:
- 'devops'
- 'test'
- 'cl-test'
- 'cl-devops'
- title: '🧰 Maintenance'
labels:
- 'chore'
- 'dependencies'
- 'cl-chore'
- title: '📐 Prototype (Internal Use)'
labels:
- 'cl-prototype'
exclude-labels:
- 'skip-changelog'
- 'cl-skip-changelog'
change-template: '- $TITLE @$AUTHOR (#$NUMBER)'
template: |
## Changes
$CHANGES
## 🕵️‍♀️ Full commit logs
- https://github.com/genome-nexus/genome-nexus/compare/$PREVIOUS_TAG...v$NEXT_PATCH_VERSION
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
name: Test annotation endpoint with OncoKB

on:
schedule:
- cron: '1 0 * * *'

jobs:
test-oncokb-endpoint:
runs-on: ubuntu-latest
steps:
- name: GET oncokb data
env:
ONCOKB_TOKEN: ${{ secrets.ONCOKB_TOKEN }}
run: |
curl -X GET --header 'Accept: application/json' 'https://www.genomenexus.org/annotation/17%3Ag.41242962_41242963insGA?token=$ONCOKB_TOKEN&fields=oncokb' -w ",http_code:%{http_code}" > curl_response.txt
SEARCH_HTTP_CODE="http_code:200"
SEARCH_ONCOKB="oncokb"
FILE="curl_response.txt"
if [ `grep -q "$SEARCH_HTTP_CODE" "$FILE"` -a `grep -q "$SEARCH_ONCOKB" "$FILE"` ]
then
echo "Request succeeded"
exit 0
else
echo "Request failed"
exit 1
fi
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
name: Publish Docker Image on Tag
on:
push:
tags: '*'
jobs:
build_and_publish:
runs-on: ubuntu-latest
steps:
- name: 'Checkout git repo'
uses: actions/checkout@v1
- name: Publish Docker Image on Tag
uses: docker/build-push-action@v1
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
repository: genomenexus/gn-spring-boot
tag_with_ref: true
push: ${{ startsWith(github.ref, 'refs/tags/') }}
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
name: Release Management

on:
push:
# branches to consider in the event; optional, defaults to all
branches:
- master

jobs:
update_draft_release:
runs-on: ubuntu-latest
steps:
# Drafts your next Release notes as Pull Requests are merged into "master"
- uses: toolmantim/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
name: Test Build of Docker image
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
steps:
- name: 'Checkout git repo'
uses: actions/checkout@v1
- name: Build Docker image
uses: docker/[email protected]
with:
repository: genomenexus/gn-spring-boot
# don't push, since this is a test
push: false
14 changes: 14 additions & 0 deletions jdk_8_maven/cs/rest-gui/genome-nexus/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
target/
pom.xml.tag
pom.xml.releaseBackup
pom.xml.versionsBackup
pom.xml.next
release.properties
dependency-reduced-pom.xml
buildNumber.properties
application.properties
*.iml
.idea/
*.ipr
*.iws
*.DS_Store
8 changes: 8 additions & 0 deletions jdk_8_maven/cs/rest-gui/genome-nexus/.travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
language: java
jdk:
- openjdk8
- openjdk13
script:
- mvn clean install
after_success:
- bash <(curl -s https://codecov.io/bash)
9 changes: 9 additions & 0 deletions jdk_8_maven/cs/rest-gui/genome-nexus/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
FROM maven:3.6-jdk-13
RUN mkdir /genome-nexus
ADD . /genome-nexus
WORKDIR /genome-nexus
RUN mvn -DskipTests clean install

FROM openjdk:13-slim
COPY --from=0 /genome-nexus/web/target/*.war /app.war
CMD ["java", "-Dspring.data.mongodb.uri=${MONGODB_URI}", "-jar", "/app.war"]
21 changes: 21 additions & 0 deletions jdk_8_maven/cs/rest-gui/genome-nexus/LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
MIT License

Copyright (c) Genome Nexus

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
1 change: 1 addition & 0 deletions jdk_8_maven/cs/rest-gui/genome-nexus/Procfile
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
web: SERVER_PORT=${PORT} java $JAVA_OPTS -Dspring.data.mongodb.uri=${MONGODB_URI} -jar web/target/web-*.jar
86 changes: 86 additions & 0 deletions jdk_8_maven/cs/rest-gui/genome-nexus/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
# Genome Nexus 🧬

Genome Nexus, a comprehensive one-stop resource for fast, automated and
high-throughput annotation and interpretation of genetic variants in cancer.
Genome Nexus integrates information from a variety of existing resources,
including databases that convert DNA changes to protein changes, predict the
functional effects of protein mutations, and contain information about mutation
frequencies, gene function, variant effects, and clinical actionability.

## Documentation 📖
See the [docs](https://docs.genomenexus.org)

## Run 💻

### Alternative 1 - run genome-nexus, mongoDB and genome-nexus-vep in docker containers
First, set environment variables for Ensembl Release, VEP Assembly, location of VEP Cache, and species (since a mouse instalation is supported). If these are not, the default values from `.env` will be set.

The reference genome and Ensembl release must be consistent with a version in [genome-nexus-importer/data/](https://github.com/genome-nexus/genome-nexus-importer/tree/master/data).
For example `grch37_ensembl92`, `grch38_ensembl92` or `grch38_ensembl95`:
```
export REF_ENSEMBL_VERSION=grch38_ensembl92
```
If you want to setup Genome Nexus for mouse, also set the `SPECIES` variable to 'mus_musculus'. Also see the [docs](https://github.com/genome-nexus/genome-nexus-importer/blob/master/docs/setup-genome-nexus-mouse.md) to create a mouse database.
```bash
export SPECIES=mus_musculus
```

If you would like to do local VEP annotations instead of using the public Ensembl API, please uncomment `# gn_vep.region.url=http://localhost:6060/vep/human/region/VARIANT` in your `application.properties`. This will require you to download the VEP cache files for the preferred Ensembl Release and Reference genome, see our documentation on [downloading the Genome Nexus VEP Cache](https://github.com/genome-nexus/genome-nexus-vep/blob/master/README.md#create-vep-cache). This will take several hours.
```
# Set local cache dir
export VEP_CACHE=<local_vep_cache>
# GRCh38 or GRCh37
export VEP_ASSEMBLY=GRCh38
```

Run docker-compose to create images and containers:
```
docker-compose up --build -d
```

Run without recreating images:
```
docker-compose up -d
```

Run without Genome Nexus VEP:
```
# Start both the Web and DB (dependency of Web) containers
docker-compose up -d web
```

Stop and remove containers:
```
docker-compose down
```

### Alternative 2 - run genome-nexus locally, but mongoDB in docker container
```
# the genomenexus/gn-mongo images comes with all the required tables imported
# change latest to different version if necessary (only need to run this once)
docker run --name=gn-mongo --restart=always -p 27017:27017 -d genomenexus/gn-mongo:latest
mvn -DskipTests clean install
java -jar web/target/web-*.war
```

### Alternative 3 - install mongoDB locally and run with local java
Install mongoDB manually. Then follow instructions in
[genome-nexus-importer](https://github.com/genome-nexus/genome-nexus-importer)
to initialize the database.

After that run this:
```
mvn clean install
java -jar web/target/web-*.war
```

## Test Status 👷‍♀️

| branch | master | rc |
| --- | --- | --- |
| status | [![Build Status](https://travis-ci.org/genome-nexus/genome-nexus.svg?branch=master)](https://travis-ci.org/genome-nexus/genome-nexus/branches) | [![Build Status](https://travis-ci.org/genome-nexus/genome-nexus.svg?branch=rc)](https://travis-ci.org/genome-nexus/genome-nexus/branches) |

## Deploy 🚀

[![Deploy](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy)
Loading

0 comments on commit 0bd9ea0

Please sign in to comment.