@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_04141#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_04141#construct-template-32>,
    <http://purl.uniprot.org/unirules/MF_04141#construct-template-33>, <http://purl.uniprot.org/unirules/MF_04141#construct-template-59>,
    <http://purl.uniprot.org/unirules/MF_04141#construct-template-36>, <http://purl.uniprot.org/unirules/MF_04141#construct-template-67>,
    <http://purl.uniprot.org/unirules/MF_04141#construct-template-68>, <http://purl.uniprot.org/unirules/MF_04141#construct-template-2>,
    <http://purl.uniprot.org/unirules/MF_04141#construct-template-60>, <http://purl.uniprot.org/unirules/MF_04141#construct-template-57>,
    <http://purl.uniprot.org/unirules/MF_04141#construct-template-19>, <http://purl.uniprot.org/unirules/MF_04141#construct-template-4>,
    <http://purl.uniprot.org/unirules/MF_04141#construct-template-22>, <http://purl.uniprot.org/unirules/MF_04141#construct-template-12>,
    <http://purl.uniprot.org/unirules/MF_04141#construct-template-21>, <http://purl.uniprot.org/unirules/MF_04141#construct-template-18>,
    <http://purl.uniprot.org/unirules/MF_04141#construct-template-11>, <http://purl.uniprot.org/unirules/MF_04141#construct-template-17>,
    <http://purl.uniprot.org/unirules/MF_04141#construct-template-50>, <http://purl.uniprot.org/unirules/MF_04141#construct-template-35>,
    <http://purl.uniprot.org/unirules/MF_04141#construct-template-51>, <http://purl.uniprot.org/unirules/MF_04141#construct-template-20>,
    <http://purl.uniprot.org/unirules/MF_04141#construct-template-42>, <http://purl.uniprot.org/unirules/MF_04141#construct-template-49>,
    <http://purl.uniprot.org/unirules/MF_04141#construct-template-37>, <http://purl.uniprot.org/unirules/MF_04141#construct-template-27>,
    <http://purl.uniprot.org/unirules/MF_04141#construct-template-46>, <http://purl.uniprot.org/unirules/MF_04141#construct-template-72>,
    <http://purl.uniprot.org/unirules/MF_04141#construct-template-61>, <http://purl.uniprot.org/unirules/MF_04141#construct-template-55>,
    <http://purl.uniprot.org/unirules/MF_04141#construct-template-24>, <http://purl.uniprot.org/unirules/MF_04141#construct-template-52>,
    <http://purl.uniprot.org/unirules/MF_04141#construct-template-34>, <http://purl.uniprot.org/unirules/MF_04141#construct-template-10>,
    <http://purl.uniprot.org/unirules/MF_04141#construct-template-58>, <http://purl.uniprot.org/unirules/MF_04141#construct-template-47>,
    <http://purl.uniprot.org/unirules/MF_04141#construct-template-45>, <http://purl.uniprot.org/unirules/MF_04141#construct-template-66>,
    <http://purl.uniprot.org/unirules/MF_04141#construct-template-56>, <http://purl.uniprot.org/unirules/MF_04141#construct-template-8>,
    <http://purl.uniprot.org/unirules/MF_04141#construct-template-23>, <http://purl.uniprot.org/unirules/MF_04141#construct-template-14>,
    <http://purl.uniprot.org/unirules/MF_04141#construct-template-16>, <http://purl.uniprot.org/unirules/MF_04141#construct-template-31>,
    <http://purl.uniprot.org/unirules/MF_04141#construct-template-39>, <http://purl.uniprot.org/unirules/MF_04141#construct-template-15>,
    <http://purl.uniprot.org/unirules/MF_04141#construct-template-6>, <http://purl.uniprot.org/unirules/MF_04141#construct-template-44>,
    <http://purl.uniprot.org/unirules/MF_04141#construct-template-29>, <http://purl.uniprot.org/unirules/MF_04141#construct-template-38>,
    <http://purl.uniprot.org/unirules/MF_04141#construct-template-13>, <http://purl.uniprot.org/unirules/MF_04141#construct-template-70>,
    <http://purl.uniprot.org/unirules/MF_04141#construct-template-53>, <http://purl.uniprot.org/unirules/MF_04141#construct-template-63>,
    <http://purl.uniprot.org/unirules/MF_04141#construct-template-28>, <http://purl.uniprot.org/unirules/MF_04141#construct-template-62>,
    <http://purl.uniprot.org/unirules/MF_04141#construct-template-5>, <http://purl.uniprot.org/unirules/MF_04141#construct-template-77>,
    <http://purl.uniprot.org/unirules/MF_04141#construct-template-26>, <http://purl.uniprot.org/unirules/MF_04141#construct-template-9>,
    <http://purl.uniprot.org/unirules/MF_04141#construct-template-64>, <http://purl.uniprot.org/unirules/MF_04141#construct-template-48>,
    <http://purl.uniprot.org/unirules/MF_04141#construct-template-54>, <http://purl.uniprot.org/unirules/MF_04141#construct-template-43>,
    <http://purl.uniprot.org/unirules/MF_04141#construct-template-3>, <http://purl.uniprot.org/unirules/MF_04141#construct-template-7>,
    <http://purl.uniprot.org/unirules/MF_04141#construct-template-0>, <http://purl.uniprot.org/unirules/MF_04141#construct-template-65>,
    <http://purl.uniprot.org/unirules/MF_04141#construct-template-41>, <http://purl.uniprot.org/unirules/MF_04141#construct-template-40>,
    <http://purl.uniprot.org/unirules/MF_04141#construct-template-75>, <http://purl.uniprot.org/unirules/MF_04141#construct-template-1>,
    <http://purl.uniprot.org/unirules/MF_04141#construct-template-25>, <http://purl.uniprot.org/unirules/MF_04141#construct-template-73>,
    <http://purl.uniprot.org/unirules/MF_04141#construct-template-69>, <http://purl.uniprot.org/unirules/MF_04141#construct-template-30>,
    <http://purl.uniprot.org/unirules/MF_04141#construct-template-71>, <http://purl.uniprot.org/unirules/MF_04141#construct-template-78>,
    <http://purl.uniprot.org/unirules/MF_04141#construct-template-74>, <http://purl.uniprot.org/unirules/MF_04141#construct-template-76>;
  <http://www.w3.org/ns/shacl#prefixes> <http://purl.uniprot.org/unirules/>;
  <http://spinrdf.org/sp#where> <http://purl.uniprot.org/unirules/MF_04141#construct-where-list-0>;
  <http://spinrdf.org/sp#templates> <http://purl.uniprot.org/unirules/MF_04141#construct-template-list-0>;
  <http://www.w3.org/ns/shacl#construct> """CONSTRUCT {
  _:969088 up:source unirule:MF_04141 .
  _:969089 up:source unirule:MF_04141 .
  _:969090 up:source unirule:MF_04141 .
  _:969091 up:source unirule:MF_04141 .
  _:969092 up:source unirule:MF_04141 .
  _:969093 up:source unirule:MF_04141 .
  _:969094 up:source unirule:MF_04141 .
  _:969095 up:source unirule:MF_04141 .
  _:969096 up:source unirule:MF_04141 .
  _:969097 up:source unirule:MF_04141 .
  _:969098 up:source unirule:MF_04141 .
  _:969099 up:source unirule:MF_04141 .
  _:969100 up:source unirule:MF_04141 .
  _:969101 up:source unirule:MF_04141 .
  _:969102 up:source unirule:MF_04141 .
  ?this up:alternativeName ?name1 ;
    up:annotation ?annotation3 ,
      ?annotation4 ,
      ?annotation6 ,
      ?annotation8 ;
    up:classifiedWith GO:0044423 ,
      GO:0106274 ,
      keyword:328 ,
      keyword:548 ,
      keyword:808 ,
      keyword:946 ;
    up:recommendedName ?name0 .
  ?name0 up:ecName '2.4.2.31' ;
    up:fullName 'NAD--protein ADP-ribosyltransferase modA' ;
    rdf:type up:Structured_Name .
  ?name1 up:fullName 'RNA polymerase ADP-ribosylase modA' ;
    rdf:type up:Structured_Name .
  ?gene2 skos:prefLabel 'modA' .
  ?annotation3 a up:Function_Annotation ;
    rdfs:comment 'ADP-ribosyltransferase that efficiently ADP-ribosylates both alpha subunits of host RNA polymerase RPOA. The ModA-induced ADP-ribosylation of RPOA alpha subunits inhibits transcription from viral early promoters.' .
  ?annotation4 up:activity ?activity5 ;
    rdf:type up:Catalytic_Activity_Annotation .
  ?activity5 up:catalyticActivity <http://rdf.rhea-db.org/19149>;
    up:enzymeClass <http://purl.uniprot.org/enzyme/2.4.2.31>.
  ?annotation6 a up:Subcellular_Location_Annotation ;
    rdfs:comment 'This protein is injected from the virion into the bacterial cell' .
  ?annotation6li7 up:cellularComponent <http://purl.uniprot.org/locations/null>.
  ?annotation8 a up:Similarity_Annotation ;
    rdfs:comment 'Belongs to the Tevenvirinae NAD--protein ADP-ribosyltransferase modA family.' .
  ?pfs9 up:annotation ?annotation10 .
  ?annotation10 faldo:begin ?pfsb11 ;
    faldo:end ?pfse12 ;
    rdf:type up:Active_Site_Annotation .
  ?pfsb11 faldo:position ?thisPositionOn13 ;
    rdf:type faldo:ExactPosition .
  ?pfse12 faldo:position ?thisPositionOn14 ;
    rdf:type faldo:ExactPosition .
  ?pfs15 up:annotation ?annotation16 .
  ?annotation16 faldo:begin ?pfsb17 ;
    faldo:end ?pfse18 ;
    up:ligand ?ligand19 ;
    rdf:type up:Binding_Site_Annotation .
  ?pfsb17 faldo:position ?thisPositionOn20 ;
    rdf:type faldo:ExactPosition .
  ?pfse18 faldo:position ?thisPositionOn21 ;
    rdf:type faldo:ExactPosition .
  ?ligand19 rdfs:subClassOf chebi:57540 .
  _:969103 a rdf:Statement ;
    up:attribution _:969088 ;
    rdf:subject ?this ;
    rdf:predicate up:recommendedName ;
    rdf:object ?name0 .
  _:969104 a rdf:Statement ;
    up:attribution _:969089 ;
    rdf:subject ?this ;
    rdf:predicate up:alternativeName ;
    rdf:object ?name1 .
  _:969105 a rdf:Statement ;
    up:attribution _:969090 ;
    rdf:subject ?gene2 ;
    rdf:predicate up:encodedBy ;
    rdf:object ?gene2 .
  _:969106 a rdf:Statement ;
    up:attribution _:969091 ;
    rdf:subject ?this ;
    rdf:predicate up:annotation ;
    rdf:object ?annotation3 .
  _:969107 a rdf:Statement ;
    up:attribution _:969092 ;
    rdf:subject ?this ;
    rdf:predicate up:annotation ;
    rdf:object ?annotation4 .
  _:969108 a rdf:Statement ;
    up:attribution _:969093 ;
    rdf:subject ?this ;
    rdf:predicate up:annotation ;
    rdf:object ?annotation6 .
  _:969109 a rdf:Statement ;
    up:attribution _:969094 ;
    rdf:subject ?this ;
    rdf:predicate up:annotation ;
    rdf:object ?annotation8 .
  _:969110 a rdf:Statement ;
    up:attribution _:969095 ;
    rdf:subject ?this ;
    rdf:predicate up:classifiedWith ;
    rdf:object keyword:328 .
  _:969111 a rdf:Statement ;
    up:attribution _:969096 ;
    rdf:subject ?this ;
    rdf:predicate up:classifiedWith ;
    rdf:object keyword:548 .
  _:969112 a rdf:Statement ;
    up:attribution _:969097 ;
    rdf:subject ?this ;
    rdf:predicate up:classifiedWith ;
    rdf:object keyword:808 .
  _:969113 a rdf:Statement ;
    up:attribution _:969098 ;
    rdf:subject ?this ;
    rdf:predicate up:classifiedWith ;
    rdf:object keyword:946 .
  _:969114 a rdf:Statement ;
    up:attribution _:969099 ;
    rdf:subject ?this ;
    rdf:predicate up:classifiedWith ;
    rdf:object GO:0106274 .
  _:969115 a rdf:Statement ;
    up:attribution _:969100 ;
    rdf:subject ?this ;
    rdf:predicate up:classifiedWith ;
    rdf:object GO:0044423 .
  _:969116 a rdf:Statement ;
    up:source unirule:MF_04141 ;
    rdf:subject ?pfs9 ;
    rdf:predicate up:annotation ;
    rdf:object ?annotation10 .
  _:969117 a rdf:Statement ;
    up:attribution _:969101 ;
    rdf:subject ?pfs9 ;
    rdf:predicate up:annotation ;
    rdf:object ?annotation10 .
  _:969118 a rdf:Statement ;
    up:source unirule:MF_04141 ;
    rdf:subject ?pfs15 ;
    rdf:predicate up:annotation ;
    rdf:object ?annotation16 .
  _:969119 a rdf:Statement ;
    up:attribution _:969102 ;
    rdf:subject ?pfs15 ;
    rdf:predicate up:annotation ;
    rdf:object ?annotation16 .
}
WHERE {
  #baseURI: http://purl.uniprot.org/unirule/MF_04141
  #Rule MF_04141 Created by:? on:2019-10-08 Modified by:Edouard de Castro on:2024-09-02
  ?this up:organism ?thisOrganism ;
    rdfs:seeAlso signature:MF_04141 .
  ?thisOrganism rdfs:subClassOf+ taxon:1198136 .
  BIND(URI(CONCAT(STR(?this), '#MF_04141a0')) AS ?name0) .
  BIND(URI(CONCAT(STR(?this), '#MF_04141a1')) AS ?name1) .
  BIND(URI(CONCAT(STR(?this), '#MF_04141a3')) AS ?annotation3) .
  BIND(URI(CONCAT(STR(?this), '#MF_04141a4')) AS ?annotation4) .
  BIND(URI(CONCAT(STR(?this), '#MF_04141a6')) AS ?annotation6) .
  BIND(URI(CONCAT(STR(?this), '#MF_04141a8')) AS ?annotation8) .
  OPTIONAL {
    ?this up:sequence ?thisSequence .
    ?thisSequence rdf:value ?thisSequenceValue .
    ?templateMotifMatch26 faldo:location ?templateMotifSequenceMatchRegionP3942127 ;
      edam:is_output_of ?templateMotifSequenceProfileAlignmentOperationP3942129 ;
      rdf:type edam:data_0869 ;
      rdf:value ?templateMotifCigarP39421MF_0414122 .
    ?templateMotifSequenceMatchRegionP3942127 faldo:begin ?templateMotifSequenceMatchBeginP3942128 .
    ?templateMotifSequenceMatchBeginP3942128 faldo:position ?templateMotifSequenceMatchBeginPositionP3942123 ;
      faldo:reference isoform:P39421-1 .
    ?templateMotifSequenceProfileAlignmentOperationP3942129 edam:has_input signature:MF_04141 ;
      rdf:type edam:operation_0300 .
    ?targetMotifMatch30 faldo:location ?targetMotifMatchRegionMatch31 ;
      edam:is_output_of ?targetMotifSequenceAlignmentOperationMF_0414133 ;
      rdf:type edam:data_0869 ;
      rdf:value ?targetMotifMatchCigarP39421MF_0414124 .
    ?targetMotifMatchRegionMatch31 faldo:begin ?targetMotifMatchRegionMatchBeginMF_0414132 .
    ?targetMotifMatchRegionMatchBeginMF_0414132 faldo:position ?targetMotifMatchRegionMatchBeginPositionMF_0414125 ;
      faldo:reference ?thisSequence .
    ?targetMotifSequenceAlignmentOperationMF_0414133 edam:has_input signature:MF_04141 ;
      rdf:type edam:operation_0300 .
    BIND(STRLEN(REPLACE(SUBSTR(?templateMotifCigarP39421MF_0414122, 1, (STRLEN(?templateMotifCigarP39421MF_0414122) - STRLEN(REPLACE(?templateMotifCigarP39421MF_0414122, CONCAT('^(?:-*[^-]){', STR(((165 - ?templateMotifSequenceMatchBeginPositionP3942123) + 1)), '}'), '')))), '[a-z]', '')) AS ?step134) .
    BIND((STRLEN(SUBSTR(?targetMotifMatchCigarP39421MF_0414124, 1, (STRLEN(?targetMotifMatchCigarP39421MF_0414124) - STRLEN(REPLACE(?targetMotifMatchCigarP39421MF_0414124, CONCAT('^(?:[a-z]*(?:[A-Z]|-)){', STR(?step134), '}'), ''))))) - STRLEN(REPLACE(SUBSTR(?targetMotifMatchCigarP39421MF_0414124, 1, (STRLEN(?targetMotifMatchCigarP39421MF_0414124) - STRLEN(REPLACE(?targetMotifMatchCigarP39421MF_0414124, CONCAT('^(?:[a-z]*(?:[A-Z]|-)){', STR(?step134), '}'), '')))), '[^-]', ''))) AS ?step235) .
    BIND(((?step235 + ?targetMotifMatchRegionMatchBeginPositionMF_0414125) - 1) AS ?thisPositionOn13) .
    BIND(?thisPositionOn13 AS ?thisPositionOn14) .
    BIND(?this AS ?pfs1t36) .
    BIND(URI(CONCAT(STR(?thisSequence), '#position', STR(?thisPositionOn13))) AS ?pfsb11) .
    BIND(URI(CONCAT(STR(?thisSequence), '#position', STR(?thisPositionOn14))) AS ?pfse12) .
    FILTER ((SUBSTR(?thisSequenceValue, ?thisPositionOn13, 1) = 'E')) .
    BIND(URI(CONCAT(STR(?this), '#MF_04141a10')) AS ?annotation10) .
    BIND(?this AS ?pfs9) .
  }
  OPTIONAL {
    ?this up:sequence ?thisSequence .
    ?thisSequence rdf:value ?thisSequenceValue .
    ?templateMotifMatch41 faldo:location ?templateMotifSequenceMatchRegionP3942142 ;
      edam:is_output_of ?templateMotifSequenceProfileAlignmentOperationP3942144 ;
      rdf:type edam:data_0869 ;
      rdf:value ?templateMotifCigarP39421MF_0414137 .
    ?templateMotifSequenceMatchRegionP3942142 faldo:begin ?templateMotifSequenceMatchBeginP3942143 .
    ?templateMotifSequenceMatchBeginP3942143 faldo:position ?templateMotifSequenceMatchBeginPositionP3942138 ;
      faldo:reference isoform:P39421-1 .
    ?templateMotifSequenceProfileAlignmentOperationP3942144 edam:has_input signature:MF_04141 ;
      rdf:type edam:operation_0300 .
    ?targetMotifMatch45 faldo:location ?targetMotifMatchRegionMatch46 ;
      edam:is_output_of ?targetMotifSequenceAlignmentOperationMF_0414148 ;
      rdf:type edam:data_0869 ;
      rdf:value ?targetMotifMatchCigarP39421MF_0414139 .
    ?targetMotifMatchRegionMatch46 faldo:begin ?targetMotifMatchRegionMatchBeginMF_0414147 .
    ?targetMotifMatchRegionMatchBeginMF_0414147 faldo:position ?targetMotifMatchRegionMatchBeginPositionMF_0414140 ;
      faldo:reference ?thisSequence .
    ?targetMotifSequenceAlignmentOperationMF_0414148 edam:has_input signature:MF_04141 ;
      rdf:type edam:operation_0300 .
    BIND(STRLEN(REPLACE(SUBSTR(?templateMotifCigarP39421MF_0414137, 1, (STRLEN(?templateMotifCigarP39421MF_0414137) - STRLEN(REPLACE(?templateMotifCigarP39421MF_0414137, CONCAT('^(?:-*[^-]){', STR(((72 - ?templateMotifSequenceMatchBeginPositionP3942138) + 1)), '}'), '')))), '[a-z]', '')) AS ?step149) .
    BIND((STRLEN(SUBSTR(?targetMotifMatchCigarP39421MF_0414139, 1, (STRLEN(?targetMotifMatchCigarP39421MF_0414139) - STRLEN(REPLACE(?targetMotifMatchCigarP39421MF_0414139, CONCAT('^(?:[a-z]*(?:[A-Z]|-)){', STR(?step149), '}'), ''))))) - STRLEN(REPLACE(SUBSTR(?targetMotifMatchCigarP39421MF_0414139, 1, (STRLEN(?targetMotifMatchCigarP39421MF_0414139) - STRLEN(REPLACE(?targetMotifMatchCigarP39421MF_0414139, CONCAT('^(?:[a-z]*(?:[A-Z]|-)){', STR(?step149), '}'), '')))), '[^-]', ''))) AS ?step250) .
    BIND(((?step250 + ?targetMotifMatchRegionMatchBeginPositionMF_0414140) - 1) AS ?thisPositionOn20) .
    BIND(?thisPositionOn20 AS ?thisPositionOn21) .
    BIND(?this AS ?pfs1t51) .
    BIND(URI(CONCAT(STR(?thisSequence), '#position', STR(?thisPositionOn20))) AS ?pfsb17) .
    BIND(URI(CONCAT(STR(?thisSequence), '#position', STR(?thisPositionOn21))) AS ?pfse18) .
    FILTER ((SUBSTR(?thisSequenceValue, ?thisPositionOn20, 1) = 'R')) .
    BIND(URI(CONCAT(STR(?this), '#MF_04141a16')) AS ?annotation16) .
    BIND(?this AS ?pfs15) .
  }
}
""" .

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