FORECasT is a web application that gives access to a predictor of Cas9 editing outcome resulting from Cas9-induced double strand breaks. The paper is available on BioRxiv, and the application itself at https://partslab.sanger.ac.uk.
The application consists of two components: a React front end (this repository) and a predictor. Having it as two separate servers allows to decouple the model from the interface and develop both components independently.
-
Start predictor server (see README). According to instructions, it will run on port 5001
-
Install packages and run the FORECasT server, it will be opened in a browser automatically
npm install REACT_APP_MODEL_HOST=http://127.0.0.1:5001 npm run start
docker pull quay.io/cellgeni/mprofile-web
docker pull quay.io/felicityallen/selftarget
docker network create forecast-net
docker run -d --name selftarget --net forecast-net quay.io/felicityallen/selftarget
docker run -d --name forecast -p 80:80 --net forecast-net -e "REACT_APP_MODEL_HOST=http://selftarget:8006" quay.io/cellgeni/mprofile-web
Open http://127.0.0.1 in browser
Cleaning up
docker rm -f selftarget forecast
docker network rm forecast-net
- Check FORECasT and SelfTarget
Docker images for the latest tags and update corresponding tags in
k8s/forecast.deployment.yaml
andk8s/predictor.deployment.yaml
in "spec > template > spec > containers > image" - Deploy each component:
kubectl apply -f k8s/forecast.deployment.yaml kubectl apply -f k8s/forecast.service.yaml kubectl apply -f k8s/predictor.deployment.yaml kubectl apply -f k8s/predictor.service.yaml
- An external IP for the
forecast
service will be requested and assigned from the infrastructure provider. It can take a couple minutes.If EXTERNAL-IP is stuck in$ kubectl get services NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE predictor NodePort 10.233.48.4 <none> 80:31935/TCP 16d forecast LoadBalancer 10.233.47.253 172.27.18.205 8000:32146/TCP 16d
pending
state, check the reason withkubectl describe service forecast
.