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-webOpen 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.yamlandk8s/predictor.deployment.yamlin "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
forecastservice 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
pendingstate, check the reason withkubectl describe service forecast.