Giter Club home page Giter Club logo

docker's Introduction

docker stars docker pulls Docker build

Welcome to the BridgeDb Docker repository!

BridgeDb is a framework for finding and mapping equivalent database identifiers. This repository involves the Docker image of the BridgeDb service. This docker image is located on DockerHub: https://hub.docker.com/r/bigcatum/bridgedb/

For Windows users, it is required to download Docker (https://www.docker.com/get-docker) and Docker toolbox (https://docs.docker.com/toolbox/overview/). Afterwards, start the docker quickstart terminal and let is set up a VirtualBox environment.

Pulling the image from DockerHub

To pull the image from DockerHub, enter the following line:

docker pull bigcatum/bridgedb:latest

To pull a BridgeDb Docker Image with a specific version, use the following command and fill in the tag:

docker pull bigcatum/bridgedb:[tag]

Currently, the main docker image consists of all available identifier mapping (.bridge) files. The tags of the Docker images describe the BridgeDb version and the version of the web service. For example, the Docker image of bigcatum/bridgedb:3.0.23-2.1.6 has the BridgeDb version os 3.0.23 and the webservice version of 2.1.6.

To confirm that this step has worked and the Docker Image was pulled correctly, enter the following:

docker images

This will give an overview of all images that are downloaded and ready for use.

Running the docker image in a container

For windows users, it is necessary to know the IP adress of the VirtualBox environment, which you can find by using the following command:

docker-machine ip

Below is the command for running the Docker Image. In the command, change [PORT1] to configure ports that are not yet in use in your system. If the ports 8183 is not yet in use, you can simply use that one for [PORT1]. The environment variable [SERVER_URL] defines the host URL, depending on where the Docker Image will be run. If you do a local deployment, the [SERVER_URL] should be http://localhost, with the [PORT1] that you chose. The [TAG] corresponds to the version of the Docker image that you pulled.

sudo docker run --name bridgedb --rm -p [PORT1]:8183 -e SERVER_URL='[SERVER_URL]:[PORT1]' bigcatum/bridgedb:[TAG]

Opening the docker image in a browser

To enter the docker image in a browser, Windows users should enter the IP-adress of the VirtualBox, followed by ':[PORT1]'. On Linux, the docker image can be entered by writing 'http://localhost:[PORT1]' in the browser.

Stopping the running container

To see the status of the service, use the following command:

docker ps -a

To stop a container, enter the following line. This will automatically remove the container (because of the --rm flag in the docker run command above):

docker stop bridgedb

docker's People

Contributors

actions-user avatar egonw avatar jmillanacosta avatar marvinm2 avatar nunogit avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

docker's Issues

xref not working

May 31, 2022 2:24:16 PM org.restlet.engine.application.StatusFilter doHandle
WARNING: Exception or error caught in status service
java.lang.NullPointerException
	at java.base/java.util.concurrent.ConcurrentHashMap.putVal(ConcurrentHashMap.java:1011)
	at java.base/java.util.concurrent.ConcurrentHashMap.put(ConcurrentHashMap.java:1006)
	at org.restlet.routing.Route.extractAttributes(Route.java:273)
	at org.restlet.routing.Route.beforeHandle(Route.java:249)
	at org.restlet.routing.Filter.handle(Filter.java:204)
	at org.restlet.routing.Router.doHandle(Router.java:500)
	at org.restlet.routing.Router.handle(Router.java:740)
	at org.restlet.routing.Filter.doHandle(Filter.java:159)
	at org.restlet.routing.Filter.handle(Filter.java:206)
	at org.restlet.routing.Filter.doHandle(Filter.java:159)
	at org.restlet.routing.Filter.handle(Filter.java:206)
	at org.restlet.routing.Filter.doHandle(Filter.java:159)
	at org.restlet.engine.application.StatusFilter.doHandle(StatusFilter.java:155)
	at org.restlet.routing.Filter.handle(Filter.java:206)
	at org.restlet.routing.Filter.doHandle(Filter.java:159)
	at org.restlet.routing.Filter.handle(Filter.java:206)
	at org.restlet.engine.ChainHelper.handle(ChainHelper.java:114)
	at org.restlet.engine.application.ApplicationHelper.handle(ApplicationHelper.java:75)
	at org.restlet.Application.handle(Application.java:391)
	at org.restlet.routing.Filter.doHandle(Filter.java:159)
	at org.restlet.routing.Filter.handle(Filter.java:206)
	at org.restlet.routing.Router.doHandle(Router.java:500)
	at org.restlet.routing.Router.handle(Router.java:740)
	at org.restlet.routing.Filter.doHandle(Filter.java:159)
	at org.restlet.routing.Filter.handle(Filter.java:206)
	at org.restlet.routing.Router.doHandle(Router.java:500)
	at org.restlet.routing.Router.handle(Router.java:740)
	at org.restlet.routing.Filter.doHandle(Filter.java:159)
	at org.restlet.engine.application.StatusFilter.doHandle(StatusFilter.java:155)
	at org.restlet.routing.Filter.handle(Filter.java:206)
	at org.restlet.routing.Filter.doHandle(Filter.java:159)
	at org.restlet.routing.Filter.handle(Filter.java:206)
	at org.restlet.engine.ChainHelper.handle(ChainHelper.java:114)
	at org.restlet.Component.handle(Component.java:391)
	at org.restlet.Server.handle(Server.java:491)
	at org.restlet.engine.http.connector.BaseServerHelper.handle(BaseServerHelper.java:161)
	at org.restlet.engine.http.connector.BaseServerHelper.handleInbound(BaseServerHelper.java:170)
	at org.restlet.engine.http.connector.BaseHelper.handleNextInbound(BaseHelper.java:421)
	at org.restlet.engine.http.connector.Connection.readMessages(Connection.java:698)
	at org.restlet.engine.http.connector.Controller$2.run(Controller.java:98)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:829)

May 31, 2022 2:24:16 PM org.restlet.engine.log.LogFilter afterHandle
INFO: 2022-05-31	14:24:16	127.0.0.1	-	-	8183	GET	/Human/xrefs/L/1234	-	500	486	0	7	http://127.0.0.1:8183	Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.64 Safari/537.36	http://localhost:8080/swagger/

How to handle bridgedb versions?

We should state clearly which version of BDB we are packing with the given image, using the tag system.
Is this important or should we only worry with the latest version?

some calls don't work after updating to V3+

When testing the v3.0.13 version, some calls work (such as the properties call), but some don't and return an internal server error, including:

  • ​/{organism}​/xrefs​/{systemCode}​/{identifier}
  • /{organism}/xrefsBatch/{systemCode}
  • /{organism}/search/{query}
  • /{organism}/attributeSearch/{query}
  • [​/{organism}​/attributes​/{systemCode}​/{identifier}

Interestingly, the call /{organism}/xrefsBatch does work for ID mapping

setup.sh and the config file to download ID mapping databases should use FAIR...

They now have ID mapping databases hardcoded, but in a future version, we should dynamically discover which ID mapping databases are the latest, using FAIR metadata from some source to be determined. This is not currently a blocker, as we can make new Docker versions for each big ID mapping database release without too much effort, based on (project) needs.

Different docker versions need different swaggers

For example, a lighter version with only Human/mouse/rat only needs selection options for gene mapping for these organisms. Same goes for the metabolites call, and selection of databases to map.

Lines need updating and filter for entries only supported for the webservices

docker/setup.sh

Lines 52 to 54 in fc06a5f

jq -r '.mappingFiles | .[] | select(.tested) | select(.tested|.[]|test(.|"WS")) | "\(.file)=\(.downloadURL)"' gene.json >> files.txt
jq -r '.mappingFiles | .[] | select(.tested) | select(.tested|.[]|test(.|"WS")) | "\(.file)=\(.downloadURL)"' corona.json >> files.txt
jq -r '.mappingFiles | .[] | select(.tested) | select(.tested|.[]|test(.|"WS")) | "\(.file)=\(.downloadURL)"' other.json >> files.txt

Flexible setup of swagger

When producing the Docker image with a selected group of species, the swagger interface should only show the species that are loaded. The swagger.json file should be set up dynamically

Download bridgedb upon first run of docker

Advantages:

  • smaller initial footprint on images
  • we can allow specie selection for db (upon first run)

Disadvantes:

  • we should check if this is according to Docker philosophy
  • how to manage versions of BDB inside the containers, namely for reproducibility?
  • we can't tie bdb versions to tag distributions

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.