Skip to content

Commit bc331cb

Browse files
authored
Merge pull request #44 from INCATools/adding-sources
adding reacto
2 parents f76f5b8 + 2cf58a4 commit bc331cb

5 files changed

Lines changed: 92 additions & 93 deletions

File tree

Dockerfile

Lines changed: 6 additions & 90 deletions
Original file line numberDiff line numberDiff line change
@@ -1,98 +1,14 @@
1-
### From https://stackoverflow.com/questions/51121875/how-to-run-docker-with-python-and-java
2-
### 1. Get Linux
3-
FROM ubuntu:20.04
1+
FROM obolibrary/odkfull
42
LABEL maintainer="cjmungall@lbl.gov" \
53
name="semanticsql" \
64
version="0.0.1"
75

8-
### 2. Get Java, Python and all required system libraries (version control etc)
9-
ENV JAVA_HOME="/usr"
10-
WORKDIR /tools
11-
ENV PATH "/tools/:$PATH"
12-
COPY pyproject.toml /tools/
13-
COPY ./utils/create-semsql-db.sh /tools/
14-
##COPY utils/* /tools/
6+
WORKDIR /semsql
157

16-
17-
# Install packages
18-
RUN apt-get update &&\
19-
apt-get install -y software-properties-common &&\
20-
apt-get upgrade -y &&\
21-
apt-get install -y build-essential \
22-
git \
23-
openjdk-8-jre \
24-
openjdk-8-jdk \
25-
maven \
26-
python3-pip \
27-
python3-dev \
28-
subversion \
29-
make \
30-
automake \
31-
gcc \
32-
g++ \
33-
unzip \
34-
rsync \
35-
curl \
36-
wget \
37-
jq \
38-
openssl \
39-
aha \
40-
dos2unix \
41-
sqlite3 \
42-
libjson-perl \
43-
libfreetype6-dev \
44-
libpng-dev \
45-
pkg-config \
46-
xlsx2csv &&\
47-
cd /usr/local/bin \
48-
&& ln -s /usr/bin/python3 python \
49-
&& pip3 install --upgrade pip setuptools \
50-
&& pip3 install -r /tools/requirements.txt
51-
#&& npm install -g obographviz \
52-
#&& chmod +x /tools/node_modules
8+
RUN pip install semsql
539

54-
#COPY ./node_modules/obographviz /tools/node_modules/obographviz/
55-
#ENV PATH "/tools/node_modules/obographviz/bin/:$PATH"
10+
COPY *Makefile .
11+
COPY reports/obo.tsv ./reports/
5612

57-
###### ROBOT ######
58-
ENV ROBOT v1.8.3
59-
ARG ROBOT_JAR=https://github.com/ontodev/robot/releases/download/$ROBOT/robot.jar
60-
ENV ROBOT_JAR ${ROBOT_JAR}
61-
# LAYERSIZE ~66MB
62-
RUN wget $ROBOT_JAR -O /tools/robot.jar && \
63-
wget https://raw.githubusercontent.com/ontodev/robot/$ROBOT/bin/robot -O /tools/robot && \
64-
chmod +x /tools/robot && \
65-
chmod +x /tools/robot.jar
6613

67-
# Avoid repeated downloads of script dependencies by mounting the local coursier cache:
68-
# docker run -v $HOME/.coursier/cache/v1:/tools/.coursier-cache ...
69-
ENV COURSIER_CACHE "/tools/.coursier-cache"
70-
71-
###### JENA ######
72-
ENV JENA 4.4.0
73-
RUN wget http://archive.apache.org/dist/jena/binaries/apache-jena-$JENA.tar.gz -O- | tar xzC /tools
74-
ENV PATH "/tools/apache-jena-$JENA/bin:$PATH"
75-
76-
###### relation-graph ######
77-
ENV RGVERSION=2.2.0
78-
ENV PATH "/tools/relation-graph/bin:$PATH"
79-
# LAYERSIZE ~200MB
80-
RUN wget -nv https://github.com/balhoff/relation-graph/releases/download/v$RGVERSION/relation-graph-cli-$RGVERSION.tgz \
81-
&& tar -zxvf relation-graph-cli-$RGVERSION.tgz \
82-
&& mv relation-graph-cli-$RGVERSION /tools/relation-graph \
83-
&& chmod +x /tools/relation-graph
84-
85-
### TODO REVIEW THIS. As we speak, jq is official still stalled at 1.5, but for the walk function, we
86-
### Need 1.6 - once 1.6 is offcial, the following RUN can be removed.
87-
# LAYERSIZE: ~4MB
88-
RUN wget https://github.com/stedolan/jq/releases/download/jq-1.6/jq-linux64 -O /tools/jq && chmod +x /tools/jq
89-
90-
COPY semsql /tools/semsql/
91-
COPY db /tools/db
92-
ENV LC_ALL=C.UTF-8
93-
ENV LANG=C.UTF-8
94-
ENV PATH "/usr/bin/:$PATH"
95-
96-
#CMD python3 -m semsql.subgraph -d db/envo.db ocean% -m label -f viz
97-
#CMD sqlite db/envo.db
98-
CMD /bin/bash
14+
CMD [ "make -k all RUN=" ]

Makefile

Lines changed: 60 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
OBO = http://purl.obolibrary.org/obo
22
RUN = poetry run
3+
VERSION = $(shell git tag | tail -1)
34
SRC_DIR = src/semsql/linkml
45
BUILDER_DIR = src/semsql/builder
56
DDL_DIR = $(BUILDER_DIR)/sql_schema
@@ -55,7 +56,7 @@ realclean-%:
5556
# Prefixes
5657
# ---
5758
# TODO: sync with bioregistry
58-
# NOTE: this is now managed in build folder
59+
# NOTE: move this to build folder
5960

6061
build_prefixes: $(PREFIX_DIR)/prefixes.csv
6162

@@ -137,16 +138,34 @@ db/phenio.owl:
137138
db/bero.owl:
138139
curl -L -s https://github.com/berkeleybop/bero/releases/download/2022-05-26/bero.owl > $@.tmp && mv $@.tmp $@
139140

141+
db/reacto.owl:
142+
curl -L -s http://purl.obolibrary.org/obo/go/extensions/reacto.owl > $@.tmp && mv $@.tmp $@
143+
144+
db/go-lego.owl:
145+
curl -L -s http://purl.obolibrary.org/obo/go/extensions/go-lego.owl > $@.tmp && mv $@.tmp $@
146+
140147
db/bao.owl:
141148
robot merge -I http://www.bioassayontology.org/bao/bao_complete.owl -o $@
142149

150+
# https://github.com/ontodev/rdftab.rs/issues/21
151+
db/biopax.owl:
152+
robot convert -I http://www.biopax.org/release/biopax-level3.owl -o $@
153+
143154
# https://github.com/enanomapper/ontologies/issues/323
144155
db/enanomapper.owl:
145156
robot merge -I https://raw.githubusercontent.com/enanomapper/ontologies/master/enanomapper.owl -o $@
146157

147158
db/efo.owl: STAMP
148159
robot merge -I http://www.ebi.ac.uk/efo/efo.owl -o $@
149160

161+
162+
db/reactome-Homo-sapiens.owl: download/reactome-biopax.zip db/biopax.owl
163+
unzip -p $< Homo_sapiens.owl > $@.tmp &&\
164+
robot merge -i $@.tmp -i db/biopax.owl -o $@
165+
166+
download/reactome-biopax.zip:
167+
curl -L -s https://reactome.org/download/current/biopax.zip > $@
168+
150169
#fma.owl:#
151170
# http://purl.org/sig/ont/fma.owl
152171

@@ -208,3 +227,43 @@ DATE = $(shell date -u +"%Y-%m-%d")
208227
s3-deploy:
209228
aws s3 sync stage s3://bbop-sqlite --acl public-read && \
210229
aws s3 sync stage s3://bbop-sqlite/releases/$(DATE) --acl public-read
230+
231+
################################################
232+
#### Commands for building the Docker image ####
233+
################################################
234+
235+
IM=linkml/semantic-sql
236+
237+
docker-build-no-cache:
238+
@docker build --no-cache -t $(IM):$(VERSION) . \
239+
&& docker tag $(IM):$(VERSION) $(IM):latest
240+
241+
docker-build:
242+
@docker build -t $(IM):$(VERSION) . \
243+
&& docker tag $(IM):$(VERSION) $(IM):latest
244+
245+
docker-build-use-cache-dev:
246+
@docker build -t $(DEV):$(VERSION) . \
247+
&& docker tag $(DEV):$(VERSION) $(DEV):latest
248+
249+
docker-clean:
250+
docker kill $(IM) || echo not running ;
251+
docker rm $(IM) || echo not made
252+
253+
docker-publish-no-build:
254+
@docker push $(IM):$(VERSION) \
255+
&& docker push $(IM):latest
256+
257+
docker-publish-dev-no-build:
258+
@docker push $(DEV):$(VERSION) \
259+
&& docker push $(DEV):latest
260+
261+
docker-publish: docker-build
262+
@docker push $(IM):$(VERSION) \
263+
&& docker push $(IM):latest
264+
265+
docker-run:
266+
@docker run -v $(PWD):/work -w /work -ti $(IM):$(VERSION)
267+
268+
test-docker-run:
269+
cd docker-test && docker run -v `pwd`/db:/semsql/db -w /semsql -ti $(IM):$(VERSION) make -k all RUN=

src/semsql/builder/build.Makefile

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
# Directory containing this Makefile
66
# https://stackoverflow.com/questions/18136918/how-to-get-current-relative-directory-of-your-makefile
77
THIS_DIR := $(dir $(abspath $(firstword $(MAKEFILE_LIST))))
8+
PREFIX_DIR = $(THIS_DIR)/prefixes
89

910
# Template sqlite database
1011
TEMPLATE = .template.db
@@ -69,12 +70,32 @@ $(TEMPLATE): $(THIS_DIR)/sql_schema/semsql.sql
6970
--ontology-file $<\
7071
--output-file $@.ttl.tmp \
7172
--equivalence-as-subclass true \
73+
--output-individuals true \
7274
--output-subclasses true \
7375
--reflexive-subclasses true && \
74-
riot --out RDFXML $@.ttl.tmp > $@.owl.tmp && \
76+
riot --out RDFXML --syntax turtle $@.ttl.tmp > $@.owl.tmp && \
7577
sqlite3 $@.db.tmp -cmd ".mode csv" ".import $(THIS_DIR)/prefixes/prefixes.csv prefix" && \
7678
rdftab $@.db.tmp < $@.owl.tmp && \
7779
sqlite3 $@.db.tmp -cmd '.separator "\t"' -cmd '.header on' "SELECT subject,predicate,object FROM statements " > $@.tmp && \
7880
mv $@.tmp $@ && \
7981
rm $@.*.tmp
8082
.PRECIOUS: %-$(RGSUFFIX).tsv
83+
84+
# ---
85+
# Prefixes
86+
# ---
87+
88+
build_prefixes: $(PREFIX_DIR)/prefixes.csv
89+
90+
$(PREFIX_DIR)/obo_prefixes.owl:
91+
robot convert -I http://purl.obolibrary.org/meta/obo_prefixes.ttl -o $@
92+
93+
$(PREFIX_DIR)/obo_prefixes.db: $(PREFIX_DIR)/obo_prefixes.owl
94+
sqlite3 $@ < $(PREFIX_DIR)/prefix_ddl.sql && ./bin/rdftab $@ < $<
95+
96+
$(PREFIX_DIR)/obo_prefixes.csv: $(PREFIX_DIR)/obo_prefixes.db
97+
sqlite3 $< -cmd ".separator ','" "SELECT p.value AS prefix, ns.value AS base FROM statements AS p JOIN statements AS ns ON (p.subject=ns.subject) WHERE p.predicate='<http://www.w3.org/ns/shacl#prefix>' AND ns.predicate='<http://www.w3.org/ns/shacl#namespace>'" > $@
98+
99+
$(PREFIX_DIR)/prefixes.csv: $(PREFIX_DIR)/prefixes_curated.csv $(PREFIX_DIR)/obo_prefixes.csv
100+
cat $^ > $@
101+

src/semsql/builder/prefixes/prefixes.csv

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ CoVIC,https://cvdb.ontodev.com/antibody/
2323
EXAMPLE,http://purl.obolibrary.org/obo/EXAMPLE_
2424
ENM,http://purl.enanomapper.org/onto/ENM_
2525
BAO,http://www.bioassayontology.org/bao#BAO_
26+
biopax,http://www.biopax.org/release/biopax-level3.owl#
27+
reactome.biopax,http://www.reactome.org/biopax/81/48887#
2628
PSO,http://purl.obolibrary.org/obo/PSO_
2729
CHIRO,http://purl.obolibrary.org/obo/CHIRO_
2830
PW,http://purl.obolibrary.org/obo/PW_
@@ -222,4 +224,3 @@ PLANA,http://purl.obolibrary.org/obo/PLANA_
222224
BTO,http://purl.obolibrary.org/obo/BTO_
223225
PLANP,http://purl.obolibrary.org/obo/PLANP_
224226
CARO,http://purl.obolibrary.org/obo/CARO_
225-
NPO,http://purl.bioontology.org/ontology/npo#NPO_

src/semsql/builder/prefixes/prefixes_curated.csv

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,3 +23,5 @@ CoVIC,https://cvdb.ontodev.com/antibody/
2323
EXAMPLE,http://purl.obolibrary.org/obo/EXAMPLE_
2424
ENM,http://purl.enanomapper.org/onto/ENM_
2525
BAO,http://www.bioassayontology.org/bao#BAO_
26+
biopax,http://www.biopax.org/release/biopax-level3.owl#
27+
reactome.biopax,http://www.reactome.org/biopax/81/48887#

0 commit comments

Comments
 (0)