// non-covalent binding (PD narrow 1) MATCH (process)-[:CONSUMES]->(reactant1), (process)-[:CONSUMES]->(reactant2), (process)-[:PRODUCES]->(product:Complex), (product)-[:HAS_SUBUNIT]->(subunit1), (product)-[:HAS_SUBUNIT]->(subunit2) WHERE reactant1.label = subunit1.label AND reactant2.label = subunit2.label RETURN DISTINCT process; // non-covalent binding (PD narrow 2) MATCH (process)-[:CONSUMES]->(reactant1), (process)-[:CONSUMES]->(reactant2:Complex), (process)-[:PRODUCES]->(product:Complex), (product)-[:HAS_SUBUNIT]->(subunit1), (product)-[:HAS_SUBUNIT]->(subunit2), (reactant2)-[:HAS_SUBUNIT]->(subunit3) WHERE reactant1.label = subunit1.label AND subunit3.label = subunit2.label RETURN DISTINCT process; // non-covalent binding (PD narrow 3) MATCH (process)-[:CONSUMES]->(reactant1:Complex), (process)-[:CONSUMES]->(reactant2:Complex), (process)-[:PRODUCES]->(product:Complex), (product)-[:HAS_SUBUNIT]->(subunit1), (product)-[:HAS_SUBUNIT]->(subunit2), (reactant2)-[:HAS_SUBUNIT]->(subunit3), (reactant1)-[:HAS_SUBUNIT]->(subunit4) WHERE subunit4.label = subunit1.label AND subunit3.label = subunit2.label RETURN DISTINCT process; // degradation (PD main) MATCH (process)-[:CONSUMES]->(reactant), (process)-[:PRODUCES]->(empty_set:EmptySet) RETURN DISTINCT process, reactant, empty_set; // dissociation (PD narrow 1) MATCH (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product1), (process)-[:PRODUCES]->(product2), (reactant)-[:HAS_SUBUNIT]->(subunit1), (reactant)-[:HAS_SUBUNIT]->(subunit2) WHERE product1.label = subunit1.label AND product2.label = subunit2.label RETURN DISTINCT process; // dissociation (PD narrow 2) MATCH (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product1), (process)-[:PRODUCES]->(product2:Complex), (reactant)-[:HAS_SUBUNIT]->(subunit1), (reactant)-[:HAS_SUBUNIT]->(subunit2), (product2)-[:HAS_SUBUNIT]->(subunit3) WHERE product1.label = subunit1.label AND subunit2.label = subunit3.label RETURN DISTINCT process; // dissociation (PD narrow 3) MATCH (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product1:Complex), (process)-[:PRODUCES]->(product2:Complex), (reactant)-[:HAS_SUBUNIT]->(subunit1), (reactant)-[:HAS_SUBUNIT]->(subunit2), (product2)-[:HAS_SUBUNIT]->(subunit3), (product1)-[:HAS_SUBUNIT]->(subunit4) WHERE subunit4.label = subunit1.label AND subunit2.label = subunit3.label RETURN DISTINCT process; // transcription (PD alternate) MATCH (process:StoichiometricProcess)-[:CONSUMES]->(gene:NucleicAcidFeature), (process)-[:PRODUCES]->(mrna:NucleicAcidFeature), (gene)-[:HAS_UNIT_OF_INFORMATION]->(gene_ui), (mrna)-[:HAS_UNIT_OF_INFORMATION]->(mrna_ui) WHERE gene_ui.prefix = "ct" AND gene_ui.value = "gene" AND mrna_ui.prefix = "ct" AND mrna_ui.value = "mRNA" RETURN DISTINCT process; // transcription (PD main) MATCH (gene)-[necessary_stimulation:NECESSARY_STIMULATES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(empty_set:EmptySet), (process)-[:PRODUCES]->(mrna:NucleicAcidFeature), (gene)-[:HAS_UNIT_OF_INFORMATION]->(gene_ui), (mrna)-[:HAS_UNIT_OF_INFORMATION]->(mrna_ui) WHERE gene_ui.prefix = "ct" AND gene_ui.value = "gene" AND mrna_ui.prefix = "ct" AND mrna_ui.value = "mRNA" RETURN DISTINCT gene, necessary_stimulation, process; // translation (PD alternate) MATCH (process:StoichiometricProcess)-[:CONSUMES]->(mrna:NucleicAcidFeature), (process)-[:PRODUCES]->(protein:Macromolecule), (mrna)-[:HAS_UNIT_OF_INFORMATION]->(mrna_ui) WHERE mrna_ui.prefix = "ct" AND mrna_ui.value = "mRNA" OPTIONAL MATCH (protein)-[:HAS_UNIT_OF_INFORMATION]->(protein_ui) WHERE protein_ui.prefix = "mt" WITH process, COLLECT(protein_ui) as protein_uis WHERE NONE(protein_ui IN protein_uis WHERE protein_ui.value <> "prot") RETURN DISTINCT process; // translation (PD main) MATCH (mrna)-[necessary_stimulation:NECESSARY_STIMULATES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(empty_set:EmptySet), (process)-[:PRODUCES]->(protein:Macromolecule), (mrna)-[:HAS_UNIT_OF_INFORMATION]->(mrna_ui) WHERE mrna_ui.prefix = "ct" AND mrna_ui.value = "mRNA" OPTIONAL MATCH (protein)-[:HAS_UNIT_OF_INFORMATION]->(protein_ui) WHERE protein_ui.prefix = "mt" WITH mrna, necessary_stimulation, process, COLLECT(protein_ui) as protein_uis WHERE NONE(protein_ui IN protein_uis WHERE protein_ui.value <> "prot") RETURN DISTINCT mrna, necessary_stimulation, process; // translocation reaction (PD narrow 1) MATCH (process)-[:CONSUMES]->(reactant), (process)-[:PRODUCES]->(product), (reactant)-[:IS_IN_COMPARTMENT]->(reactant_compartment) WHERE reactant.label = product.label OPTIONAL MATCH (product)-[:IS_IN_COMPARTMENT]->(product_compartment) WITH reactant_compartment, product_compartment, process WHERE product_compartment IS NULL OR reactant_compartment <> product_compartment RETURN DISTINCT reactant_compartment, process; // translocation reaction (PD narrow 2) MATCH (process)-[:CONSUMES]->(reactant), (process)-[:PRODUCES]->(product), (product)-[:IS_IN_COMPARTMENT]->(product_compartment) WHERE reactant.label = product.label OPTIONAL MATCH (reactant)-[:IS_IN_COMPARTMENT]->(reactant_compartment) WITH reactant_compartment, product_compartment, process WHERE reactant_compartment IS NULL OR product_compartment <> reactant_compartment RETURN DISTINCT product_compartment, process; // protein complex formation (PD narrow 1) MATCH (process:StoichiometricProcess)-[:CONSUMES]->(reactant1:Macromolecule), (process)-[:CONSUMES]->(reactant2:Macromolecule), (process)-[:PRODUCES]->(product:Complex), (product)-[:HAS_SUBUNIT]->(product_subunit1:MacromoleculeSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit2:MacromoleculeSubunit) WHERE reactant1.label = product_subunit1.label AND reactant2.label = product_subunit2.label OPTIONAL MATCH (reactant1)-[:HAS_UNIT_OF_INFORMATION]->(reactant1_ui) WHERE reactant1_ui.prefix = "mt" OPTIONAL MATCH (reactant2)-[:HAS_UNIT_OF_INFORMATION]->(reactant2_ui) WHERE reactant2_ui.prefix = "mt" OPTIONAL MATCH (product_subunit1)-[:HAS_UNIT_OF_INFORMATION]->(product_subunit1_ui) WHERE product_subunit1_ui.prefix = "mt" OPTIONAL MATCH (product_subunit2)-[:HAS_UNIT_OF_INFORMATION]->(product_subunit2_ui) WHERE product_subunit2_ui.prefix = "mt" WITH process, COLLECT(reactant1_ui) as reactant1_uis, COLLECT(reactant2_ui) as reactant2_uis, COLLECT(product_subunit1_ui) as product_subunit1_uis, COLLECT(product_subunit2_ui) as product_subunit2_uis WHERE NONE(reactant1_ui IN reactant1_uis WHERE reactant1_ui.value <> "prot") AND NONE(reactant2_ui IN reactant1_uis WHERE reactant2_ui.value <> "prot") AND NONE(product_subunit1_ui IN product_subunit1_uis WHERE product_subunit1_ui.value <> "prot") AND NONE(product_subunit2_ui IN product_subunit2_uis WHERE product_subunit2_ui.value <> "prot") RETURN DISTINCT process; // protein complex formation (PD narrow 2) MATCH (process)-[:CONSUMES]->(reactant1:Macromolecule), (process)-[:CONSUMES]->(reactant2:Complex), (reactant2)-[:HAS_SUBUNIT]->(reactant2_subunit1:MacromoleculeSubunit), (process)-[:PRODUCES]->(product:Complex), (product)-[:HAS_SUBUNIT]->(product_subunit1:MacromoleculeSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit2:MacromoleculeSubunit) WHERE reactant1.label = product_subunit1.label AND reactant2_subunit1.label = product_subunit2.label OPTIONAL MATCH (reactant1)-[:HAS_UNIT_OF_INFORMATION]->(reactant1_ui) WHERE reactant1_ui.prefix = "mt" OPTIONAL MATCH (reactant2_subunit1)-[:HAS_UNIT_OF_INFORMATION]->(reactant2_subunit1_ui) WHERE reactant2_subunit1_ui.prefix = "mt" OPTIONAL MATCH (product_subunit1)-[:HAS_UNIT_OF_INFORMATION]->(product_subunit1_ui) WHERE product_subunit1_ui.prefix = "mt" OPTIONAL MATCH (product_subunit2)-[:HAS_UNIT_OF_INFORMATION]->(product_subunit2_ui) WHERE product_subunit2_ui.prefix = "mt" WITH process, COLLECT(reactant1_ui) as reactant1_uis, COLLECT(reactant2_subunit1_ui) as reactant2_subunit1_uis, COLLECT(product_subunit1_ui) as product_subunit1_uis, COLLECT(product_subunit2_ui) as product_subunit2_uis WHERE NONE(reactant1_ui IN reactant1_uis WHERE reactant1_ui.value <> "prot") AND NONE(reactant2_subunit1_ui IN reactant2_subunit1_uis WHERE reactant2_subunit1_ui.value <> "prot") AND NONE(product_subunit1_ui IN product_subunit1_uis WHERE product_subunit1_ui.value <> "prot") AND NONE(product_subunit2_ui IN product_subunit2_uis WHERE product_subunit2_ui.value <> "prot") RETURN DISTINCT process; // protein complex formation (PD narrow 3) MATCH (process)-[:CONSUMES]->(reactant1:Complex), (process)-[:CONSUMES]->(reactant2:Complex), (reactant1)-[:HAS_SUBUNIT]->(reactant1_subunit1:MacromoleculeSubunit), (reactant2)-[:HAS_SUBUNIT]->(reactant2_subunit1:MacromoleculeSubunit), (process)-[:PRODUCES]->(product:Complex), (product)-[:HAS_SUBUNIT]->(product_subunit1:MacromoleculeSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit2:MacromoleculeSubunit) WHERE reactant1_subunit1.label = product_subunit1.label AND reactant2_subunit1.label = product_subunit2.label OPTIONAL MATCH (reactant1_subunit1)-[:HAS_UNIT_OF_INFORMATION]->(reactant1_subunit1_ui) WHERE reactant1_subunit1_ui.prefix = "mt" OPTIONAL MATCH (reactant2_subunit1)-[:HAS_UNIT_OF_INFORMATION]->(reactant2_subunit1_ui) WHERE reactant2_subunit1_ui.prefix = "mt" OPTIONAL MATCH (product_subunit1)-[:HAS_UNIT_OF_INFORMATION]->(product_subunit1_ui) WHERE product_subunit1_ui.prefix = "mt" OPTIONAL MATCH (product_subunit2)-[:HAS_UNIT_OF_INFORMATION]->(product_subunit2_ui) WHERE product_subunit2_ui.prefix = "mt" WITH process, COLLECT(reactant1_subunit1_ui) as reactant1_subunit1_uis, COLLECT(reactant2_subunit1_ui) as reactant2_subunit1_uis, COLLECT(product_subunit1_ui) as product_subunit1_uis, COLLECT(product_subunit2_ui) as product_subunit2_uis WHERE NONE(reactant1_subunit1_ui IN reactant1_subunit1_uis WHERE reactant1_subunit1_ui.value <> "prot") AND NONE(reactant2_subunit1_ui IN reactant2_subunit1_uis WHERE reactant2_subunit1_ui.value <> "prot") AND NONE(product_subunit1_ui IN product_subunit1_uis WHERE product_subunit1_ui.value <> "prot") AND NONE(product_subunit2_ui IN product_subunit2_uis WHERE product_subunit2_ui.value <> "prot") RETURN DISTINCT process; // transcellular membrane influx reaction (PD main) MATCH (process)-[:CONSUMES]->(reactant), (process)-[:PRODUCES]->(product), (product)-[:IS_IN_COMPARTMENT]->(product_compartment) WHERE reactant.label = product.label AND (product_compartment = "cell" OR product_compartment = "CELL") OPTIONAL MATCH (reactant)-[:IS_IN_COMPARTMENT]->(reactant_compartment) WITH reactant_compartment, product_compartment, process WHERE reactant_compartment IS NULL OR product_compartment <> reactant_compartment RETURN DISTINCT product_compartment, process; // transcellular membrane efflux reaction (PD main) MATCH (process)-[:CONSUMES]->(reactant), (process)-[:PRODUCES]->(product), (reactant)-[:IS_IN_COMPARTMENT]->(reactant_compartment) WHERE reactant.label = product.label AND (reactant_compartment = "cell" OR reactant_compartment = "CELL") OPTIONAL MATCH (product)-[:IS_IN_COMPARTMENT]->(product_compartment) WITH reactant_compartment, product_compartment, process WHERE product_compartment IS NULL OR reactant_compartment <> product_compartment RETURN DISTINCT reactant_compartment, process; // reversible process (PD main) MATCH (process)-[:PRODUCES]->() OPTIONAL MATCH (process)-[:CONSUMES]->(reactant) WITH process, reactant WHERE reactant IS NULL RETURN DISTINCT process; // irreversible process (PD main) MATCH (process:StoichiometricProcess)-[:CONSUMES]->(), (process)-[:PRODUCES]->() RETURN DISTINCT process; // transport reaction (PD narrow 1) MATCH (transporter)-[stimulation:STIMULATES|NECESSARY_STIMULATES|CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant), (process)-[:PRODUCES]->(product), (reactant)-[:IS_IN_COMPARTMENT]->(reactant_compartment) WHERE reactant.label = product.label OPTIONAL MATCH (product)-[:IS_IN_COMPARTMENT]->(product_compartment) WITH transporter, stimulation, reactant_compartment, product_compartment, process WHERE product_compartment IS NULL OR reactant_compartment <> product_compartment RETURN DISTINCT transporter, reactant_compartment, stimulation, process; // transport reaction (PD narrow 2) MATCH (transporter)-[stimulation:STIMULATES|NECESSARY_STIMULATES|CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant), (process)-[:PRODUCES]->(product), (product)-[:IS_IN_COMPARTMENT]->(product_compartment) WHERE reactant.label = product.label OPTIONAL MATCH (reactant)-[:IS_IN_COMPARTMENT]->(reactant_compartment) WITH transporter, stimulation, reactant_compartment, product_compartment, process WHERE reactant_compartment IS NULL OR reactant_compartment <> product_compartment RETURN DISTINCT transporter, product_compartment, stimulation, process; // activation (PD broad 1) MATCH (process:StoichiometricProcess)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_STATE_VARIABLE]->(reactant_sv), (product)-[:HAS_STATE_VARIABLE]->(product_sv) WHERE (reactant.label IS NULL AND product.label IS NULL OR reactant.label = product.label) AND (reactant_sv.variable IS NULL AND product_sv.variable IS NULL AND reactant_sv.order = product_sv.order AND reactant_sv.value = "inactive" AND product_sv.value = "active") RETURN DISTINCT process; // activation (PD narrow 3) MATCH (process:StoichiometricProcess)-[:CONSUMES]->(reactant:MacromoleculeMultimer), (process)-[:PRODUCES]->(product:MacromoleculeMultimer), (reactant)-[:HAS_STATE_VARIABLE]->(reactant_sv), (product)-[:HAS_STATE_VARIABLE]->(product_sv) WHERE reactant.label = product.label AND (reactant_sv.variable IS NULL AND product_sv.variable IS NULL AND reactant_sv.order = product_sv.order AND reactant_sv.value = "inactive" AND product_sv.value = "active") OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant, product, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") RETURN DISTINCT process; // activation (PD narrow 4) MATCH (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeMultimerSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeMultimerSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND (reactant_sv.variable IS NULL AND product_sv.variable IS NULL AND reactant_sv.order = product_sv.order AND reactant_sv.value = "inactive" AND product_sv.value = "active") OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant_subunit, product_subunit, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // activation (PD narrow 1) MATCH (process:StoichiometricProcess)-[:CONSUMES]->(reactant:Macromolecule), (process)-[:PRODUCES]->(product:Macromolecule), (reactant)-[:HAS_STATE_VARIABLE]->(reactant_sv), (product)-[:HAS_STATE_VARIABLE]->(product_sv) WHERE reactant.label = product.label AND (reactant_sv.variable IS NULL AND product_sv.variable IS NULL AND reactant_sv.order = product_sv.order AND reactant_sv.value = "inactive" AND product_sv.value = "active") OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant, product, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") RETURN DISTINCT process; // activation (PD narrow 2) MATCH (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND (reactant_sv.variable IS NULL AND product_sv.variable IS NULL AND reactant_sv.order = product_sv.order AND reactant_sv.value = "inactive" AND product_sv.value = "active") OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant_subunit, product_subunit, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // active transport (PD narrow 1) MATCH (transporter)-[stimulation:STIMULATES|NECESSARY_STIMULATES|CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant), (process)-[:PRODUCES]->(product), (reactant)-[:IS_IN_COMPARTMENT]->(reactant_compartment), (process)-[:CONSUMES]->(atp:SimpleChemical), (process)-[:PRODUCES]->(adp:SimpleChemical) WHERE reactant.label = product.label AND atp.label = "ATP" AND adp.label = "ADP" OPTIONAL MATCH (product)-[:IS_IN_COMPARTMENT]->(product_compartment) WITH transporter, reactant_compartment, product_compartment, stimulation, process WHERE product_compartment IS NULL OR reactant_compartment <> product_compartment RETURN DISTINCT transporter, reactant_compartment, stimulation, process; // active transport (PD narrow 2) MATCH (transporter)-[stimulation:STIMULATES|NECESSARY_STIMULATES|CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant), (process)-[:PRODUCES]->(product), (product)-[:IS_IN_COMPARTMENT]->(product_compartment), (process)-[:CONSUMES]->(atp:SimpleChemical), (process)-[:PRODUCES]->(adp:SimpleChemical) WHERE reactant.label = product.label AND atp.label = "ATP" AND adp.label = "ADP" OPTIONAL MATCH (reactant)-[:IS_IN_COMPARTMENT]->(reactant_compartment) WITH transporter, reactant_compartment, product_compartment, stimulation, process WHERE reactant_compartment IS NULL OR reactant_compartment <> product_compartment RETURN DISTINCT transporter, reactant_compartment, stimulation, process; // passive transport (PD narrow 1) MATCH (transporter)-[stimulation:STIMULATES|NECESSARY_STIMULATES|CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant), (process)-[:PRODUCES]->(product), (reactant)-[:IS_IN_COMPARTMENT]->(reactant_compartment) WHERE reactant.label = product.label OPTIONAL MATCH (product)-[:IS_IN_COMPARTMENT]->(product_compartment) OPTIONAL MATCH (process)-[:CONSUMES]->(atp:SimpleChemical), (process)-[:PRODUCES]->(adp:SimpleChemical) WHERE atp.label = "ATP" AND adp.label = "ADP" WITH transporter, reactant_compartment, stimulation, product_compartment, process WHERE atp IS NULL AND adp IS NULL AND (product_compartment IS NULL OR reactant_compartment <> product_compartment) RETURN DISTINCT transporter, reactant_compartment, stimulation, process; // passive transport (PD narrow 2) MATCH (transporter)-[stimulation:STIMULATES|NECESSARY_STIMULATES|CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant), (process)-[:PRODUCES]->(product), (product)-[:IS_IN_COMPARTMENT]->(product_compartment) WHERE reactant.label = product.label OPTIONAL MATCH (reactant)-[:IS_IN_COMPARTMENT]->(reactant_compartment) OPTIONAL MATCH (process)-[:CONSUMES]->(atp:SimpleChemical), (process)-[:PRODUCES]->(adp:SimpleChemical) WHERE atp.label = "ATP" AND adp.label = "ADP" WITH transporter, reactant_compartment, stimulation, product_compartment, process WHERE atp IS NULL AND adp IS NULL AND (reactant_compartment IS NULL OR reactant_compartment <> product_compartment) RETURN DISTINCT transporter, product_compartment, stimulation, process; // symporter-mediated transport (PD narrow 1) MATCH (transporter)-[stimulation:STIMULATES|NECESSARY_STIMULATES|CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant1), (process)-[:CONSUMES]->(reactant2), (process)-[:PRODUCES]->(product1), (process)-[:PRODUCES]->(product2), (reactant1)-[:IS_IN_COMPARTMENT]->(reactant1_compartment), (reactant2)-[:IS_IN_COMPARTMENT]->(reactant2_compartment) WHERE reactant1.label = product1.label AND reactant2.label = product2.label and reactant1_compartment = reactant2_compartment OPTIONAL MATCH (product1)-[:IS_IN_COMPARTMENT]->(product1_compartment) OPTIONAL MATCH (product2)-[:IS_IN_COMPARTMENT]->(product2_compartment) WITH transporter, reactant1_compartment, product1_compartment, product2_compartment, stimulation, process WHERE product1_compartment IS NULL AND product2_compartment IS NULL OR reactant1_compartment <> product1_compartment AND product1_compartment = product2_compartment RETURN DISTINCT transporter, reactant1_compartment, stimulation, process; // symporter-mediated transport (PD narrow 2) MATCH (transporter)-[stimulation:STIMULATES|NECESSARY_STIMULATES|CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant1), (process)-[:CONSUMES]->(reactant2), (process)-[:PRODUCES]->(product1), (process)-[:PRODUCES]->(product2), (product1)-[:IS_IN_COMPARTMENT]->(product1_compartment), (product2)-[:IS_IN_COMPARTMENT]->(product2_compartment) WHERE reactant1.label = product1.label AND reactant2.label = product2.label and product1_compartment = product2_compartment OPTIONAL MATCH (reactant1)-[:IS_IN_COMPARTMENT]->(reactant1_compartment) OPTIONAL MATCH (reactant2)-[:IS_IN_COMPARTMENT]->(reactant2_compartment) WITH transporter, reactant1_compartment, product1_compartment, product2_compartment, stimulation, process WHERE reactant1_compartment IS NULL AND reactant2_compartment IS NULL OR reactant1_compartment <> product1_compartment AND reactant1_compartment = reactant2_compartment RETURN DISTINCT transporter, product1_compartment, stimulation, process; // antiporter-mediated transport (PD main) MATCH (transporter)-[stimulation:STIMULATES|NECESSARY_STIMULATES|CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant1), (process)-[:CONSUMES]->(reactant2), (process)-[:PRODUCES]->(product1), (process)-[:PRODUCES]->(product2), (reactant1)-[:IS_IN_COMPARTMENT]->(reactant1_compartment), (product2)-[:IS_IN_COMPARTMENT]->(product2_compartment) WHERE reactant1.label = product1.label AND reactant2.label = product2.label and reactant1_compartment = product2_compartment OPTIONAL MATCH (reactant2)-[:IS_IN_COMPARTMENT]->(reactant2_compartment) OPTIONAL MATCH (product1)-[:IS_IN_COMPARTMENT]->(product1_compartment) WITH transporter, reactant1_compartment, reactant2_compartment, product1_compartment, stimulation, process WHERE reactant2_compartment IS NULL AND product1_compartment IS NULL OR reactant1_compartment <> reactant2_compartment AND reactant2_compartment = product1_compartment RETURN DISTINCT transporter, reactant1_compartment, stimulation, process; // RNA-binding transcription regulator activity (PD main) MATCH (complex:Complex)-[modulation:MODULATES|STIMULATES|NECESSARY_STIMULATES|CATALYZES|INHIBITS]->(process:StoichiometricProcess), (complex)-[:HAS_SUBUNIT]->(regulator:MacromoleculeSubunit), (complex)-[:HAS_SUBUNIT]->(rna:MacromoleculeSubunit), (rna)-[:HAS_UNIT_OF_INFORMATION]->(rna_ui), (process)-[:CONSUMES]->(empty_set:EmptySet), (process)-[:PRODUCES]->(mrna:NucleicAcidFeature), (mrna)-[:HAS_UNIT_OF_INFORMATION]->(mrna_ui) WHERE rna_ui.prefix = "mt" AND rna_ui.value = "RNA" AND mrna_ui.prefix = "ct" AND mrna_ui.value = "mRNA" OPTIONAL MATCH (regulator)-[:HAS_UNIT_OF_INFORMATION]-(regulator_ui) WHERE regulator_ui.prefix = "mt" WITH complex, regulator, rna, mrna, modulation, empty_set, process, rna_ui, mrna_ui, COLLECT(regulator_ui) as regulator_uis WHERE NONE(regulator_ui IN regulator_uis WHERE regulator_ui.value <> "prot") RETURN DISTINCT complex, modulation, process; // DNA-binding transcription activator activity (PD main) MATCH (complex:Complex)-[stimulation:STIMULATES|NECESSARY_STIMULATES|CATALYZES]->(process:StoichiometricProcess), (complex)-[:HAS_SUBUNIT]->(activator:MacromoleculeSubunit), (complex)-[:HAS_SUBUNIT]->(gene:NucleicAcidFeatureSubunit), (gene)-[:HAS_UNIT_OF_INFORMATION]->(gene_ui), (process)-[:CONSUMES]->(empty_set:EmptySet), (process)-[:PRODUCES]->(mrna:NucleicAcidFeature), (mrna)-[:HAS_UNIT_OF_INFORMATION]->(mrna_ui) WHERE gene.label = mrna.label AND gene_ui.prefix = "ct" AND gene_ui.value = "gene" AND mrna_ui.prefix = "ct" AND mrna_ui.value = "mRNA" OPTIONAL MATCH (activator)-[:HAS_UNIT_OF_INFORMATION]-(activator_ui) WHERE activator_ui.prefix = "mt" WITH complex, activator, gene, mrna, stimulation, empty_set, process, gene_ui, mrna_ui, COLLECT(activator_ui) as activator_uis WHERE NONE(activator_ui IN activator_uis WHERE activator_ui.value <> "prot") RETURN DISTINCT complex, stimulation, process; // DNA-binding transcription repressor activity (PD main) MATCH (complex:Complex)-[inhibition:INHIBITION]->(process:StoichiometricProcess), (complex)-[:HAS_SUBUNIT]->(repressor:MacromoleculeSubunit), (complex)-[:HAS_SUBUNIT]->(gene:NucleicAcidFeatureSubunit), (gene)-[:HAS_UNIT_OF_INFORMATION]->(gene_ui), (process)-[:CONSUMES]->(empty_set:EmptySet), (process)-[:PRODUCES]->(mrna:NucleicAcidFeature), (mrna)-[:HAS_UNIT_OF_INFORMATION]->(mrna_ui) WHERE gene.label = mrna.label AND gene_ui.prefix = "ct" AND gene_ui.value = "gene" AND mrna_ui.prefix = "ct" AND mrna_ui.value = "mRNA" OPTIONAL MATCH (repressor)-[:HAS_UNIT_OF_INFORMATION]-(repressor_ui) WHERE repressor_ui.prefix = "mt" WITH complex, repressor, gene, mrna, inhibition, empty_set, process, gene_ui, mrna_ui, COLLECT(repressor_ui) as repressor_uis WHERE NONE(repressor_ui IN repressor_uis WHERE repressor_ui.value <> "prot") RETURN DISTINCT complex, inhibition, process; // DNA-binding transcription factor activity (PD main) MATCH (complex:Complex)-[modulation:MODULATES|STIMULATES|NECESSARY_STIMULATES|CATALYZES|INHIBITS]->(process:StoichiometricProcess), (complex)-[:HAS_SUBUNIT]->(regulator:MacromoleculeSubunit), (complex)-[:HAS_SUBUNIT]->(gene:NucleicAcidFeatureSubunit), (gene)-[:HAS_UNIT_OF_INFORMATION]->(gene_ui), (process)-[:CONSUMES]->(empty_set:EmptySet), (process)-[:PRODUCES]->(mrna:NucleicAcidFeature), (mrna)-[:HAS_UNIT_OF_INFORMATION]->(mrna_ui) WHERE gene.label = mrna.label AND gene_ui.prefix = "ct" AND gene_ui.value = "gene" AND mrna_ui.prefix = "ct" AND mrna_ui.value = "mRNA" OPTIONAL MATCH (regulator)-[:HAS_UNIT_OF_INFORMATION]-(regulator_ui) WHERE regulator_ui.prefix = "mt" WITH complex, regulator, gene, mrna, modulation, empty_set, process, gene_ui, mrna_ui, COLLECT(regulator_ui) as regulator_uis WHERE NONE(regulator_ui IN regulator_uis WHERE regulator_ui.value <> "prot") RETURN DISTINCT complex, modulation, process; // catalytic activity (PD narrow 1) MATCH (catalyzer)-[catalysis:CATALYZES]->(process:StoichiometricProcess)-[:CONSUMES]->() RETURN DISTINCT catalyzer, catalysis, process; // catalytic activity (PD narrow 2) MATCH (catalyzer)-[catalysis:CATALYZES]->(process:StoichiometricProcess) OPTIONAL MATCH (process)-[:CONSUMES]->(reactant) WITH catalyzer, catalysis, reactant, process WHERE reactant IS NULL RETURN DISTINCT catalyzer, catalysis, process; // protein kinase activity (PD narrow 2) MATCH (catalyzer)-[catalysis:CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND reactant_sv.value IS NULL AND product_sv.value = "P" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH catalyzer, catalysis, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT catalyzer, catalysis, process; // protein kinase activity (PD narrow 1) MATCH (catalyzer)-[catalysis:CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant:Macromolecule), (process)-[:PRODUCES]->(product:Macromolecule), (reactant)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant.label = product.label AND reactant_sv.value IS NULL AND product_sv.value = "P" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH catalyzer, catalysis, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT catalyzer, catalysis, process; // protein kinase activity (PD narrow 4) MATCH (catalyzer)-[catalysis:CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeMultimerSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeMultimerSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND reactant_sv.value IS NULL AND product_sv.value = "P" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH catalyzer, catalysis, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT catalyzer, catalysis, process; // protein kinase activity (PD narrow 3) MATCH (catalyzer)-[catalysis:CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant:MacromoleculeMultimer), (process)-[:PRODUCES]->(product:MacromoleculeMultimer), (reactant)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant.label = product.label AND reactant_sv.value IS NULL AND product_sv.value = "P" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH catalyzer, catalysis, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT catalyzer, catalysis, process; // phosphoprotein phosphatase activity (PD narrow 2) MATCH (catalyzer)-[catalysis:CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND product_sv.value IS NULL AND reactant_sv.value = "P" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH catalyzer, catalysis, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT catalyzer, catalysis, process; // phosphoprotein phosphatase activity (PD narrow 1) MATCH (catalyzer)-[catalysis:CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant:Macromolecule), (process)-[:PRODUCES]->(product:Macromolecule), (reactant)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant.label = product.label AND product_sv.value IS NULL AND reactant_sv.value = "P" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH catalyzer, catalysis, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT catalyzer, catalysis, process; // phosphoprotein phosphatase activity (PD narrow 4) MATCH (catalyzer)-[catalysis:CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeMultimerSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeMultimerSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND product_sv.value IS NULL AND reactant_sv.value = "P" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH catalyzer, catalysis, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT catalyzer, catalysis, process; // phosphoprotein phosphatase activity (PD narrow 3) MATCH (catalyzer)-[catalysis:CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant:MacromoleculeMultimer), (process)-[:PRODUCES]->(product:MacromoleculeMultimer), (reactant)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant.label = product.label AND product_sv.value IS NULL AND reactant_sv.value = "P" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH catalyzer, catalysis, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT catalyzer, catalysis, process; // ubiquitin-protein transferase activity (PD narrow 1) MATCH (catalyzer)-[catalysis:CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant:Macromolecule), (process)-[:PRODUCES]->(product:Macromolecule), (reactant)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant.label = product.label AND reactant_sv.value IS NULL AND product_sv.value = "Ub" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH catalyzer, catalysis, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT catalyzer, catalysis, process; // ubiquitin-protein transferase activity (PD narrow 2) MATCH (catalyzer)-[catalysis:CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND reactant_sv.value IS NULL AND product_sv.value = "Ub" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH catalyzer, catalysis, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT catalyzer, catalysis, process; // ubiquitin-protein transferase activity (PD narrow 4) MATCH (catalyzer)-[catalysis:CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeMultimerSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeMultimerSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND reactant_sv.value IS NULL AND product_sv.value = "Ub" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH catalyzer, catalysis, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT catalyzer, catalysis, process; // ubiquitin-protein transferase activity (PD narrow 3) MATCH (catalyzer)-[catalysis:CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant:MacromoleculeMultimer), (process)-[:PRODUCES]->(product:MacromoleculeMultimer), (reactant)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant.label = product.label AND reactant_sv.value IS NULL AND product_sv.value = "Ub" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH catalyzer, catalysis, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT catalyzer, catalysis, process; // protein binding (PD narrow 2) MATCH (process:StoichiometricProcess)-[:CONSUMES]->(reactant1), (process)-[:CONSUMES]->(reactant2:Complex), (reactant2)-[:HAS_SUBUNIT]->(reactant2_subunit1:MacromoleculeSubunit), (process)-[:PRODUCES]->(product:Complex), (product)-[:HAS_SUBUNIT]->(product_subunit1), (product)-[:HAS_SUBUNIT]->(product_subunit2:MacromoleculeSubunit) WHERE reactant1.label = product_subunit1.label AND reactant2_subunit1.label = product_subunit2.label OPTIONAL MATCH (reactant2_subunit1)-[:HAS_UNIT_OF_INFORMATION]->(reactant2_subunit1_ui) WHERE reactant2_subunit1_ui.prefix = "mt" OPTIONAL MATCH (product_subunit2)-[:HAS_UNIT_OF_INFORMATION]->(product_subunit2_ui) WHERE product_subunit2_ui.prefix = "mt" WITH process, COLLECT(reactant2_subunit1_ui) as reactant2_subunit1_uis, COLLECT(product_subunit2_ui) as product_subunit2_uis WHERE NONE(reactant2_subunit1_ui IN reactant2_subunit1_uis WHERE reactant2_subunit1_ui.value <> "prot") AND NONE(product_subunit2_ui IN product_subunit2_uis WHERE product_subunit2_ui.value <> "prot") RETURN DISTINCT process; // protein binding (PD narrow 1) MATCH (process:StoichiometricProcess)-[:CONSUMES]->(reactant1), (process)-[:CONSUMES]->(reactant2:Macromolecule), (process)-[:PRODUCES]->(product:Complex), (product)-[:HAS_SUBUNIT]->(product_subunit1), (product)-[:HAS_SUBUNIT]->(product_subunit2:MacromoleculeSubunit) WHERE reactant1.label = product_subunit1.label AND reactant2.label = product_subunit2.label OPTIONAL MATCH (reactant2)-[:HAS_UNIT_OF_INFORMATION]->(reactant2_ui) WHERE reactant2_ui.prefix = "mt" OPTIONAL MATCH (product_subunit2)-[:HAS_UNIT_OF_INFORMATION]->(product_subunit2_ui) WHERE product_subunit2_ui.prefix = "mt" WITH reactant1, reactant2, product, product_subunit1, product_subunit2, process, COLLECT(product_subunit2_ui) as product_subunit2_uis WHERE NONE(product_subunit2_ui IN product_subunit2_uis WHERE product_subunit2_ui.value <> "prot") RETURN DISTINCT process; // protein binding (PD narrow 3) MATCH (process:StoichiometricProcess)-[:CONSUMES]->(reactant1:Complex), (process)-[:CONSUMES]->(reactant2:Complex), (reactant1)-[:HAS_SUBUNIT]->(reactant1_subunit1), (reactant2)-[:HAS_SUBUNIT]->(reactant2_subunit1:MacromoleculeSubunit), (process)-[:PRODUCES]->(product:Complex), (product)-[:HAS_SUBUNIT]->(product_subunit1), (product)-[:HAS_SUBUNIT]->(product_subunit2:MacromoleculeSubunit) WHERE reactant1_subunit1.label = product_subunit1.label AND reactant2_subunit1.label = product_subunit2.label OPTIONAL MATCH (reactant2_subunit1)-[:HAS_UNIT_OF_INFORMATION]->(reactant2_subunit1_ui) WHERE reactant2_subunit1_ui.prefix = "mt" OPTIONAL MATCH (product_subunit2)-[:HAS_UNIT_OF_INFORMATION]->(product_subunit2_ui) WHERE product_subunit2_ui.prefix = "mt" WITH process, COLLECT(reactant2_subunit1_ui) as reactant2_subunit1_uis, COLLECT(product_subunit2_ui) as product_subunit2_uis WHERE NONE(reactant2_subunit1_ui IN reactant2_subunit1_uis WHERE reactant2_subunit1_ui.value <> "prot") AND NONE(product_subunit2_ui IN product_subunit2_uis WHERE product_subunit2_ui.value <> "prot") RETURN DISTINCT process; // biological process (PD main) MATCH (phenotype:Phenotype) RETURN DISTINCT phenotype; // protein methyltransferase activity (PD narrow 1) MATCH (catalyzer)-[catalysis:CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant:Macromolecule), (process)-[:PRODUCES]->(product:Macromolecule), (reactant)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant.label = product.label AND reactant_sv.value IS NULL AND product_sv.value = "Me" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH catalyzer, catalysis, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT catalyzer, catalysis, process; // protein methyltransferase activity (PD narrow 2) MATCH (catalyzer)-[catalysis:CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND reactant_sv.value IS NULL AND product_sv.value = "Me" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH catalyzer, catalysis, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT catalyzer, catalysis, process; // protein methyltransferase activity (PD narrow 4) MATCH (catalyzer)-[catalysis:CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeMultimerSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeMultimerSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND reactant_sv.value IS NULL AND product_sv.value = "Me" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH catalyzer, catalysis, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT catalyzer, catalysis, process; // protein methyltransferase activity (PD narrow 3) MATCH (catalyzer)-[catalysis:CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant:MacromoleculeMultimer), (process)-[:PRODUCES]->(product:MacromoleculeMultimer), (reactant)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant.label = product.label AND reactant_sv.value IS NULL AND product_sv.value = "Me" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH catalyzer, catalysis, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT catalyzer, catalysis, process; // protein prenyltransferase activity (PD narrow 2) MATCH (catalyzer)-[catalysis:CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND reactant_sv.value IS NULL AND product_sv.value = "Pr" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH catalyzer, catalysis, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT catalyzer, catalysis, process; // protein prenyltransferase activity (PD narrow 1) MATCH (catalyzer)-[catalysis:CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant:Macromolecule), (process)-[:PRODUCES]->(product:Macromolecule), (reactant)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant.label = product.label AND reactant_sv.value IS NULL AND product_sv.value = "Pr" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH catalyzer, catalysis, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT catalyzer, catalysis, process; // protein prenyltransferase activity (PD narrow 4) MATCH (catalyzer)-[catalysis:CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeMultimerSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeMultimerSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND reactant_sv.value IS NULL AND product_sv.value = "Pr" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH catalyzer, catalysis, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT catalyzer, catalysis, process; // protein prenyltransferase activity (PD narrow 3) MATCH (catalyzer)-[catalysis:CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant:MacromoleculeMultimer), (process)-[:PRODUCES]->(product:MacromoleculeMultimer), (reactant)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant.label = product.label AND reactant_sv.value IS NULL AND product_sv.value = "Pr" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH catalyzer, catalysis, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT catalyzer, catalysis, process; // palmitoyl-(protein) hydrolase activity (PD narrow 1) MATCH (catalyzer)-[catalysis:CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant:Macromolecule), (process)-[:PRODUCES]->(product:Macromolecule), (reactant)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant.label = product.label AND product_sv.value IS NULL AND reactant_sv.value = "Pa" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH catalyzer, catalysis, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT catalyzer, catalysis, process; // palmitoyl-(protein) hydrolase activity (PD narrow 2) MATCH (catalyzer)-[catalysis:CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND product_sv.value IS NULL AND reactant_sv.value = "Pa" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH catalyzer, catalysis, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT catalyzer, catalysis, process; // palmitoyl-(protein) hydrolase activity (PD narrow 4) MATCH (catalyzer)-[catalysis:CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeMultimerSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeMultimerSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND product_sv.value IS NULL AND reactant_sv.value = "Pa" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH catalyzer, catalysis, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT catalyzer, catalysis, process; // palmitoyl-(protein) hydrolase activity (PD narrow 3) MATCH (catalyzer)-[catalysis:CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant:MacromoleculeMultimer), (process)-[:PRODUCES]->(product:MacromoleculeMultimer), (reactant)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant.label = product.label AND product_sv.value IS NULL AND reactant_sv.value = "Pa" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH catalyzer, catalysis, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT catalyzer, catalysis, process; // protein deacetylase activity (PD narrow 2) MATCH (catalyzer)-[catalysis:CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND product_sv.value IS NULL AND reactant_sv.value = "Ac" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH catalyzer, catalysis, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT catalyzer, catalysis, process; // protein deacetylase activity (PD narrow 1) MATCH (catalyzer)-[catalysis:CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant:Macromolecule), (process)-[:PRODUCES]->(product:Macromolecule), (reactant)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant.label = product.label AND product_sv.value IS NULL AND reactant_sv.value = "Ac" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH catalyzer, catalysis, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT catalyzer, catalysis, process; // protein deacetylase activity (PD narrow 4) MATCH (catalyzer)-[catalysis:CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeMultimerSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeMultimerSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND product_sv.value IS NULL AND reactant_sv.value = "Ac" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH catalyzer, catalysis, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT catalyzer, catalysis, process; // protein deacetylase activity (PD narrow 3) MATCH (catalyzer)-[catalysis:CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant:MacromoleculeMultimer), (process)-[:PRODUCES]->(product:MacromoleculeMultimer), (reactant)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant.label = product.label AND product_sv.value IS NULL AND reactant_sv.value = "Ac" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH catalyzer, catalysis, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT catalyzer, catalysis, process; // protein glycosidase activity (PD narrow 1) MATCH (catalyzer)-[catalysis:CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant:Macromolecule), (process)-[:PRODUCES]->(product:Macromolecule), (reactant)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant.label = product.label AND product_sv.value IS NULL AND reactant_sv.value = "G" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH catalyzer, catalysis, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT catalyzer, catalysis, process; // protein glycosidase activity (PD narrow 2) MATCH (catalyzer)-[catalysis:CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND product_sv.value IS NULL AND reactant_sv.value = "G" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH catalyzer, catalysis, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT catalyzer, catalysis, process; // protein glycosidase activity (PD narrow 4) MATCH (catalyzer)-[catalysis:CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeMultimerSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeMultimerSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND product_sv.value IS NULL AND reactant_sv.value = "G" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH catalyzer, catalysis, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT catalyzer, catalysis, process; // protein glycosidase activity (PD narrow 3) MATCH (catalyzer)-[catalysis:CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant:MacromoleculeMultimer), (process)-[:PRODUCES]->(product:MacromoleculeMultimer), (reactant)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant.label = product.label AND product_sv.value IS NULL AND reactant_sv.value = "G" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH catalyzer, catalysis, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT catalyzer, catalysis, process; // catalytic activity, acting on a protein (PD narrow 1) MATCH (catalyzer)-[catalysis:CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant:Macromolecule), (process)-[:PRODUCES]->(product:Macromolecule), (reactant)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant.label = product.label AND (reactant_sv.value IS NOT NULL AND product_sv.value IS NULL OR reactant_sv.value IS NULL AND product_sv.value IS NOT NULL OR reactant_sv.value <> product_sv.value) AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH catalyzer, catalysis, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT catalyzer, catalysis, process; // catalytic activity, acting on a protein (PD narrow 2) MATCH (catalyzer)-[catalysis:CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND (reactant_sv.value IS NOT NULL AND product_sv.value IS NULL OR reactant_sv.value IS NULL AND product_sv.value IS NOT NULL OR reactant_sv.value <> product_sv.value) AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH catalyzer, catalysis, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT catalyzer, catalysis, process; // catalytic activity, acting on a protein (PD narrow 4) MATCH (catalyzer)-[catalysis:CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeMultimerSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeMultimerSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND (reactant_sv.value IS NOT NULL AND product_sv.value IS NULL OR reactant_sv.value IS NULL AND product_sv.value IS NOT NULL OR reactant_sv.value <> product_sv.value) AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH catalyzer, catalysis, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT catalyzer, catalysis, process; // catalytic activity, acting on a protein (PD narrow 3) MATCH (catalyzer)-[catalysis:CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant:MacromoleculeMultimer), (process)-[:PRODUCES]->(product:MacromoleculeMultimer), (reactant)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant.label = product.label AND (reactant_sv.value IS NOT NULL AND product_sv.value IS NULL OR reactant_sv.value IS NULL AND product_sv.value IS NOT NULL OR reactant_sv.value <> product_sv.value) AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH catalyzer, catalysis, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT catalyzer, catalysis, process; // catalytic activity, activating a protein (PD narrow 1) MATCH (catalyzer)-[catalysis:CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant:Macromolecule), (process)-[:PRODUCES]->(product:Macromolecule), (reactant)-[:HAS_STATE_VARIABLE]->(reactant_sv), (product)-[:HAS_STATE_VARIABLE]->(product_sv) WHERE reactant.label = product.label AND (reactant_sv.variable IS NULL AND product_sv.variable IS NULL AND reactant_sv.order = product_sv.order AND reactant_sv.value = "inactive" AND product_sv.value = "active") OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH process, catalyzer, catalysis, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") RETURN DISTINCT catalyzer, catalysis, process; // stimulatory activity (PD narrow 1) MATCH (stimulator)-[stimulation:STIMULATES|NECESSARY_STIMULATES|CATALYZES]->(process:StoichiometricProcess)-[:CONSUMES]->() RETURN DISTINCT stimulator, stimulation, process; // stimulatory activity (PD narrow 3) MATCH (stimulator)-[stimulation:STIMULATES|NECESSARY_STIMULATES|CATALYZES]->(phenotype:Phenotype) RETURN DISTINCT stimulator, stimulation, phenotype; // stimulatory activity (PD narrow 2) MATCH (stimulator)-[stimulation:STIMULATES|NECESSARY_STIMULATES|CATALYZES]->(process:StoichiometricProcess) OPTIONAL MATCH (process)-[:CONSUMES]->(reactant) WITH stimulator, stimulation, reactant, process WHERE reactant IS NULL RETURN DISTINCT stimulator, stimulation, process; // modulatory activity (PD narrow 1) MATCH (modulator)-[modulation:MODULATES|STIMULATES|NECESSARY_STIMULATES|CATALYZES|INHIBITS]->(process:StoichiometricProcess)-[:CONSUMES]->() RETURN DISTINCT modulator, modulation, process; // modulatory activity (PD narrow 3) MATCH (modulator)-[modulation:MODULATES|STIMULATES|NECESSARY_STIMULATES|CATALYZES|INHIBITS]->(phenotype:Phenotype) RETURN DISTINCT modulator, modulation, phenotype; // modulatory activity (PD narrow 2) MATCH (modulator)-[modulation:MODULATES|STIMULATES|NECESSARY_STIMULATES|CATALYZES|INHIBITS]->(process:StoichiometricProcess) OPTIONAL MATCH (process)-[:CONSUMES]->(reactant) WITH modulator, modulation, reactant, process WHERE reactant IS NULL RETURN DISTINCT modulator, modulation, process; // protein hydroxylase activity (PD narrow 1) MATCH (catalyzer)-[catalysis:CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant:Macromolecule), (process)-[:PRODUCES]->(product:Macromolecule), (reactant)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant.label = product.label AND reactant_sv.value IS NULL AND product_sv.value = "OH" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH catalyzer, catalysis, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT catalyzer, catalysis, process; // protein hydroxylase activity (PD narrow 2) MATCH (catalyzer)-[catalysis:CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND reactant_sv.value IS NULL AND product_sv.value = "OH" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH catalyzer, catalysis, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT catalyzer, catalysis, process; // protein hydroxylase activity (PD narrow 4) MATCH (catalyzer)-[catalysis:CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeMultimerSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeMultimerSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND reactant_sv.value IS NULL AND product_sv.value = "OH" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH catalyzer, catalysis, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT catalyzer, catalysis, process; // protein hydroxylase activity (PD narrow 3) MATCH (catalyzer)-[catalysis:CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant:MacromoleculeMultimer), (process)-[:PRODUCES]->(product:MacromoleculeMultimer), (reactant)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant.label = product.label AND reactant_sv.value IS NULL AND product_sv.value = "OH" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH catalyzer, catalysis, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT catalyzer, catalysis, process; // catalytic activity, adding a chemical group on a protein (PD narrow 1) MATCH (catalyzer)-[catalysis:CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant:Macromolecule), (process)-[:PRODUCES]->(product:Macromolecule), (reactant)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant.label = product.label AND product_sv.value IS NOT NULL AND reactant_sv.value IS NULL AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH catalyzer, catalysis, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT catalyzer, catalysis, process; // catalytic activity, adding a chemical group on a protein (PD narrow 2) MATCH (catalyzer)-[catalysis:CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND reactant_sv.value IS NULL AND product_sv.value IS NOT NULL AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH catalyzer, catalysis, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT catalyzer, catalysis, process; // catalytic activity, adding a chemical group on a protein (PD narrow 4) MATCH (catalyzer)-[catalysis:CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeMultimerSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeMultimerSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND reactant_sv.value IS NULL AND product_sv.value IS NOT NULL AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH catalyzer, catalysis, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT catalyzer, catalysis, process; // catalytic activity, adding a chemical group on a protein (PD narrow 3) MATCH (catalyzer)-[catalysis:CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant:MacromoleculeMultimer), (process)-[:PRODUCES]->(product:MacromoleculeMultimer), (reactant)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant.label = product.label AND product_sv.value IS NOT NULL AND reactant_sv.value IS NULL AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH catalyzer, catalysis, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT catalyzer, catalysis, process; // catalytic activity, activating a protein (PD narrow 2) MATCH (catalyzer)-[catalysis:CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND (reactant_sv.variable IS NULL AND product_sv.variable IS NULL AND reactant_sv.order = product_sv.order AND reactant_sv.value = "inactive" AND product_sv.value = "active") OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH process, catalyzer, catalysis, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT catalyzer, catalysis, process; // catalytic activity, activating a protein (PD narrow 4) MATCH (catalyzer)-[catalysis:CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeMultimerSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeMultimerSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND (reactant_sv.variable IS NULL AND product_sv.variable IS NULL AND reactant_sv.order = product_sv.order AND reactant_sv.value = "inactive" AND product_sv.value = "active") OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH process, catalyzer, catalysis, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT catalyzer, catalysis, process; // catalytic activity, activating a protein (PD narrow 3) MATCH (catalyzer)-[catalysis:CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant:MacromoleculeMultimer), (process)-[:PRODUCES]->(product:MacromoleculeMultimer), (reactant)-[:HAS_STATE_VARIABLE]->(reactant_sv), (product)-[:HAS_STATE_VARIABLE]->(product_sv) WHERE reactant.label = product.label AND (reactant_sv.variable IS NULL AND product_sv.variable IS NULL AND reactant_sv.order = product_sv.order AND reactant_sv.value = "inactive" AND product_sv.value = "active") OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH process, catalyzer, catalysis, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") RETURN DISTINCT catalyzer, catalysis, process; // catalytic activity, activating a protein (PD broad 1) MATCH (catalyzer)-[catalysis:CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_STATE_VARIABLE]->(reactant_sv), (product)-[:HAS_STATE_VARIABLE]->(product_sv) WHERE (reactant.label IS NULL AND product.label IS NULL OR reactant.label = product.label) AND (reactant_sv.variable IS NULL AND product_sv.variable IS NULL AND reactant_sv.order = product_sv.order AND reactant_sv.value = "inactive" AND product_sv.value = "active") RETURN DISTINCT catalyzer, catalysis, process; // protein deacetylation (PD narrow 1) MATCH (process)-[:CONSUMES]->(reactant:Macromolecule), (process)-[:PRODUCES]->(product:Macromolecule), (reactant)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant.label = product.label AND reactant_sv.value = "Ac" AND product_sv.value IS NULL AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant, product, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein deacetylation (PD narrow 2) MATCH (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND reactant_sv.value = "Ac" AND product_sv.value IS NULL AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant_subunit, product_subunit, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein deacetylation (PD narrow 4) MATCH (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeMultimerSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeMultimerSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND reactant_sv.value = "Ac" AND product_sv.value IS NULL AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant_subunit, product_subunit, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein deacetylation (PD narrow 3) MATCH (process)-[:CONSUMES]->(reactant:MacromoleculeMultimer), (process)-[:PRODUCES]->(product:MacromoleculeMultimer), (reactant)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant.label = product.label AND reactant_sv.value = "Ac" AND product_sv.value IS NULL AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant, product, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // removal of a chemical group from a protein (PD narrow 1) MATCH (process)-[:CONSUMES]->(reactant:Macromolecule), (process)-[:PRODUCES]->(product:Macromolecule), (reactant)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant.label = product.label AND reactant_sv.value IS NOT NULL AND product_sv.value IS NULL AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant, product, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // removal of a chemical group from a protein (PD narrow 2) MATCH (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND reactant_sv.value IS NOT NULL AND product_sv.value IS NULL AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant_subunit, product_subunit, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // removal of a chemical group from a protein (PD narrow 4) MATCH (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeMultimerSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeMultimerSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND reactant_sv.value IS NOT NULL AND product_sv.value IS NULL AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant_subunit, product_subunit, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // removal of a chemical group from a protein (PD narrow 3) MATCH (process)-[:CONSUMES]->(reactant:MacromoleculeMultimer), (process)-[:PRODUCES]->(product:MacromoleculeMultimer), (reactant)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant.label = product.label AND reactant_sv.value IS NOT NULL AND product_sv.value IS NULL AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant, product, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein deglycosylation (PD narrow 1) MATCH (process)-[:CONSUMES]->(reactant:Macromolecule), (process)-[:PRODUCES]->(product:Macromolecule), (reactant)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant.label = product.label AND reactant_sv.value = "G" AND product_sv.value IS NULL AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant, product, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein deglycosylation (PD narrow 2) MATCH (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND reactant_sv.value = "G" AND product_sv.value IS NULL AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant_subunit, product_subunit, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein deglycosylation (PD narrow 4) MATCH (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeMultimerSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeMultimerSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND reactant_sv.value = "G" AND product_sv.value IS NULL AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant_subunit, product_subunit, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein deglycosylation (PD narrow 3) MATCH (process)-[:CONSUMES]->(reactant:MacromoleculeMultimer), (process)-[:PRODUCES]->(product:MacromoleculeMultimer), (reactant)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant.label = product.label AND reactant_sv.value = "G" AND product_sv.value IS NULL AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant, product, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein dehydroxylation (PD narrow 1) MATCH (process)-[:CONSUMES]->(reactant:Macromolecule), (process)-[:PRODUCES]->(product:Macromolecule), (reactant)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant.label = product.label AND reactant_sv.value = "OH" AND product_sv.value IS NULL AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant, product, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein dehydroxylation (PD narrow 2) MATCH (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND reactant_sv.value = "OH" AND product_sv.value IS NULL AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant_subunit, product_subunit, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein dehydroxylation (PD narrow 4) MATCH (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeMultimerSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeMultimerSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND reactant_sv.value = "OH" AND product_sv.value IS NULL AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant_subunit, product_subunit, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein dehydroxylation (PD narrow 3) MATCH (process)-[:CONSUMES]->(reactant:MacromoleculeMultimer), (process)-[:PRODUCES]->(product:MacromoleculeMultimer), (reactant)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant.label = product.label AND reactant_sv.value = "OH" AND product_sv.value IS NULL AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant, product, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein demyristoylation (PD narrow 1) MATCH (process)-[:CONSUMES]->(reactant:Macromolecule), (process)-[:PRODUCES]->(product:Macromolecule), (reactant)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant.label = product.label AND reactant_sv.value = "My" AND product_sv.value IS NULL AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant, product, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein demyristoylation (PD narrow 2) MATCH (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND reactant_sv.value = "My" AND product_sv.value IS NULL AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant_subunit, product_subunit, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein demyristoylation (PD narrow 4) MATCH (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeMultimerSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeMultimerSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND reactant_sv.value = "My" AND product_sv.value IS NULL AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant_subunit, product_subunit, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein demyristoylation (PD narrow 3) MATCH (process)-[:CONSUMES]->(reactant:MacromoleculeMultimer), (process)-[:PRODUCES]->(product:MacromoleculeMultimer), (reactant)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant.label = product.label AND reactant_sv.value = "My" AND product_sv.value IS NULL AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant, product, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein depalmitoylation (PD narrow 1) MATCH (process)-[:CONSUMES]->(reactant:Macromolecule), (process)-[:PRODUCES]->(product:Macromolecule), (reactant)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant.label = product.label AND reactant_sv.value = "Pa" AND product_sv.value IS NULL AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant, product, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein depalmitoylation (PD narrow 2) MATCH (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND reactant_sv.value = "Pa" AND product_sv.value IS NULL AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant_subunit, product_subunit, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein depalmitoylation (PD narrow 4) MATCH (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeMultimerSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeMultimerSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND reactant_sv.value = "Pa" AND product_sv.value IS NULL AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant_subunit, product_subunit, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein depalmitoylation (PD narrow 3) MATCH (process)-[:CONSUMES]->(reactant:MacromoleculeMultimer), (process)-[:PRODUCES]->(product:MacromoleculeMultimer), (reactant)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant.label = product.label AND reactant_sv.value = "Pa" AND product_sv.value IS NULL AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant, product, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein deprenylation (PD narrow 1) MATCH (process)-[:CONSUMES]->(reactant:Macromolecule), (process)-[:PRODUCES]->(product:Macromolecule), (reactant)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant.label = product.label AND reactant_sv.value = "Pr" AND product_sv.value IS NULL AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant, product, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein deprenylation (PD narrow 2) MATCH (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND reactant_sv.value = "Pr" AND product_sv.value IS NULL AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant_subunit, product_subunit, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein deprenylation (PD narrow 4) MATCH (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeMultimerSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeMultimerSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND reactant_sv.value = "Pr" AND product_sv.value IS NULL AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant_subunit, product_subunit, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein deprenylation (PD narrow 3) MATCH (process)-[:CONSUMES]->(reactant:MacromoleculeMultimer), (process)-[:PRODUCES]->(product:MacromoleculeMultimer), (reactant)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant.label = product.label AND reactant_sv.value = "Pr" AND product_sv.value IS NULL AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant, product, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein desulfation (PD narrow 1) MATCH (process)-[:CONSUMES]->(reactant:Macromolecule), (process)-[:PRODUCES]->(product:Macromolecule), (reactant)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant.label = product.label AND reactant_sv.value = "S" AND product_sv.value IS NULL AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant, product, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein desulfation (PD narrow 2) MATCH (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND reactant_sv.value = "S" AND product_sv.value IS NULL AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant_subunit, product_subunit, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein desulfation (PD narrow 4) MATCH (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeMultimerSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeMultimerSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND reactant_sv.value = "S" AND product_sv.value IS NULL AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant_subunit, product_subunit, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein desulfation (PD narrow 3) MATCH (process)-[:CONSUMES]->(reactant:MacromoleculeMultimer), (process)-[:PRODUCES]->(product:MacromoleculeMultimer), (reactant)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant.label = product.label AND reactant_sv.value = "S" AND product_sv.value IS NULL AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant, product, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein deubiquitination (PD narrow 1) MATCH (process)-[:CONSUMES]->(reactant:Macromolecule), (process)-[:PRODUCES]->(product:Macromolecule), (reactant)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant.label = product.label AND reactant_sv.value = "Ub" AND product_sv.value IS NULL AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant, product, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein deubiquitination (PD narrow 2) MATCH (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND reactant_sv.value = "Ub" AND product_sv.value IS NULL AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant_subunit, product_subunit, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein deubiquitination (PD narrow 4) MATCH (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeMultimerSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeMultimerSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND reactant_sv.value = "Ub" AND product_sv.value IS NULL AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant_subunit, product_subunit, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein deubiquitination (PD narrow 3) MATCH (process)-[:CONSUMES]->(reactant:MacromoleculeMultimer), (process)-[:PRODUCES]->(product:MacromoleculeMultimer), (reactant)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant.label = product.label AND reactant_sv.value = "Ub" AND product_sv.value IS NULL AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant, product, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein complex dissociation (PD narrow 1) MATCH (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product1:Macromolecule), (process)-[:PRODUCES]->(product2:Macromolecule), (reactant)-[:HAS_SUBUNIT]->(subunit1:MacromoleculeSubunit), (reactant)-[:HAS_SUBUNIT]->(subunit2:MacromoleculeSubunit) WHERE product1.label = subunit1.label AND product2.label = subunit2.label OPTIONAL MATCH (product1)-[:HAS_UNIT_OF_INFORMATION]->(product1_ui) WHERE product1_ui.prefix = "mt" OPTIONAL MATCH (product2)-[:HAS_UNIT_OF_INFORMATION]->(product2_ui) WHERE product2_ui.prefix = "mt" OPTIONAL MATCH (subunit1)-[:HAS_UNIT_OF_INFORMATION]->(subunit1_ui) WHERE subunit1_ui.prefix = "mt" OPTIONAL MATCH (subunit2)-[:HAS_UNIT_OF_INFORMATION]->(subunit2_ui) WHERE subunit2_ui.prefix = "mt" WITH process, COLLECT(product1_ui) AS product1_uis, COLLECT(subunit1_ui) AS subunit1_uis, COLLECT(product2_ui) AS product2_uis, COLLECT(subunit2_ui) AS subunit2_uis WHERE NONE(product1_ui IN product1_uis WHERE product1_ui.value <> "prot") AND NONE(subunit1_ui IN subunit1_uis WHERE subunit1_ui.value <> "prot") AND NONE(product2_ui IN product2_uis WHERE product2_ui.value <> "prot") AND NONE(subunit2_ui IN subunit2_uis WHERE subunit2_ui.value <> "prot") RETURN DISTINCT process; // protein complex dissociation (PD narrow 2) MATCH (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product1:Macromolecule), (process)-[:PRODUCES]->(product2:Complex), (reactant)-[:HAS_SUBUNIT]->(subunit1), (reactant)-[:HAS_SUBUNIT]->(subunit2), (product2)-[:HAS_SUBUNIT]->(subunit3) WHERE product1.label = subunit1.label AND subunit2.label = subunit3.label OPTIONAL MATCH (product1)-[:HAS_UNIT_OF_INFORMATION]->(subunit4_ui) WHERE subunit4_ui.prefix = "mt" OPTIONAL MATCH (subunit1)-[:HAS_UNIT_OF_INFORMATION]->(subunit1_ui) WHERE subunit1_ui.prefix = "mt" OPTIONAL MATCH (subunit2)-[:HAS_UNIT_OF_INFORMATION]->(subunit2_ui) WHERE subunit2_ui.prefix = "mt" OPTIONAL MATCH (subunit3)-[:HAS_UNIT_OF_INFORMATION]->(subunit3_ui) WHERE subunit3_ui.prefix = "mt" WITH process, COLLECT(subunit1_ui) AS subunit1_uis, COLLECT(subunit2_ui) AS subunit2_uis, COLLECT(subunit3_ui) AS subunit3_uis, COLLECT(subunit4_ui) AS subunit4_uis WHERE NONE(subunit1_ui IN subunit1_uis WHERE subunit1_ui.value <> "prot") AND NONE(subunit2_ui IN subunit2_uis WHERE subunit2_ui.value <> "prot") AND NONE(subunit3_ui IN subunit3_uis WHERE subunit3_ui.value <> "prot") AND NONE(subunit4_ui IN subunit4_uis WHERE subunit4_ui.value <> "prot") RETURN DISTINCT process; // protein complex dissociation (PD narrow 3) MATCH (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product1:Complex), (process)-[:PRODUCES]->(product2:Complex), (reactant)-[:HAS_SUBUNIT]->(subunit1), (reactant)-[:HAS_SUBUNIT]->(subunit2), (product2)-[:HAS_SUBUNIT]->(subunit3), (product1)-[:HAS_SUBUNIT]->(subunit4) WHERE subunit4.label = subunit1.label AND subunit2.label = subunit3.label OPTIONAL MATCH (subunit1)-[:HAS_UNIT_OF_INFORMATION]->(subunit1_ui) WHERE subunit1_ui.prefix = "mt" OPTIONAL MATCH (subunit2)-[:HAS_UNIT_OF_INFORMATION]->(subunit2_ui) WHERE subunit2_ui.prefix = "mt" OPTIONAL MATCH (subunit3)-[:HAS_UNIT_OF_INFORMATION]->(subunit3_ui) WHERE subunit3_ui.prefix = "mt" OPTIONAL MATCH (subunit4)-[:HAS_UNIT_OF_INFORMATION]->(subunit4_ui) WHERE subunit4_ui.prefix = "mt" WITH process, COLLECT(subunit1_ui) AS subunit1_uis, COLLECT(subunit2_ui) AS subunit2_uis, COLLECT(subunit3_ui) AS subunit3_uis, COLLECT(subunit4_ui) AS subunit4_uis WHERE NONE(subunit1_ui IN subunit1_uis WHERE subunit1_ui.value <> "prot") AND NONE(subunit2_ui IN subunit2_uis WHERE subunit2_ui.value <> "prot") AND NONE(subunit3_ui IN subunit3_uis WHERE subunit3_ui.value <> "prot") AND NONE(subunit4_ui IN subunit4_uis WHERE subunit4_ui.value <> "prot") RETURN DISTINCT process; // protein multimer dissociation (PD main) MATCH (process)-[:CONSUMES]->(reactant:MacromoleculeMultimer), (process)-[production:PRODUCES]->(product:Macromolecule) WHERE reactant.label = product.label OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]->(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]->(product_ui) WHERE product_ui.prefix = "mt" WITH reactant, product, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // catalytic activity, removing a chemical group from a protein (PD narrow 1) MATCH (catalyzer)-[catalysis:CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant:Macromolecule), (process)-[:PRODUCES]->(product:Macromolecule), (reactant)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant.label = product.label AND product_sv.value IS NULL AND reactant_sv.value IS NOT NULL AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH catalyzer, catalysis, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT catalyzer, catalysis, process; // catalytic activity, removing a chemical group from a protein (PD narrow 2) MATCH (catalyzer)-[catalysis:CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND product_sv.value IS NULL AND reactant_sv.value IS NOT NULL AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH catalyzer, catalysis, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT catalyzer, catalysis, process; // catalytic activity, removing a chemical group from a protein (PD narrow 4) MATCH (catalyzer)-[catalysis:CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeMultimerSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeMultimerSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND product_sv.value IS NULL AND reactant_sv.value IS NOT NULL AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH catalyzer, catalysis, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT catalyzer, catalysis, process; // catalytic activity, removing a chemical group from a protein (PD narrow 3) MATCH (catalyzer)-[catalysis:CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant:MacromoleculeMultimer), (process)-[:PRODUCES]->(product:MacromoleculeMultimer), (reactant)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant.label = product.label AND product_sv.value IS NULL AND reactant_sv.value IS NOT NULL AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH catalyzer, catalysis, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT catalyzer, catalysis, process; // metabolic catalytic activity (PD narrow 1) MATCH (catalyzer)-[catalysis:CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant), (process)-[:PRODUCES]->(product) WITH catalyzer, catalysis, process, COLLECT(reactant) as reactants, COLLECT(product) as products WHERE ALL(reactant IN reactants WHERE reactant:SimpleChemical) AND ALL(product IN products WHERE product:SimpleChemical) RETURN DISTINCT catalyzer, catalysis, process; // metabolic catalytic activity (PD narrow 2) MATCH (catalyzer)-[catalysis:CATALYZES]->(process:StoichiometricProcess), (process)-[:PRODUCES]->(product) OPTIONAL MATCH (process)-[:CONSUMES]->(reactant) WITH catalyzer, catalysis, process, reactant, COLLECT(product) as products WHERE reactant IS NULL AND ALL(product IN products WHERE product:SimpleChemical) RETURN DISTINCT catalyzer, catalysis, process; // uncertain irreversible process (PD main) MATCH (process:UncertainProcess)-[:CONSUMES]-(), (process)-[:PRODUCES]->() RETURN DISTINCT process; // uncertain reversible process (PD main) MATCH (process:UncertainProcess)-[:PRODUCES]->() OPTIONAL MATCH (process)-[:CONSUMES]->(reactant) WITH process, reactant WHERE reactant IS NULL RETURN DISTINCT process; // deactivation (PD broad 1) MATCH (process:StoichiometricProcess)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_STATE_VARIABLE]->(reactant_sv), (product)-[:HAS_STATE_VARIABLE]->(product_sv) WHERE (reactant.label IS NULL AND product.label IS NULL OR reactant.label = product.label) AND (reactant_sv.variable IS NULL AND product_sv.variable IS NULL AND reactant_sv.order = product_sv.order AND reactant_sv.value = "active" AND product_sv.value = "inactive") RETURN DISTINCT process; // deactivation (PD narrow 1) MATCH (process:StoichiometricProcess)-[:CONSUMES]->(reactant:Macromolecule), (process)-[:PRODUCES]->(product:Macromolecule), (reactant)-[:HAS_STATE_VARIABLE]->(reactant_sv), (product)-[:HAS_STATE_VARIABLE]->(product_sv) WHERE reactant.label = product.label AND (reactant_sv.variable IS NULL AND product_sv.variable IS NULL AND reactant_sv.order = product_sv.order AND reactant_sv.value = "active" AND product_sv.value = "inactive") OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant, product, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") RETURN DISTINCT process; // deactivation (PD narrow 2) MATCH (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND (reactant_sv.variable IS NULL AND product_sv.variable IS NULL AND reactant_sv.order = product_sv.order AND reactant_sv.value = "active" AND product_sv.value = "inactive") OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant_subunit, product_subunit, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // deactivation (PD narrow 3) MATCH (process:StoichiometricProcess)-[:CONSUMES]->(reactant:MacromoleculeMultimer), (process)-[:PRODUCES]->(product:MacromoleculeMultimer), (reactant)-[:HAS_STATE_VARIABLE]->(reactant_sv), (product)-[:HAS_STATE_VARIABLE]->(product_sv) WHERE reactant.label = product.label AND (reactant_sv.variable IS NULL AND product_sv.variable IS NULL AND reactant_sv.order = product_sv.order AND reactant_sv.value = "active" AND product_sv.value = "inactive") OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant, product, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") RETURN DISTINCT process; // deactivation (PD narrow 4) MATCH (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeMultimerSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeMultimerSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND (reactant_sv.variable IS NULL AND product_sv.variable IS NULL AND reactant_sv.order = product_sv.order AND reactant_sv.value = "active" AND product_sv.value = "inactive") OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant_subunit, product_subunit, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein multimerisation (PD main) MATCH (process:StoichiometricProcess)-[consumption:CONSUMES]->(reactant:Macromolecule), (process)-[:PRODUCES]->(product:MacromoleculeMultimer) WHERE reactant.label = product.label OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]->(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]->(product_ui) WHERE product_ui.prefix = "mt" WITH reactant, product, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein acetyltransferase activity (PD narrow 2) MATCH (catalyzer)-[catalysis:CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND reactant_sv.value IS NULL AND product_sv.value = "Ac" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH catalyzer, catalysis, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT catalyzer, catalysis, process; // protein acetyltransferase activity (PD narrow 1) MATCH (catalyzer)-[catalysis:CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant:Macromolecule), (process)-[:PRODUCES]->(product:Macromolecule), (reactant)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant.label = product.label AND reactant_sv.value IS NULL AND product_sv.value = "Ac" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH catalyzer, catalysis, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT catalyzer, catalysis, process; // protein acetyltransferase activity (PD narrow 4) MATCH (catalyzer)-[catalysis:CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeMultimerSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeMultimerSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND reactant_sv.value IS NULL AND product_sv.value = "Ac" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH catalyzer, catalysis, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT catalyzer, catalysis, process; // protein acetyltransferase activity (PD narrow 3) MATCH (catalyzer)-[catalysis:CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant:MacromoleculeMultimer), (process)-[:PRODUCES]->(product:MacromoleculeMultimer), (reactant)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant.label = product.label AND reactant_sv.value IS NULL AND product_sv.value = "Ac" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH catalyzer, catalysis, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT catalyzer, catalysis, process; // protein demethylase activity (PD narrow 1) MATCH (catalyzer)-[catalysis:CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant:Macromolecule), (process)-[:PRODUCES]->(product:Macromolecule), (reactant)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant.label = product.label AND product_sv.value IS NULL AND reactant_sv.value = "Me" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH catalyzer, catalysis, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT catalyzer, catalysis, process; // protein demethylase activity (PD narrow 2) MATCH (catalyzer)-[catalysis:CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND product_sv.value IS NULL AND reactant_sv.value = "Me" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH catalyzer, catalysis, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT catalyzer, catalysis, process; // protein demethylase activity (PD narrow 4) MATCH (catalyzer)-[catalysis:CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeMultimerSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeMultimerSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND product_sv.value IS NULL AND reactant_sv.value = "Me" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH catalyzer, catalysis, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT catalyzer, catalysis, process; // protein demethylase activity (PD narrow 3) MATCH (catalyzer)-[catalysis:CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant:MacromoleculeMultimer), (process)-[:PRODUCES]->(product:MacromoleculeMultimer), (reactant)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant.label = product.label AND product_sv.value IS NULL AND reactant_sv.value = "Me" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH catalyzer, catalysis, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT catalyzer, catalysis, process; // protein glycosyltransferase activity (PD narrow 2) MATCH (catalyzer)-[catalysis:CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND reactant_sv.value IS NULL AND product_sv.value = "G" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH catalyzer, catalysis, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT catalyzer, catalysis, process; // protein glycosyltransferase activity (PD narrow 1) MATCH (catalyzer)-[catalysis:CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant:Macromolecule), (process)-[:PRODUCES]->(product:Macromolecule), (reactant)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant.label = product.label AND reactant_sv.value IS NULL AND product_sv.value = "G" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH catalyzer, catalysis, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT catalyzer, catalysis, process; // protein glycosyltransferase activity (PD narrow 4) MATCH (catalyzer)-[catalysis:CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeMultimerSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeMultimerSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND reactant_sv.value IS NULL AND product_sv.value = "G" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH catalyzer, catalysis, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT catalyzer, catalysis, process; // protein glycosyltransferase activity (PD narrow 3) MATCH (catalyzer)-[catalysis:CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant:MacromoleculeMultimer), (process)-[:PRODUCES]->(product:MacromoleculeMultimer), (reactant)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant.label = product.label AND reactant_sv.value IS NULL AND product_sv.value = "G" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH catalyzer, catalysis, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT catalyzer, catalysis, process; // protein palmitoyltransferase activity (PD narrow 1) MATCH (catalyzer)-[catalysis:CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant:Macromolecule), (process)-[:PRODUCES]->(product:Macromolecule), (reactant)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant.label = product.label AND reactant_sv.value IS NULL AND product_sv.value = "Pa" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH catalyzer, catalysis, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT catalyzer, catalysis, process; // protein palmitoyltransferase activity (PD narrow 2) MATCH (catalyzer)-[catalysis:CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND reactant_sv.value IS NULL AND product_sv.value = "Pa" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH catalyzer, catalysis, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT catalyzer, catalysis, process; // protein palmitoyltransferase activity (PD narrow 4) MATCH (catalyzer)-[catalysis:CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeMultimerSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeMultimerSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND reactant_sv.value IS NULL AND product_sv.value = "Pa" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH catalyzer, catalysis, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT catalyzer, catalysis, process; // protein palmitoyltransferase activity (PD narrow 3) MATCH (catalyzer)-[catalysis:CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant:MacromoleculeMultimer), (process)-[:PRODUCES]->(product:MacromoleculeMultimer), (reactant)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant.label = product.label AND reactant_sv.value IS NULL AND product_sv.value = "Pa" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH catalyzer, catalysis, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT catalyzer, catalysis, process; // protein ubiquitinyl hydrolase activity (PD narrow 2) MATCH (catalyzer)-[catalysis:CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND product_sv.value IS NULL AND reactant_sv.value = "Ub" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH catalyzer, catalysis, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT catalyzer, catalysis, process; // protein ubiquitinyl hydrolase activity (PD narrow 1) MATCH (catalyzer)-[catalysis:CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant:Macromolecule), (process)-[:PRODUCES]->(product:Macromolecule), (reactant)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant.label = product.label AND product_sv.value IS NULL AND reactant_sv.value = "Ub" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH catalyzer, catalysis, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT catalyzer, catalysis, process; // protein ubiquitinyl hydrolase activity (PD narrow 4) MATCH (catalyzer)-[catalysis:CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeMultimerSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeMultimerSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND product_sv.value IS NULL AND reactant_sv.value = "Ub" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH catalyzer, catalysis, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT catalyzer, catalysis, process; // protein ubiquitinyl hydrolase activity (PD narrow 3) MATCH (catalyzer)-[catalysis:CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant:MacromoleculeMultimer), (process)-[:PRODUCES]->(product:MacromoleculeMultimer), (reactant)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant.label = product.label AND product_sv.value IS NULL AND reactant_sv.value = "Ub" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH catalyzer, catalysis, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT catalyzer, catalysis, process; // addition of a chemical group on a protein (PD narrow 1) MATCH (process)-[:CONSUMES]->(reactant:Macromolecule), (process)-[:PRODUCES]->(product:Macromolecule), (reactant)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant.label = product.label AND reactant_sv.value IS NULL AND product_sv.value IS NOT NULL AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant, product, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // addition of a chemical group on a protein (PD narrow 2) MATCH (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND reactant_sv.value IS NULL AND product_sv.value IS NOT NULL AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant_subunit, product_subunit, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // addition of a chemical group on a protein (PD narrow 4) MATCH (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeMultimerSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeMultimerSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND reactant_sv.value IS NULL AND product_sv.value IS NOT NULL AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant_subunit, product_subunit, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // addition of a chemical group on a protein (PD narrow 3) MATCH (process)-[:CONSUMES]->(reactant:MacromoleculeMultimer), (process)-[:PRODUCES]->(product:MacromoleculeMultimer), (reactant)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant.label = product.label AND reactant_sv.value IS NULL AND product_sv.value IS NOT NULL AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant, product, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // inhibitory activity (PD narrow 1) MATCH (inhibitor)-[inhibition:INHIBITS]->(process:StoichiometricProcess)-[:CONSUMES]->() RETURN DISTINCT inhibitor, inhibition, process; // inhibitory activity (PD narrow 3) MATCH (inhibitor)-[inhibition:INHIBITS]->(phenotype:Phenotype) RETURN DISTINCT inhibitor, inhibition, phenotype; // inhibitory activity (PD narrow 2) MATCH (inhibitor)-[inhibition:INHIBITS]->(process:StoichiometricProcess) OPTIONAL MATCH (process)-[:CONSUMES]->(reactant) WITH inhibitor, inhibition, reactant, process WHERE reactant IS NULL RETURN DISTINCT inhibitor, inhibition, process; // protein demethylation (PD narrow 1) MATCH (process)-[:CONSUMES]->(reactant:Macromolecule), (process)-[:PRODUCES]->(product:Macromolecule), (reactant)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant.label = product.label AND reactant_sv.value = "Me" AND product_sv.value IS NULL AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant, product, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein demethylation (PD narrow 2) MATCH (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND reactant_sv.value = "Me" AND product_sv.value IS NULL AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant_subunit, product_subunit, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein demethylation (PD narrow 3) MATCH (process)-[:CONSUMES]->(reactant:MacromoleculeMultimer), (process)-[:PRODUCES]->(product:MacromoleculeMultimer), (reactant)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant.label = product.label AND reactant_sv.value = "Me" AND product_sv.value IS NULL AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant, product, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein dephosphorylation (PD narrow 1) MATCH (process)-[:CONSUMES]->(reactant:Macromolecule), (process)-[:PRODUCES]->(product:Macromolecule), (reactant)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant.label = product.label AND reactant_sv.value = "P" AND product_sv.value IS NULL AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant, product, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein dephosphorylation (PD narrow 2) MATCH (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND reactant_sv.value = "P" AND product_sv.value IS NULL AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant_subunit, product_subunit, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein demethylation (PD narrow 4) MATCH (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeMultimerSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeMultimerSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND reactant_sv.value = "Me" AND product_sv.value IS NULL AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant_subunit, product_subunit, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein dephosphorylation (PD narrow 4) MATCH (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeMultimerSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeMultimerSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND reactant_sv.value = "P" AND product_sv.value IS NULL AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant_subunit, product_subunit, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein dephosphorylation (PD narrow 3) MATCH (process)-[:CONSUMES]->(reactant:MacromoleculeMultimer), (process)-[:PRODUCES]->(product:MacromoleculeMultimer), (reactant)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant.label = product.label AND reactant_sv.value = "P" AND product_sv.value IS NULL AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant, product, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein prenylation (PD narrow 2) MATCH (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND reactant_sv.value IS NULL AND product_sv.value = "Pr" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant_subunit, product_subunit, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein prenylation (PD narrow 1) MATCH (process)-[:CONSUMES]->(reactant:Macromolecule), (process)-[:PRODUCES]->(product:Macromolecule), (reactant)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant.label = product.label AND reactant_sv.value IS NULL AND product_sv.value = "Pr" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant, product, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein prenylation (PD narrow 4) MATCH (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeMultimerSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeMultimerSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND reactant_sv.value IS NULL AND product_sv.value = "Pr" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant_subunit, product_subunit, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein prenylation (PD narrow 3) MATCH (process)-[:CONSUMES]->(reactant:MacromoleculeMultimer), (process)-[:PRODUCES]->(product:MacromoleculeMultimer), (reactant)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant.label = product.label AND reactant_sv.value IS NULL AND product_sv.value = "Pr" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant, product, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein acetylation (PD narrow 1) MATCH (process)-[:CONSUMES]->(reactant:Macromolecule), (process)-[:PRODUCES]->(product:Macromolecule), (reactant)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant.label = product.label AND reactant_sv.value IS NULL AND product_sv.value = "Ac" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant, product, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein acetylation (PD narrow 2) MATCH (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND reactant_sv.value IS NULL AND product_sv.value = "Ac" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant_subunit, product_subunit, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein acetylation (PD narrow 4) MATCH (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeMultimerSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeMultimerSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND reactant_sv.value IS NULL AND product_sv.value = "Ac" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant_subunit, product_subunit, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein acetylation (PD narrow 3) MATCH (process)-[:CONSUMES]->(reactant:MacromoleculeMultimer), (process)-[:PRODUCES]->(product:MacromoleculeMultimer), (reactant)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant.label = product.label AND reactant_sv.value IS NULL AND product_sv.value = "Ac" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant, product, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein glycosylation (PD narrow 1) MATCH (process)-[:CONSUMES]->(reactant:Macromolecule), (process)-[:PRODUCES]->(product:Macromolecule), (reactant)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant.label = product.label AND reactant_sv.value IS NULL AND product_sv.value = "G" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant, product, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein glycosylation (PD narrow 2) MATCH (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND reactant_sv.value IS NULL AND product_sv.value = "G" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant_subunit, product_subunit, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein glycosylation (PD narrow 4) MATCH (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeMultimerSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeMultimerSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND reactant_sv.value IS NULL AND product_sv.value = "G" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant_subunit, product_subunit, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein glycosylation (PD narrow 3) MATCH (process)-[:CONSUMES]->(reactant:MacromoleculeMultimer), (process)-[:PRODUCES]->(product:MacromoleculeMultimer), (reactant)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant.label = product.label AND reactant_sv.value IS NULL AND product_sv.value = "G" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant, product, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein hydroxylation (PD narrow 2) MATCH (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND reactant_sv.value IS NULL AND product_sv.value = "OH" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant_subunit, product_subunit, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein hydroxylation (PD narrow 1) MATCH (process)-[:CONSUMES]->(reactant:Macromolecule), (process)-[:PRODUCES]->(product:Macromolecule), (reactant)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant.label = product.label AND reactant_sv.value IS NULL AND product_sv.value = "OH" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant, product, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein hydroxylation (PD narrow 4) MATCH (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeMultimerSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeMultimerSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND reactant_sv.value IS NULL AND product_sv.value = "OH" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant_subunit, product_subunit, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein hydroxylation (PD narrow 3) MATCH (process)-[:CONSUMES]->(reactant:MacromoleculeMultimer), (process)-[:PRODUCES]->(product:MacromoleculeMultimer), (reactant)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant.label = product.label AND reactant_sv.value IS NULL AND product_sv.value = "OH" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant, product, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein methylation (PD narrow 2) MATCH (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND reactant_sv.value IS NULL AND product_sv.value = "Me" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant_subunit, product_subunit, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein methylation (PD narrow 1) MATCH (process)-[:CONSUMES]->(reactant:Macromolecule), (process)-[:PRODUCES]->(product:Macromolecule), (reactant)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant.label = product.label AND reactant_sv.value IS NULL AND product_sv.value = "Me" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant, product, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein methylation (PD narrow 4) MATCH (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeMultimerSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeMultimerSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND reactant_sv.value IS NULL AND product_sv.value = "Me" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant_subunit, product_subunit, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein methylation (PD narrow 3) MATCH (process)-[:CONSUMES]->(reactant:MacromoleculeMultimer), (process)-[:PRODUCES]->(product:MacromoleculeMultimer), (reactant)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant.label = product.label AND reactant_sv.value IS NULL AND product_sv.value = "Me" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant, product, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein myristoylation (PD narrow 1) MATCH (process)-[:CONSUMES]->(reactant:Macromolecule), (process)-[:PRODUCES]->(product:Macromolecule), (reactant)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant.label = product.label AND reactant_sv.value IS NULL AND product_sv.value = "My" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant, product, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein myristoylation (PD narrow 2) MATCH (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND reactant_sv.value IS NULL AND product_sv.value = "My" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant_subunit, product_subunit, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein myristoylation (PD narrow 4) MATCH (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeMultimerSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeMultimerSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND reactant_sv.value IS NULL AND product_sv.value = "My" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant_subunit, product_subunit, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein myristoylation (PD narrow 3) MATCH (process)-[:CONSUMES]->(reactant:MacromoleculeMultimer), (process)-[:PRODUCES]->(product:MacromoleculeMultimer), (reactant)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant.label = product.label AND reactant_sv.value IS NULL AND product_sv.value = "My" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant, product, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein palmitoylation (PD narrow 1) MATCH (process)-[:CONSUMES]->(reactant:Macromolecule), (process)-[:PRODUCES]->(product:Macromolecule), (reactant)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant.label = product.label AND reactant_sv.value IS NULL AND product_sv.value = "Pa" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant, product, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein palmitoylation (PD narrow 2) MATCH (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND reactant_sv.value IS NULL AND product_sv.value = "Pa" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant_subunit, product_subunit, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein palmitoylation (PD narrow 4) MATCH (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeMultimerSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeMultimerSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND reactant_sv.value IS NULL AND product_sv.value = "Pa" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant_subunit, product_subunit, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein palmitoylation (PD narrow 3) MATCH (process)-[:CONSUMES]->(reactant:MacromoleculeMultimer), (process)-[:PRODUCES]->(product:MacromoleculeMultimer), (reactant)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant.label = product.label AND reactant_sv.value IS NULL AND product_sv.value = "Pa" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant, product, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein phosphorylation (PD narrow 1) MATCH (process)-[:CONSUMES]->(reactant:Macromolecule), (process)-[:PRODUCES]->(product:Macromolecule), (reactant)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant.label = product.label AND reactant_sv.value IS NULL AND product_sv.value = "P" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant, product, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein phosphorylation (PD narrow 2) MATCH (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND reactant_sv.value IS NULL AND product_sv.value = "P" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant_subunit, product_subunit, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein phosphorylation (PD narrow 4) MATCH (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeMultimerSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeMultimerSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND reactant_sv.value IS NULL AND product_sv.value = "P" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant_subunit, product_subunit, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein phosphorylation (PD narrow 3) MATCH (process)-[:CONSUMES]->(reactant:MacromoleculeMultimer), (process)-[:PRODUCES]->(product:MacromoleculeMultimer), (reactant)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant.label = product.label AND reactant_sv.value IS NULL AND product_sv.value = "P" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant, product, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein protonation (PD narrow 2) MATCH (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND reactant_sv.value IS NULL AND product_sv.value = "H" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant_subunit, product_subunit, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein protonation (PD narrow 1) MATCH (process)-[:CONSUMES]->(reactant:Macromolecule), (process)-[:PRODUCES]->(product:Macromolecule), (reactant)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant.label = product.label AND reactant_sv.value IS NULL AND product_sv.value = "H" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant, product, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein protonation (PD narrow 4) MATCH (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeMultimerSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeMultimerSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND reactant_sv.value IS NULL AND product_sv.value = "H" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant_subunit, product_subunit, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein protonation (PD narrow 3) MATCH (process)-[:CONSUMES]->(reactant:MacromoleculeMultimer), (process)-[:PRODUCES]->(product:MacromoleculeMultimer), (reactant)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant.label = product.label AND reactant_sv.value IS NULL AND product_sv.value = "H" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant, product, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein sulfation (PD narrow 1) MATCH (process)-[:CONSUMES]->(reactant:Macromolecule), (process)-[:PRODUCES]->(product:Macromolecule), (reactant)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant.label = product.label AND reactant_sv.value IS NULL AND product_sv.value = "S" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant, product, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein sulfation (PD narrow 2) MATCH (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND reactant_sv.value IS NULL AND product_sv.value = "S" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant_subunit, product_subunit, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein sulfation (PD narrow 4) MATCH (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeMultimerSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeMultimerSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND reactant_sv.value IS NULL AND product_sv.value = "S" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant_subunit, product_subunit, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein sulfation (PD narrow 3) MATCH (process)-[:CONSUMES]->(reactant:MacromoleculeMultimer), (process)-[:PRODUCES]->(product:MacromoleculeMultimer), (reactant)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant.label = product.label AND reactant_sv.value IS NULL AND product_sv.value = "S" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant, product, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein ubiquitination (PD narrow 1) MATCH (process)-[:CONSUMES]->(reactant:Macromolecule), (process)-[:PRODUCES]->(product:Macromolecule), (reactant)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant.label = product.label AND reactant_sv.value IS NULL AND product_sv.value = "Ub" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant, product, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein ubiquitination (PD narrow 2) MATCH (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND reactant_sv.value IS NULL AND product_sv.value = "Ub" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant_subunit, product_subunit, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein ubiquitination (PD narrow 4) MATCH (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeMultimerSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeMultimerSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND reactant_sv.value IS NULL AND product_sv.value = "Ub" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant_subunit, product_subunit, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein ubiquitination (PD narrow 3) MATCH (process)-[:CONSUMES]->(reactant:MacromoleculeMultimer), (process)-[:PRODUCES]->(product:MacromoleculeMultimer), (reactant)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant.label = product.label AND reactant_sv.value IS NULL AND product_sv.value = "Ub" AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant, product, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // channel closing (PD main) MATCH (process:StoichiometricProcess)-[:CONSUMES]->(reactant:Macromolecule), (process)-[:PRODUCES]->(product:Macromolecule), (reactant)-[:HAS_STATE_VARIABLE]->(reactant_sv), (product)-[:HAS_STATE_VARIABLE]->(product_sv) WHERE reactant.label = product.label AND reactant_sv.variable IS NULL AND product_sv.variable IS NULL AND reactant_sv.order = product_sv.order AND reactant_sv.value = "open" AND product_sv.value = "closed" OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant, product, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") RETURN DISTINCT process; // channel opening (PD main) MATCH (process:StoichiometricProcess)-[:CONSUMES]->(reactant:Macromolecule), (process)-[:PRODUCES]->(product:Macromolecule), (reactant)-[:HAS_STATE_VARIABLE]->(reactant_sv), (product)-[:HAS_STATE_VARIABLE]->(product_sv) WHERE reactant.label = product.label AND reactant_sv.variable IS NULL AND product_sv.variable IS NULL AND reactant_sv.order = product_sv.order AND reactant_sv.value = "closed" AND product_sv.value = "open" OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant, product, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") RETURN DISTINCT process; // irreversible metabolic reaction (PD main) MATCH (process)-[:CONSUMES]->(reactant), (process)-[:PRODUCES]->(product) WITH process, COLLECT(reactant) as reactants, COLLECT(product) as products WHERE ALL(reactant IN reactants WHERE reactant:SimpleChemical) AND ALL(product IN products WHERE product:SimpleChemical) RETURN DISTINCT process; // reversible metabolic reaction (PD main) MATCH (process)-[:PRODUCES]->(product) OPTIONAL MATCH (process)-[:CONSUMES]->(reactant) WITH process, reactant, COLLECT(product) as products WHERE reactant IS NULL AND ALL(product IN products WHERE product:SimpleChemical) RETURN DISTINCT process; // reversible channel opening/closing (PD main) MATCH (process)-[:PRODUCES]->(reactant:Macromolecule), (process)-[:PRODUCES]->(product:Macromolecule), (reactant)-[:HAS_STATE_VARIABLE]->(reactant_sv), (product)-[:HAS_STATE_VARIABLE]->(product_sv) WHERE reactant.label = product.label AND reactant_sv.variable IS NULL AND product_sv.variable IS NULL AND reactant_sv.order = product_sv.order AND reactant_sv.value = "closed" AND product_sv.value = "open" OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant, product, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") RETURN DISTINCT process; // omitted irreversible process (PD main) MATCH (process:OmittedProcess)-[:CONSUMES]->(), (process)-[:PRODUCES]->() RETURN DISTINCT process; // omitted reversible process (PD main) MATCH (process:OmittedProcess)-[:PRODUCES]->() OPTIONAL MATCH (process)-[:CONSUMES]->(reactant) WITH process, reactant WHERE reactant IS NULL RETURN DISTINCT process; // protein deprotonation (PD narrow 1) MATCH (process)-[:CONSUMES]->(reactant:Macromolecule), (process)-[:PRODUCES]->(product:Macromolecule), (reactant)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant.label = product.label AND reactant_sv.value = "H" AND product_sv.value IS NULL AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant, product, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein deprotonation (PD narrow 2) MATCH (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND reactant_sv.value = "H" AND product_sv.value IS NULL AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant_subunit, product_subunit, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein deprotonation (PD narrow 4) MATCH (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeMultimerSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeMultimerSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND reactant_sv.value = "H" AND product_sv.value IS NULL AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant_subunit, product_subunit, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // protein deprotonation (PD narrow 3) MATCH (process)-[:CONSUMES]->(reactant:MacromoleculeMultimer), (process)-[:PRODUCES]->(product:MacromoleculeMultimer), (reactant)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant.label = product.label AND reactant_sv.value = "H" AND product_sv.value IS NULL AND (product_sv.variable IS NULL AND reactant_sv.variable IS NULL AND product_sv.order = reactant_sv.order OR product_sv.variable = reactant_sv.variable) OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH reactant, product, process, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT process; // catalytic activity, deactivating a protein (PD broad 1) MATCH (catalyzer)-[catalysis:CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_STATE_VARIABLE]->(reactant_sv), (product)-[:HAS_STATE_VARIABLE]->(product_sv) WHERE (reactant.label IS NULL AND product.label IS NULL OR reactant.label = product.label) AND (reactant_sv.variable IS NULL AND product_sv.variable IS NULL AND reactant_sv.order = product_sv.order AND reactant_sv.value = "active" AND product_sv.value = "inactive") RETURN DISTINCT catalyzer, catalysis, process; // catalytic activity, deactivating a protein (PD narrow 1) MATCH (catalyzer)-[catalysis:CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant:Macromolecule), (process)-[:PRODUCES]->(product:Macromolecule), (reactant)-[:HAS_STATE_VARIABLE]->(reactant_sv), (product)-[:HAS_STATE_VARIABLE]->(product_sv) WHERE reactant.label = product.label AND (reactant_sv.variable IS NULL AND product_sv.variable IS NULL AND reactant_sv.order = product_sv.order AND reactant_sv.value = "active" AND product_sv.value = "inactive") OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH process, catalyzer, catalysis, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") RETURN DISTINCT catalyzer, catalysis, process; // catalytic activity, deactivating a protein (PD narrow 2) MATCH (catalyzer)-[catalysis:CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND (reactant_sv.variable IS NULL AND product_sv.variable IS NULL AND reactant_sv.order = product_sv.order AND reactant_sv.value = "active" AND product_sv.value = "inactive") OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH process, catalyzer, catalysis, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT catalyzer, catalysis, process; // catalytic activity, deactivating a protein (PD narrow 4) MATCH (catalyzer)-[catalysis:CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant:Complex), (process)-[:PRODUCES]->(product:Complex), (reactant)-[:HAS_SUBUNIT]->(reactant_subunit:MacromoleculeMultimerSubunit), (product)-[:HAS_SUBUNIT]->(product_subunit:MacromoleculeMultimerSubunit), (reactant_subunit)-[:HAS_STATE_VARIABLE]-(reactant_sv), (product_subunit)-[:HAS_STATE_VARIABLE]-(product_sv) WHERE reactant_subunit.label = product_subunit.label AND (reactant_sv.variable IS NULL AND product_sv.variable IS NULL AND reactant_sv.order = product_sv.order AND reactant_sv.value = "active" AND product_sv.value = "inactive") OPTIONAL MATCH (reactant_subunit)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product_subunit)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH process, catalyzer, catalysis, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(product_ui IN product_uis WHERE product_ui.value <> "prot") RETURN DISTINCT catalyzer, catalysis, process; // catalytic activity, deactivating a protein (PD narrow 3) MATCH (catalyzer)-[catalysis:CATALYZES]->(process:StoichiometricProcess), (process)-[:CONSUMES]->(reactant:MacromoleculeMultimer), (process)-[:PRODUCES]->(product:MacromoleculeMultimer), (reactant)-[:HAS_STATE_VARIABLE]->(reactant_sv), (product)-[:HAS_STATE_VARIABLE]->(product_sv) WHERE reactant.label = product.label AND (reactant_sv.variable IS NULL AND product_sv.variable IS NULL AND reactant_sv.order = product_sv.order AND reactant_sv.value = "active" AND product_sv.value = "inactive") OPTIONAL MATCH (reactant)-[:HAS_UNIT_OF_INFORMATION]-(reactant_ui) WHERE reactant_ui.prefix = "mt" OPTIONAL MATCH (product)-[:HAS_UNIT_OF_INFORMATION]-(product_ui) WHERE product_ui.prefix = "mt" WITH process, catalyzer, catalysis, COLLECT(reactant_ui) as reactant_uis, COLLECT(product_ui) as product_uis WHERE NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") AND NONE(reactant_ui IN reactant_uis WHERE reactant_ui.value <> "prot") RETURN DISTINCT catalyzer, catalysis, process;