@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix rdf4j: <http://rdf4j.org/schema/rdf4j#> .
@prefix sesame: <http://www.openrdf.org/schema/sesame#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix fn: <http://www.w3.org/2005/xpath-functions#> .

<http://purl.uniprot.org/unirules/MF_01667#construct> a <http://www.w3.org/ns/shacl#SPARQLRule>,
    <http://spinrdf.org/sp#Construct>;
  <https://hamap.expasy.org/rdf/vocab#addsTriple> <http://purl.uniprot.org/unirules/MF_01667#construct-template-8>,
    <http://purl.uniprot.org/unirules/MF_01667#construct-template-41>, <http://purl.uniprot.org/unirules/MF_01667#construct-template-0>,
    <http://purl.uniprot.org/unirules/MF_01667#construct-template-1>, <http://purl.uniprot.org/unirules/MF_01667#construct-template-2>,
    <http://purl.uniprot.org/unirules/MF_01667#construct-template-32>, <http://purl.uniprot.org/unirules/MF_01667#construct-template-33>,
    <http://purl.uniprot.org/unirules/MF_01667#construct-template-16>, <http://purl.uniprot.org/unirules/MF_01667#construct-template-28>,
    <http://purl.uniprot.org/unirules/MF_01667#construct-template-22>, <http://purl.uniprot.org/unirules/MF_01667#construct-template-17>,
    <http://purl.uniprot.org/unirules/MF_01667#construct-template-18>, <http://purl.uniprot.org/unirules/MF_01667#construct-template-11>,
    <http://purl.uniprot.org/unirules/MF_01667#construct-template-21>, <http://purl.uniprot.org/unirules/MF_01667#construct-template-19>,
    <http://purl.uniprot.org/unirules/MF_01667#construct-template-31>, <http://purl.uniprot.org/unirules/MF_01667#construct-template-14>,
    <http://purl.uniprot.org/unirules/MF_01667#construct-template-38>, <http://purl.uniprot.org/unirules/MF_01667#construct-template-29>,
    <http://purl.uniprot.org/unirules/MF_01667#construct-template-40>, <http://purl.uniprot.org/unirules/MF_01667#construct-template-15>,
    <http://purl.uniprot.org/unirules/MF_01667#construct-template-26>, <http://purl.uniprot.org/unirules/MF_01667#construct-template-39>,
    <http://purl.uniprot.org/unirules/MF_01667#construct-template-13>, <http://purl.uniprot.org/unirules/MF_01667#construct-template-7>,
    <http://purl.uniprot.org/unirules/MF_01667#construct-template-23>, <http://purl.uniprot.org/unirules/MF_01667#construct-template-37>,
    <http://purl.uniprot.org/unirules/MF_01667#construct-template-24>, <http://purl.uniprot.org/unirules/MF_01667#construct-template-3>,
    <http://purl.uniprot.org/unirules/MF_01667#construct-template-12>, <http://purl.uniprot.org/unirules/MF_01667#construct-template-4>,
    <http://purl.uniprot.org/unirules/MF_01667#construct-template-36>, <http://purl.uniprot.org/unirules/MF_01667#construct-template-35>,
    <http://purl.uniprot.org/unirules/MF_01667#construct-template-59>, <http://purl.uniprot.org/unirules/MF_01667#construct-template-10>,
    <http://purl.uniprot.org/unirules/MF_01667#construct-template-34>, <http://purl.uniprot.org/unirules/MF_01667#construct-template-6>,
    <http://purl.uniprot.org/unirules/MF_01667#construct-template-58>, <http://purl.uniprot.org/unirules/MF_01667#construct-template-57>,
    <http://purl.uniprot.org/unirules/MF_01667#construct-template-56>, <http://purl.uniprot.org/unirules/MF_01667#construct-template-55>,
    <http://purl.uniprot.org/unirules/MF_01667#construct-template-79>, <http://purl.uniprot.org/unirules/MF_01667#construct-template-54>,
    <http://purl.uniprot.org/unirules/MF_01667#construct-template-78>, <http://purl.uniprot.org/unirules/MF_01667#construct-template-30>,
    <http://purl.uniprot.org/unirules/MF_01667#construct-template-77>, <http://purl.uniprot.org/unirules/MF_01667#construct-template-53>,
    <http://purl.uniprot.org/unirules/MF_01667#construct-template-5>, <http://purl.uniprot.org/unirules/MF_01667#construct-template-76>,
    <http://purl.uniprot.org/unirules/MF_01667#construct-template-52>, <http://purl.uniprot.org/unirules/MF_01667#construct-template-101>,
    <http://purl.uniprot.org/unirules/MF_01667#construct-template-99>, <http://purl.uniprot.org/unirules/MF_01667#construct-template-25>,
    <http://purl.uniprot.org/unirules/MF_01667#construct-template-51>, <http://purl.uniprot.org/unirules/MF_01667#construct-template-75>,
    <http://purl.uniprot.org/unirules/MF_01667#construct-template-9>, <http://purl.uniprot.org/unirules/MF_01667#construct-template-100>,
    <http://purl.uniprot.org/unirules/MF_01667#construct-template-98>, <http://purl.uniprot.org/unirules/MF_01667#construct-template-50>,
    <http://purl.uniprot.org/unirules/MF_01667#construct-template-74>, <http://purl.uniprot.org/unirules/MF_01667#construct-template-73>,
    <http://purl.uniprot.org/unirules/MF_01667#construct-template-97>, <http://purl.uniprot.org/unirules/MF_01667#construct-template-27>,
    <http://purl.uniprot.org/unirules/MF_01667#construct-template-72>, <http://purl.uniprot.org/unirules/MF_01667#construct-template-96>,
    <http://purl.uniprot.org/unirules/MF_01667#construct-template-95>, <http://purl.uniprot.org/unirules/MF_01667#construct-template-71>,
    <http://purl.uniprot.org/unirules/MF_01667#construct-template-94>, <http://purl.uniprot.org/unirules/MF_01667#construct-template-70>,
    <http://purl.uniprot.org/unirules/MF_01667#construct-template-93>, <http://purl.uniprot.org/unirules/MF_01667#construct-template-92>,
    <http://purl.uniprot.org/unirules/MF_01667#construct-template-91>, <http://purl.uniprot.org/unirules/MF_01667#construct-template-90>,
    <http://purl.uniprot.org/unirules/MF_01667#construct-template-20>, <http://purl.uniprot.org/unirules/MF_01667#construct-template-49>,
    <http://purl.uniprot.org/unirules/MF_01667#construct-template-48>, <http://purl.uniprot.org/unirules/MF_01667#construct-template-47>,
    <http://purl.uniprot.org/unirules/MF_01667#construct-template-46>, <http://purl.uniprot.org/unirules/MF_01667#construct-template-103>,
    <http://purl.uniprot.org/unirules/MF_01667#construct-template-45>, <http://purl.uniprot.org/unirules/MF_01667#construct-template-69>,
    <http://purl.uniprot.org/unirules/MF_01667#construct-template-102>, <http://purl.uniprot.org/unirules/MF_01667#construct-template-44>,
    <http://purl.uniprot.org/unirules/MF_01667#construct-template-68>, <http://purl.uniprot.org/unirules/MF_01667#construct-template-105>,
    <http://purl.uniprot.org/unirules/MF_01667#construct-template-43>, <http://purl.uniprot.org/unirules/MF_01667#construct-template-67>,
    <http://purl.uniprot.org/unirules/MF_01667#construct-template-104>, <http://purl.uniprot.org/unirules/MF_01667#construct-template-66>,
    <http://purl.uniprot.org/unirules/MF_01667#construct-template-42>, <http://purl.uniprot.org/unirules/MF_01667#construct-template-65>,
    <http://purl.uniprot.org/unirules/MF_01667#construct-template-89>, <http://purl.uniprot.org/unirules/MF_01667#construct-template-88>,
    <http://purl.uniprot.org/unirules/MF_01667#construct-template-64>, <http://purl.uniprot.org/unirules/MF_01667#construct-template-87>,
    <http://purl.uniprot.org/unirules/MF_01667#construct-template-63>, <http://purl.uniprot.org/unirules/MF_01667#construct-template-62>,
    <http://purl.uniprot.org/unirules/MF_01667#construct-template-86>, <http://purl.uniprot.org/unirules/MF_01667#construct-template-61>,
    <http://purl.uniprot.org/unirules/MF_01667#construct-template-85>, <http://purl.uniprot.org/unirules/MF_01667#construct-template-84>,
    <http://purl.uniprot.org/unirules/MF_01667#construct-template-60>, <http://purl.uniprot.org/unirules/MF_01667#construct-template-83>,
    <http://purl.uniprot.org/unirules/MF_01667#construct-template-82>, <http://purl.uniprot.org/unirules/MF_01667#construct-template-81>,
    <http://purl.uniprot.org/unirules/MF_01667#construct-template-80>;
  <http://www.w3.org/ns/shacl#prefixes> <http://purl.uniprot.org/unirules/>;
  <http://spinrdf.org/sp#where> <http://purl.uniprot.org/unirules/MF_01667#construct-where-list-0>;
  <http://spinrdf.org/sp#templates> <http://purl.uniprot.org/unirules/MF_01667#construct-template-list-0>;
  <http://www.w3.org/ns/shacl#construct> """CONSTRUCT {
  _:608903 up:source unirule:MF_01667 .
  _:608904 up:source unirule:MF_01667 .
  _:608905 up:source unirule:MF_01667 .
  _:608906 up:source unirule:MF_01667 .
  _:608907 up:source unirule:MF_01667 .
  _:608908 up:source unirule:MF_01667 .
  _:608909 up:source unirule:MF_01667 .
  _:608910 up:source unirule:MF_01667 .
  _:608911 up:source unirule:MF_01667 .
  _:608912 up:source unirule:MF_01667 .
  _:608913 up:source unirule:MF_01667 .
  _:608914 up:source unirule:MF_01667 .
  _:608915 up:source unirule:MF_01667 .
  _:608916 up:source unirule:MF_01667 .
  _:608917 up:source unirule:MF_01667 .
  _:608918 up:source unirule:MF_01667 .
  _:608919 up:source unirule:MF_01667 .
  _:608920 up:source unirule:MF_01667 .
  _:608921 up:source unirule:MF_01667 .
  ?this up:annotation ?annotation2 ,
      ?annotation3 ,
      ?annotation5 ,
      ?annotation7 ,
      ?annotation9 ,
      ?annotation10 ,
      ?annotation12 ;
    up:classifiedWith GO:0005886 ,
      GO:0016618 ,
      GO:0030267 ,
      keyword:520 ,
      keyword:521 ,
      keyword:560 ,
      keyword:963 ;
    up:recommendedName ?name0 .
  ?name0 up:ecName '1.1.1.79' ,
      '1.1.1.81' ;
    up:fullName 'Glyoxylate/hydroxypyruvate reductase B' ;
    rdf:type up:Structured_Name .
  ?gene1 skos:prefLabel 'ghrB' .
  ?annotation2 a up:Function_Annotation ;
    rdfs:comment 'Catalyzes the NADPH-dependent reduction of glyoxylate and hydroxypyruvate into glycolate and glycerate, respectively.' .
  ?annotation3 up:activity ?activity4 ;
    rdf:type up:Catalytic_Activity_Annotation .
  ?activity4 up:catalyticActivity <http://rdf.rhea-db.org/10992>;
    up:enzymeClass <http://purl.uniprot.org/enzyme/1.1.1.79>.
  ?annotation5 up:activity ?activity6 ;
    rdf:type up:Catalytic_Activity_Annotation .
  ?activity6 up:catalyticActivity <http://rdf.rhea-db.org/17905>;
    up:enzymeClass <http://purl.uniprot.org/enzyme/1.1.1.81>.
  ?annotation7 up:activity ?activity8 ;
    rdf:type up:Catalytic_Activity_Annotation .
  ?activity8 up:catalyticActivity <http://rdf.rhea-db.org/18657>;
    up:enzymeClass <http://purl.uniprot.org/enzyme/1.1.1.81>.
  ?annotation9 a up:Subunit_Annotation ;
    rdfs:comment 'Homodimer.' .
  ?annotation10 a up:Subcellular_Location_Annotation .
  ?annotation10li11 up:cellularComponent <http://purl.uniprot.org/locations/null>.
  ?annotation12 a up:Similarity_Annotation ;
    rdfs:comment 'Belongs to the D-isomer specific 2-hydroxyacid dehydrogenase family. GhrB subfamily.' .
  ?pfs13 up:annotation ?annotation14 .
  ?annotation14 faldo:begin ?pfsb15 ;
    faldo:end ?pfse16 ;
    rdf:type up:Active_Site_Annotation .
  ?pfsb15 faldo:position ?thisPositionOn17 ;
    rdf:type faldo:ExactPosition .
  ?pfse16 faldo:position ?thisPositionOn18 ;
    rdf:type faldo:ExactPosition .
  ?pfs19 up:annotation ?annotation20 .
  ?annotation20 faldo:begin ?pfsb21 ;
    faldo:end ?pfse22 ;
    rdf:type up:Active_Site_Annotation .
  ?pfsb21 faldo:position ?thisPositionOn23 ;
    rdf:type faldo:ExactPosition .
  ?pfse22 faldo:position ?thisPositionOn24 ;
    rdf:type faldo:ExactPosition .
  ?pfs25 up:annotation ?annotation26 .
  ?annotation26 faldo:begin ?pfsb27 ;
    faldo:end ?pfse28 ;
    rdf:type up:Active_Site_Annotation ;
    rdfs:comment 'Proton donor' .
  ?pfsb27 faldo:position ?thisPositionOn29 ;
    rdf:type faldo:ExactPosition .
  ?pfse28 faldo:position ?thisPositionOn30 ;
    rdf:type faldo:ExactPosition .
  _:608922 a rdf:Statement ;
    up:attribution _:608903 ;
    rdf:subject ?this ;
    rdf:predicate up:recommendedName ;
    rdf:object ?name0 .
  _:608923 a rdf:Statement ;
    up:attribution _:608904 ;
    rdf:subject ?gene1 ;
    rdf:predicate up:encodedBy ;
    rdf:object ?gene1 .
  _:608924 a rdf:Statement ;
    up:attribution _:608905 ;
    rdf:subject ?this ;
    rdf:predicate up:annotation ;
    rdf:object ?annotation2 .
  _:608925 a rdf:Statement ;
    up:attribution _:608906 ;
    rdf:subject ?this ;
    rdf:predicate up:annotation ;
    rdf:object ?annotation3 .
  _:608926 a rdf:Statement ;
    up:attribution _:608907 ;
    rdf:subject ?this ;
    rdf:predicate up:annotation ;
    rdf:object ?annotation5 .
  _:608927 a rdf:Statement ;
    up:attribution _:608908 ;
    rdf:subject ?this ;
    rdf:predicate up:annotation ;
    rdf:object ?annotation7 .
  _:608928 a rdf:Statement ;
    up:attribution _:608909 ;
    rdf:subject ?this ;
    rdf:predicate up:annotation ;
    rdf:object ?annotation9 .
  _:608929 a rdf:Statement ;
    up:attribution _:608910 ;
    rdf:subject ?this ;
    rdf:predicate up:annotation ;
    rdf:object ?annotation10 .
  _:608930 a rdf:Statement ;
    up:attribution _:608911 ;
    rdf:subject ?this ;
    rdf:predicate up:annotation ;
    rdf:object ?annotation12 .
  _:608931 a rdf:Statement ;
    up:attribution _:608912 ;
    rdf:subject ?this ;
    rdf:predicate up:classifiedWith ;
    rdf:object keyword:963 .
  _:608932 a rdf:Statement ;
    up:attribution _:608913 ;
    rdf:subject ?this ;
    rdf:predicate up:classifiedWith ;
    rdf:object keyword:520 .
  _:608933 a rdf:Statement ;
    up:attribution _:608914 ;
    rdf:subject ?this ;
    rdf:predicate up:classifiedWith ;
    rdf:object keyword:521 .
  _:608934 a rdf:Statement ;
    up:attribution _:608915 ;
    rdf:subject ?this ;
    rdf:predicate up:classifiedWith ;
    rdf:object keyword:560 .
  _:608935 a rdf:Statement ;
    up:attribution _:608916 ;
    rdf:subject ?this ;
    rdf:predicate up:classifiedWith ;
    rdf:object GO:0016618 .
  _:608936 a rdf:Statement ;
    up:attribution _:608917 ;
    rdf:subject ?this ;
    rdf:predicate up:classifiedWith ;
    rdf:object GO:0030267 .
  _:608937 a rdf:Statement ;
    up:attribution _:608918 ;
    rdf:subject ?this ;
    rdf:predicate up:classifiedWith ;
    rdf:object GO:0005886 .
  _:608938 a rdf:Statement ;
    up:source unirule:MF_01667 ;
    rdf:subject ?pfs13 ;
    rdf:predicate up:annotation ;
    rdf:object ?annotation14 .
  _:608939 a rdf:Statement ;
    up:attribution _:608919 ;
    rdf:subject ?pfs13 ;
    rdf:predicate up:annotation ;
    rdf:object ?annotation14 .
  _:608940 a rdf:Statement ;
    up:source unirule:MF_01667 ;
    rdf:subject ?pfs19 ;
    rdf:predicate up:annotation ;
    rdf:object ?annotation20 .
  _:608941 a rdf:Statement ;
    up:attribution _:608920 ;
    rdf:subject ?pfs19 ;
    rdf:predicate up:annotation ;
    rdf:object ?annotation20 .
  _:608942 a rdf:Statement ;
    up:source unirule:MF_01667 ;
    rdf:subject ?pfs25 ;
    rdf:predicate up:annotation ;
    rdf:object ?annotation26 .
  _:608943 a rdf:Statement ;
    up:attribution _:608921 ;
    rdf:subject ?pfs25 ;
    rdf:predicate up:annotation ;
    rdf:object ?annotation26 .
}
WHERE {
  #baseURI: http://purl.uniprot.org/unirule/MF_01667
  #Rule MF_01667 Created by:? on:2008-08-05 Modified by:Edouard de Castro on:2024-09-03
  ?this up:organism ?thisOrganism ;
    rdfs:seeAlso signature:MF_01667 .
  ?thisOrganism rdfs:subClassOf+ taxon:91347 .
  BIND(URI(CONCAT(STR(?this), '#MF_01667a0')) AS ?name0) .
  BIND(URI(CONCAT(STR(?this), '#MF_01667a2')) AS ?annotation2) .
  BIND(URI(CONCAT(STR(?this), '#MF_01667a3')) AS ?annotation3) .
  BIND(URI(CONCAT(STR(?this), '#MF_01667a5')) AS ?annotation5) .
  BIND(URI(CONCAT(STR(?this), '#MF_01667a7')) AS ?annotation7) .
  BIND(URI(CONCAT(STR(?this), '#MF_01667a9')) AS ?annotation9) .
  BIND(URI(CONCAT(STR(?this), '#MF_01667a10')) AS ?annotation10) .
  BIND(URI(CONCAT(STR(?this), '#MF_01667a12')) AS ?annotation12) .
  OPTIONAL {
    ?this up:sequence ?thisSequence .
    ?thisSequence rdf:value ?thisSequenceValue .
    ?templateMotifMatch35 faldo:location ?templateMotifSequenceMatchRegionP3766636 ;
      edam:is_output_of ?templateMotifSequenceProfileAlignmentOperationP3766638 ;
      rdf:type edam:data_0869 ;
      rdf:value ?templateMotifCigarP37666MF_0166731 .
    ?templateMotifSequenceMatchRegionP3766636 faldo:begin ?templateMotifSequenceMatchBeginP3766637 .
    ?templateMotifSequenceMatchBeginP3766637 faldo:position ?templateMotifSequenceMatchBeginPositionP3766632 ;
      faldo:reference isoform:P37666-1 .
    ?templateMotifSequenceProfileAlignmentOperationP3766638 edam:has_input signature:MF_01667 ;
      rdf:type edam:operation_0300 .
    ?targetMotifMatch39 faldo:location ?targetMotifMatchRegionMatch40 ;
      edam:is_output_of ?targetMotifSequenceAlignmentOperationMF_0166742 ;
      rdf:type edam:data_0869 ;
      rdf:value ?targetMotifMatchCigarP37666MF_0166733 .
    ?targetMotifMatchRegionMatch40 faldo:begin ?targetMotifMatchRegionMatchBeginMF_0166741 .
    ?targetMotifMatchRegionMatchBeginMF_0166741 faldo:position ?targetMotifMatchRegionMatchBeginPositionMF_0166734 ;
      faldo:reference ?thisSequence .
    ?targetMotifSequenceAlignmentOperationMF_0166742 edam:has_input signature:MF_01667 ;
      rdf:type edam:operation_0300 .
    BIND(STRLEN(REPLACE(SUBSTR(?templateMotifCigarP37666MF_0166731, 1, (STRLEN(?templateMotifCigarP37666MF_0166731) - STRLEN(REPLACE(?templateMotifCigarP37666MF_0166731, CONCAT('^(?:-*[^-]){', STR(((237 - ?templateMotifSequenceMatchBeginPositionP3766632) + 1)), '}'), '')))), '[a-z]', '')) AS ?step143) .
    BIND((STRLEN(SUBSTR(?targetMotifMatchCigarP37666MF_0166733, 1, (STRLEN(?targetMotifMatchCigarP37666MF_0166733) - STRLEN(REPLACE(?targetMotifMatchCigarP37666MF_0166733, CONCAT('^(?:[a-z]*(?:[A-Z]|-)){', STR(?step143), '}'), ''))))) - STRLEN(REPLACE(SUBSTR(?targetMotifMatchCigarP37666MF_0166733, 1, (STRLEN(?targetMotifMatchCigarP37666MF_0166733) - STRLEN(REPLACE(?targetMotifMatchCigarP37666MF_0166733, CONCAT('^(?:[a-z]*(?:[A-Z]|-)){', STR(?step143), '}'), '')))), '[^-]', ''))) AS ?step244) .
    BIND(((?step244 + ?targetMotifMatchRegionMatchBeginPositionMF_0166734) - 1) AS ?thisPositionOn17) .
    BIND(?thisPositionOn17 AS ?thisPositionOn18) .
    BIND(?this AS ?pfs1t45) .
    BIND(URI(CONCAT(STR(?thisSequence), '#position', STR(?thisPositionOn17))) AS ?pfsb15) .
    BIND(URI(CONCAT(STR(?thisSequence), '#position', STR(?thisPositionOn18))) AS ?pfse16) .
    FILTER ((SUBSTR(?thisSequenceValue, ?thisPositionOn17, 1) = 'R')) .
    BIND(URI(CONCAT(STR(?this), '#MF_01667a14')) AS ?annotation14) .
    BIND(?this AS ?pfs13) .
  }
  OPTIONAL {
    ?this up:sequence ?thisSequence .
    ?thisSequence rdf:value ?thisSequenceValue .
    ?templateMotifMatch50 faldo:location ?templateMotifSequenceMatchRegionP3766651 ;
      edam:is_output_of ?templateMotifSequenceProfileAlignmentOperationP3766653 ;
      rdf:type edam:data_0869 ;
      rdf:value ?templateMotifCigarP37666MF_0166746 .
    ?templateMotifSequenceMatchRegionP3766651 faldo:begin ?templateMotifSequenceMatchBeginP3766652 .
    ?templateMotifSequenceMatchBeginP3766652 faldo:position ?templateMotifSequenceMatchBeginPositionP3766647 ;
      faldo:reference isoform:P37666-1 .
    ?templateMotifSequenceProfileAlignmentOperationP3766653 edam:has_input signature:MF_01667 ;
      rdf:type edam:operation_0300 .
    ?targetMotifMatch54 faldo:location ?targetMotifMatchRegionMatch55 ;
      edam:is_output_of ?targetMotifSequenceAlignmentOperationMF_0166757 ;
      rdf:type edam:data_0869 ;
      rdf:value ?targetMotifMatchCigarP37666MF_0166748 .
    ?targetMotifMatchRegionMatch55 faldo:begin ?targetMotifMatchRegionMatchBeginMF_0166756 .
    ?targetMotifMatchRegionMatchBeginMF_0166756 faldo:position ?targetMotifMatchRegionMatchBeginPositionMF_0166749 ;
      faldo:reference ?thisSequence .
    ?targetMotifSequenceAlignmentOperationMF_0166757 edam:has_input signature:MF_01667 ;
      rdf:type edam:operation_0300 .
    BIND(STRLEN(REPLACE(SUBSTR(?templateMotifCigarP37666MF_0166746, 1, (STRLEN(?templateMotifCigarP37666MF_0166746) - STRLEN(REPLACE(?templateMotifCigarP37666MF_0166746, CONCAT('^(?:-*[^-]){', STR(((266 - ?templateMotifSequenceMatchBeginPositionP3766647) + 1)), '}'), '')))), '[a-z]', '')) AS ?step158) .
    BIND((STRLEN(SUBSTR(?targetMotifMatchCigarP37666MF_0166748, 1, (STRLEN(?targetMotifMatchCigarP37666MF_0166748) - STRLEN(REPLACE(?targetMotifMatchCigarP37666MF_0166748, CONCAT('^(?:[a-z]*(?:[A-Z]|-)){', STR(?step158), '}'), ''))))) - STRLEN(REPLACE(SUBSTR(?targetMotifMatchCigarP37666MF_0166748, 1, (STRLEN(?targetMotifMatchCigarP37666MF_0166748) - STRLEN(REPLACE(?targetMotifMatchCigarP37666MF_0166748, CONCAT('^(?:[a-z]*(?:[A-Z]|-)){', STR(?step158), '}'), '')))), '[^-]', ''))) AS ?step259) .
    BIND(((?step259 + ?targetMotifMatchRegionMatchBeginPositionMF_0166749) - 1) AS ?thisPositionOn23) .
    BIND(?thisPositionOn23 AS ?thisPositionOn24) .
    BIND(?this AS ?pfs1t60) .
    BIND(URI(CONCAT(STR(?thisSequence), '#position', STR(?thisPositionOn23))) AS ?pfsb21) .
    BIND(URI(CONCAT(STR(?thisSequence), '#position', STR(?thisPositionOn24))) AS ?pfse22) .
    FILTER ((SUBSTR(?thisSequenceValue, ?thisPositionOn23, 1) = 'E')) .
    BIND(URI(CONCAT(STR(?this), '#MF_01667a20')) AS ?annotation20) .
    BIND(?this AS ?pfs19) .
  }
  OPTIONAL {
    ?this up:sequence ?thisSequence .
    ?thisSequence rdf:value ?thisSequenceValue .
    ?templateMotifMatch65 faldo:location ?templateMotifSequenceMatchRegionP3766666 ;
      edam:is_output_of ?templateMotifSequenceProfileAlignmentOperationP3766668 ;
      rdf:type edam:data_0869 ;
      rdf:value ?templateMotifCigarP37666MF_0166761 .
    ?templateMotifSequenceMatchRegionP3766666 faldo:begin ?templateMotifSequenceMatchBeginP3766667 .
    ?templateMotifSequenceMatchBeginP3766667 faldo:position ?templateMotifSequenceMatchBeginPositionP3766662 ;
      faldo:reference isoform:P37666-1 .
    ?templateMotifSequenceProfileAlignmentOperationP3766668 edam:has_input signature:MF_01667 ;
      rdf:type edam:operation_0300 .
    ?targetMotifMatch69 faldo:location ?targetMotifMatchRegionMatch70 ;
      edam:is_output_of ?targetMotifSequenceAlignmentOperationMF_0166772 ;
      rdf:type edam:data_0869 ;
      rdf:value ?targetMotifMatchCigarP37666MF_0166763 .
    ?targetMotifMatchRegionMatch70 faldo:begin ?targetMotifMatchRegionMatchBeginMF_0166771 .
    ?targetMotifMatchRegionMatchBeginMF_0166771 faldo:position ?targetMotifMatchRegionMatchBeginPositionMF_0166764 ;
      faldo:reference ?thisSequence .
    ?targetMotifSequenceAlignmentOperationMF_0166772 edam:has_input signature:MF_01667 ;
      rdf:type edam:operation_0300 .
    BIND(STRLEN(REPLACE(SUBSTR(?templateMotifCigarP37666MF_0166761, 1, (STRLEN(?templateMotifCigarP37666MF_0166761) - STRLEN(REPLACE(?templateMotifCigarP37666MF_0166761, CONCAT('^(?:-*[^-]){', STR(((285 - ?templateMotifSequenceMatchBeginPositionP3766662) + 1)), '}'), '')))), '[a-z]', '')) AS ?step173) .
    BIND((STRLEN(SUBSTR(?targetMotifMatchCigarP37666MF_0166763, 1, (STRLEN(?targetMotifMatchCigarP37666MF_0166763) - STRLEN(REPLACE(?targetMotifMatchCigarP37666MF_0166763, CONCAT('^(?:[a-z]*(?:[A-Z]|-)){', STR(?step173), '}'), ''))))) - STRLEN(REPLACE(SUBSTR(?targetMotifMatchCigarP37666MF_0166763, 1, (STRLEN(?targetMotifMatchCigarP37666MF_0166763) - STRLEN(REPLACE(?targetMotifMatchCigarP37666MF_0166763, CONCAT('^(?:[a-z]*(?:[A-Z]|-)){', STR(?step173), '}'), '')))), '[^-]', ''))) AS ?step274) .
    BIND(((?step274 + ?targetMotifMatchRegionMatchBeginPositionMF_0166764) - 1) AS ?thisPositionOn29) .
    BIND(?thisPositionOn29 AS ?thisPositionOn30) .
    BIND(?this AS ?pfs1t75) .
    BIND(URI(CONCAT(STR(?thisSequence), '#position', STR(?thisPositionOn29))) AS ?pfsb27) .
    BIND(URI(CONCAT(STR(?thisSequence), '#position', STR(?thisPositionOn30))) AS ?pfse28) .
    FILTER ((SUBSTR(?thisSequenceValue, ?thisPositionOn29, 1) = 'H')) .
    BIND(URI(CONCAT(STR(?this), '#MF_01667a26')) AS ?annotation26) .
    BIND(?this AS ?pfs25) .
  }
}
""" .

<http://purl.uniprot.org/unirules/MF_01667> <http://www.w3.org/ns/shacl#rule> <http://purl.uniprot.org/unirules/MF_01667#construct> .
