SPECIES = \
Arabidopsis_thaliana \
Bos_taurus \
Caenorhabditis_elegans \
Canis_familiaris \
Cavia_porcellus \
Chlamydia_trachomatis \
Clostridium_botulinum \
Cryptococcus_neoformans_A_D \
Cyanidioschyzon_merolae \
Dictyostelium_discoideum \
Drosophila_melanogaster \
Entamoeba_histolytica \
Escherichia_coli \
Felis_catus \
Gallus_gallus \
Homo_sapiens \
Human_immunodeficiency_virus_1 \
Human_immunodeficiency_virus_2 \
Influenza_A_virus \
Methanococcus_jannaschii \
Mus_musculus \
Mycobacterium_tuberculosis \
Neisseria_meningitidis \
Neisseria_meningitidis_serogroup_B \
Neurospora_crassa \
Oryctolagus_cuniculus \
Oryza_sativa \
Plasmodium_falciparum \
Rattus_norvegicus \
Saccharomyces_cerevisiae \
Schizosaccharomyces_pombe \
Sulfolobus_solfataricus \
Synechococcus_sp. \
Synechococcus_sp \
Tetraodon_nigroviridis \
Thalassiosira_pseudonana \
Toxoplasma_gondii \
Xenopus_laevis 

CORESPECIES = \
Mus_musculus \
Arabidopsis_thaliana \
Homo_sapiens \
Saccharomyces_cerevisiae \
Schizosaccharomyces_pombe

CORECYC = cyc-humancyc.obo cyc-metacyc.obo

COREOWL = $(patsubst %,reactome-biopax/%.owl,$(CORESPECIES))
ICOREOWL = $(patsubst %, -i reactome-biopax/%.owl,$(CORESPECIES))
all: $(patsubst %,reactome-%.p2f,$(CORESPECIES))

biopax.zip:
	wget http://www.reactome.org/download/current/biopax.zip

unzip: biopax.zip
	cd reactome-biopax && unzip ../$<

fix:
	./rename-spc.pl reactome-biopax/*owl && ./fix-reactome.pl reactome-biopax/*owl

reactome-all.txt: $(COREOWL)
	blip -f owl $(ICOREOWL) -r go -u biopax2_db -u biopax2_rules -u query_biopax findall p2f_orgs/5 > $@.tmp && sort -u $@.tmp > $@
reactome-%.p2f:
	blip -f owl -i 'reactome-biopax/$*.owl' -r go -u biopax2_db -u biopax2_rules -u query_biopax findall p2f/6 > $@.tmp && sort -u $@.tmp > $@
reactome-%.p2fc:
	blip -f owl -i 'reactome-biopax/$*.owl' -r go -u biopax2_db -u biopax2_rules -u query_biopax findall p2fc/5 > $@.tmp && sort -u $@.tmp > $@
reactome-biopax/%-bp.pro: reactome-biopax/%.owl
	blip -i $< -u biopax2_db -u biopax2_bridge_from_rdf io-convert -to biopax2_db:pro -o $@

cyc-%.p2f:
	blip -f owl -i 'cyc/biopax/$*/biopax.owl' -r go -u biopax2_bridge_from_biopax1 -u biopax2_rules -u query_biopax findall p2f/6 > $@.tmp && sort -u $@.tmp > $@
.PRECIOUS: cyc-%.p2f

cyc-%.obo-nc: cyc-%.p2f
	cut -f2,4 $< | tbl2obolinks.pl --rel OBO_REL:has_part  > $@.tmp && cat $@.tmp has_part.obo > $@


reactome-%.ccspan:
	blip -f owl -i 'reactome-biopax/$*.owl' -r implied/cellular_component_xp_self-imports.obo -u biopax2_db -u biopax2_rules -u query_biopax findall -label cc_spanR/5 > $@.tmp && sort -u $@.tmp > $@
reactome-%.ccespan:
	blip -f owl -i 'reactome-biopax/$*.owl' -r implied/cellular_component_xp_self-imports.obo -r chebi -u biopax2_db -u biopax2_rules -u query_biopax findall -label cc_spanRc/7 > $@.tmp && sort -u $@.tmp > $@

FXP%.obo-nc: FXP%.txt
	cut -f1,4 $< | tbl2obolinks.pl --rel OBO_REL:has_part  > $@.tmp && cat $@.tmp has_part.obo > $@

%.obo-nc: %.txt
	cut -f2,3 $< | tbl2obolinks.pl --rel OBO_REL:has_part  > $@.tmp && cat $@.tmp has_part.obo > $@

# add ! comments to no-comments version. Read names from current GO
%.obo: %.obo-nc
	obo-add-comments.pl -t relationship -t id $(HOME)/cvs/go/ontology/editors/gene_ontology_write.obo $< > $@.tmp && mv $@.tmp $@

%.obo-wc: %.obo
	obo-add-comments.pl -t relationship -t id $(HOME)/cvs/go/ontology/editors/gene_ontology_write.obo $< > $@.tmp && mv $@.tmp $@

%.stats: %.obo
	blip -r go -i $< -u query_obo findall "rel_stat('OBO_REL:has_part',_,_,_)" -label > $@

inconsistency:
	blip -f owl -i reactome-biopax/Homo*sapiens.owl -r go -u biopax2_db -u biopax2_rules -u query_biopax findall pathway_consistency/7

# we only expect to find xrefs fo human?
reactome-all.xrefcheck: $(COREOWL)
	blip -f owl $(ICOREOWL) -r go -u biopax2_db -u biopax2_rules -u query_biopax -label findall pathway_class_check/4 > $@.tmp && sort -u $@.tmp > $@
reactome-%.xrefcheck: reactome-biopax/%.owl
	blip -f owl -i $< -r go -u biopax2_db -u biopax2_rules -u query_biopax findall -label pathway_class_check/4 > $@.tmp && sort -u $@.tmp > $@

reactome-%.new-xrefs: reactome-biopax/%.owl
	blip -r go -i $< -u query_biopax findall -label pathway_new_xref/4 > $@

reactome-%-xp.xrefs: reactome-biopax/%-bp.pro
	blip -r goxp/biological_process_xp_chebi -r chebi -r go -i $< -f biopax2_db:pro -u query_biopax findall -label pathway_xp_xref/5 > $@.tmp && sort -u $@.tmp > $@

reactome.fp:
	blip -f owl -i reactome-biopax/Homo*sapiens.owl -r go -u biopax2_db -u biopax2_rules -u query_biopax findall -label bp_class_name_ont/4

single_step_fp.obo-nc:
	blip -u ontol_db -r goxp/molecular_function_xp_chebi findall "differentium(A,'executes',B)" | cut -f2,4 | tbl2obolinks.pl --rel part_of > $@.tmp && mv $@.tmp $@
.PRECIOUS: single_step_fp.obo-nc

regulates_fp.obo-nc:
	blip -u ontol_db -r goxp/molecular_function_xp_regulators -i ../regulates_xp_live/go_reglive_withPosNeg_withPF.obo findall "differentium(A,'regulates',B)" -where "(belongs(A,molecular_function);belongs(B,molecular_function))" | cut -f2,4 | sort -u | tbl2obolinks.pl --rel regulates > $@.tmp && mv $@.tmp $@
.PRECIOUS: component_function.obo-nc

component_function.obo-nc:
	blip -u ontol_db -r goxp/cellular_component_xp_go findall "differentium(A,'OBO_REL:has_function',B)" | cut -f2,4 | tbl2obolinks.pl --rel has_function > $@.tmp && mv $@.tmp $@
.PRECIOUS: component_function.obo-nc

component_process.obo-nc:
	blip -u ontol_db -r goxp/cellular_component_xp_go findall "differentium(A,'OBO_REL:realizes',B)" | cut -f2,4 | tbl2obolinks.pl --rel participates_in > $@.tmp && mv $@.tmp $@
.PRECIOUS: component_process.obo-nc

all_textmatch_fp: kinase_phosphorylation_fp.obo phosphatase_dephosphorylation_fp.obo transport_transporter_fp.obo

kinase_phosphorylation_fp.obo-nc:
	blip -u query_go -r go findall kinase_phosphorylation/2 | cut -f2,3 | sort -u | tbl2obolinks.pl --rel part_of > $@.tmp && mv $@.tmp $@
.PRECIOUS: kinase_phosphorylation_fp.obo-nc

function_metabolism_fp.obo-nc:
	blip -r go -u query_go findall function_metabolism/2 |  cut -f2,3 | sort -u | tbl2obolinks.pl --rel has_part > $@.tmp && mv $@.tmp $@
.PRECIOUS: function_metabolism_fp.obo-nc

%_fp.obo-nc:
	blip -u query_go -r go findall $*/2 | cut -f2,3 | sort -u | tbl2obolinks.pl --rel part_of > $@.tmp && mv $@.tmp $@
.PRECIOUS: %_fp.obo-nc


## godb
pschain.txt:
	blip -r go -debug sql -u query_godb -u query_godb_photosynthesis findall -label process_function_nr/2 > $@.tmp && sort -u $@.tmp > $@

pfprobs-pschain.tbl:
	blip -debug pf -r go  -u query_godb -u query_godb_photosynthesis findall -label process_function_prob/7  > $@.tmp && grep -v Mapped  $@.tmp | sort -u > $@

pfprobs-phosphorylation.tbl:
	blip -debug pf -r go  -u query_godb -u query_godb_phosphorylation findall -label process_function_prob/7  > $@.tmp && grep -v Mapped  $@.tmp | sort -u > $@

compare-reactome-cyc.tbl:
	blip -r go ontol-diff reactome-all.obo cyc-metacyc.obo > $@

compare-reactome-%.tbl: %.obo
	blip -r go ontol-diff reactome-all.obo $< > $@

compare-metacyc-%.tbl: %.obo
	blip -r go ontol-diff reactome-all.obo $< > $@

