Module: BEL::Language

Defined in:
lib/bel/language.rb

Defined Under Namespace

Classes: Annotation, AnnotationDefinition, Comment, DocumentProperty, E, F, Function, Newline, NullE, Signature, StatementGroup, UnsetAnnotation, UnsetStatementGroup

Constant Summary collapse

NEW_LINE =
Newline.new
FUNCTIONS =
{
  a: {
    short_form: :a,
    long_form: :abundance,
    description: 'Denotes the abundance of an entity',
    return_type: :a,
    signatures: [
      Signature.new(:a, E.new(:A))
    ]
  },
  bp: {
    short_form: :bp,
    long_form: :biologicalProcess,
    description: 'Denotes a process or population of events',
    return_type: :bp,
    signatures: [
      Signature.new(:bp, E.new(:B))
    ]
  },
  cat: {
    short_form: :cat,
    long_form: :catalyticActivity,
    description: 'Denotes the frequency or abundance of events where a member acts as an enzymatic catalyst of biochecmial reactions',
    return_type: :a,
    signatures: [
      Signature.new(:cat, F.new(:complex)),
      Signature.new(:cat, F.new(:p))
    ]
  },
  sec: {
    short_form: :sec,
    long_form: :cellSecretion,
    description: 'Denotes the frequency or abundance of events in which members of an abundance move from cells to regions outside of the cells',
    return_type: :a,
    signatures: [
      Signature.new(:sec, F.new(:a))
    ]
  },
  surf: {
    short_form: :surf,
    long_form: :cellSurfaceExpression,
    description: 'Denotes the frequency or abundance of events in which members of an abundance move to the surface of cells',
    return_type: :a,
    signatures: [
      Signature.new(:surf, F.new(:a))
    ]
  },
  chap: {
    short_form: :chap,
    long_form: :chaperoneActivity,
    description: 'Denotes the frequency or abundance of events in which a member binds to some substrate and acts as a chaperone for the substrate',
    return_type: :a,
    signatures: [
      Signature.new(:chap, F.new(:complex)),
      Signature.new(:chap, F.new(:p))
    ]
  },
  complex: {
    short_form: :complex,
    long_form: :complexAbundance,
    description: 'Denotes the abundance of a molecular complex',
    return_type: :complex,
    signatures: [
      Signature.new(:complex, E.new(:A)),
      Signature.new(:complex, F.new(:a, true))
    ]
  },
  composite: {
    short_form: :composite,
    long_form: :compositeAbundance,
    description: 'Denotes the frequency or abundance of events in which members are present',
    return_type: :a,
    signatures: [
      Signature.new(:composite, F.new(:a, true))
    ]
  },
  deg: {
    short_form: :deg,
    long_form: :degradation,
    description: 'Denotes the frequency or abundance of events in which a member is degraded in some way such that it is no longer a member',
    return_type: :a,
    signatures: [
      Signature.new(:deg, F.new(:a))
    ]
  },
  fus: {
    short_form: :fus,
    long_form: :fusion,
    description: 'Specifies the abundance of a protein translated from the fusion of a gene',
    return_type: :fus,
    signatures: [
      Signature.new(:fus, E.new(:G)),
      Signature.new(:fus, E.new(:G), E.new(:*), E.new(:*)),
      Signature.new(:fus, E.new(:P)),
      Signature.new(:fus, E.new(:P), E.new(:*), E.new(:*)),
      Signature.new(:fus, E.new(:R)),
      Signature.new(:fus, E.new(:R), E.new(:*), E.new(:*))
    ]
  },
  g: {
    short_form: :g,
    long_form: :geneAbundance,
    description: 'Denotes the abundance of a gene',
    return_type: :g,
    signatures: [
      Signature.new(:g, E.new(:G)),
      Signature.new(:g, E.new(:G), F.new(:fus))
    ]
  },
  gtp: {
    short_form: :gtp,
    long_form: :gtpBoundActivity,
    description: 'Denotes the frequency or abundance of events in which a member of a G-protein abundance is GTP-bound',
    return_type: :a,
    signatures: [
      Signature.new(:gtp, F.new(:complex)),
      Signature.new(:gtp, F.new(:p))
    ]
  },
  kin: {
    short_form: :kin,
    long_form: :kinaseActivity,
    description: 'Denotes the frequency or abundance of events in which a member acts as a kinase, performing enzymatic phosphorylation of a substrate',
    return_type: :a,
    signatures: [
      Signature.new(:kin, F.new(:complex)),
      Signature.new(:kin, F.new(:p))
    ]
  },
  list: {
    short_form: :list,
    long_form: :list,
    description: 'Groups a list of terms together',
    return_type: :list,
    signatures: [
      Signature.new(:list, E.new(:A, true)),
      Signature.new(:list, F.new(:a, true))
    ]
  },
  m: {
    short_form: :m,
    long_form: :microRNAAbundance,
    description: 'Denotes the abundance of a processed, functional microRNA',
    return_type: :m,
    signatures: [
      Signature.new(:m, E.new(:M))
    ]
  },
  act: {
    short_form: :act,
    long_form: :molecularActivity,
    description: 'Denotes the frequency or abundance of events in which a member acts as a causal agent at the molecular scale',
    return_type: :a,
    signatures: [
      Signature.new(:act, F.new(:a))
    ]
  },
  path: {
    short_form: :path,
    long_form: :pathology,
    description: 'Denotes a disease or pathology process',
    return_type: :path,
    signatures: [
      Signature.new(:path, E.new(:O))
    ]
  },
  pep: {
    short_form: :pep,
    long_form: :peptidaseActivity,
    description: 'Denotes the frequency or abundance of events in which a member acts to cleave a protein',
    return_type: :a,
    signatures: [
      Signature.new(:pep, F.new(:complex)),
      Signature.new(:pep, F.new(:p))
    ]
  },
  phos: {
    short_form: :phos,
    long_form: :phosphataseActivity,
    description: 'Denotes the frequency or abundance of events in which a member acts as a phosphatase',
    return_type: :a,
    signatures: [
      Signature.new(:phos, F.new(:complex)),
      Signature.new(:phos, F.new(:p))
    ]
  },
  products: {
    short_form: :products,
    long_form: :products,
    description: 'Denotes the products of a reaction',
    return_type: :products,
    signatures: [
      Signature.new(:products, F.new(:a))
    ]
  },
  p: {
    short_form: :p,
    long_form: :proteinAbundance,
    description: 'Denotes the abundance of a protein',
    return_type: :p,
    signatures: [
      Signature.new(:p, E.new(:P)),
      Signature.new(:p, E.new(:P), F.new(:pmod)),
      Signature.new(:p, E.new(:P), F.new(:sub)),
      Signature.new(:p, E.new(:P), F.new(:fus)),
      Signature.new(:p, E.new(:P), F.new(:trunc))
    ]
  },
  pmod: {
    short_form: :pmod,
    long_form: :proteinModification,
    description: 'Denotes a covalently modified protein abundance',
    return_type: :pmod,
    signatures: [
      Signature.new(:pmod, E.new(:*)),
      Signature.new(:pmod, E.new(:*), E.new(:*)),
      Signature.new(:pmod, E.new(:*), E.new(:*), E.new(:*))
    ]
  },
  reactants: {
    short_form: :reactants,
    long_form: :reactants,
    description: 'Denotes the reactants of a reaction',
    return_type: :reactants,
    signatures: [
      Signature.new(:reactants, F.new(:a))
    ]
  },
  rxn: {
    short_form: :rxn,
    long_form: :reaction,
    description: 'Denotes the frequency or abundance of events in a reaction',
    return_type: :a,
    signatures: [
      Signature.new(:rxn, F.new(:reactants), F.new(:products))
    ]
  },
  ribo: {
    short_form: :ribo,
    long_form: :ribosylationActivity,
    description: 'Denotes the frequency or abundance of events in which a member acts to perform post-translational modification of proteins',
    return_type: :a,
    signatures: [
      Signature.new(:ribo, F.new(:complex)),
      Signature.new(:ribo, F.new(:p))
    ]
  },
  r: {
    short_form: :r,
    long_form: :rnaAbundance,
    description: 'Denotes the abundance of a gene',
    return_type: :g,
    signatures: [
      Signature.new(:r, E.new(:R)),
      Signature.new(:r, E.new(:R), F.new(:fus))
    ]
  },
  sub: {
    short_form: :sub,
    long_form: :substitution,
    description: 'Indicates the abundance of proteins with amino acid substitution sequence',
    return_type: :sub,
    signatures: [
      Signature.new(:sub, E.new(:*), E.new(:*), E.new(:*))
    ]
  },
  tscript: {
    short_form: :tscript,
    long_form: :transcriptionalActivity,
    description: 'Denotes the frequency or abundance of events in which a member directly acts to control transcription of genes',
    return_type: :a,
    signatures: [
      Signature.new(:tscript, F.new(:complex)),
      Signature.new(:tscript, F.new(:p))
    ]
  },
  tloc: {
    short_form: :tloc,
    long_form: :translocation,
    description: 'Denotes the frequency or abundance of events in which members move between locations',
    return_type: :a,
    signatures: [
      Signature.new(:tloc, F.new(:a), E.new(:A), E.new(:A))
    ]
  },
  tport: {
    short_form: :tport,
    long_form: :transportActivity,
    description: 'Denotes the frequency or abundance of events in which a member directs acts to enable the directed movement of substances into, out of, within, or between cells',
    return_type: :a,
    signatures: [
      Signature.new(:tport, F.new(:complex)),
      Signature.new(:tport, F.new(:p))
    ]
  },
  trunc: {
    short_form: :trunc,
    long_form: :truncation,
    description: 'Indicates an abundance of proteins with truncation sequence variants',
    return_type: :trunc,
    signatures: [
      Signature.new(:trunc, E.new(:*))
    ]
  }
}
PARAMETER_ENCODING =
{
  B: [:B],
  O: [:O, :B],
  R: [:R, :A],
  M: [:M, :R, :A],
  P: [:P, :A],
  G: [:G, :A],
  A: [:A],
  C: [:C, :A]
}
FUNCTION_TYPES =
{
  a: [:a],
  bp: [:bp],
  complex: [:complex, :a],
  g: [:g, :a],
  m: [:m, :r, :a],
  path: [:path, :bp],
  p: [:p, :a],
  r: [:r, :a]
}
RELATIONSHIPS =
{
  :actsIn                 => :actsIn,
  :analogous              => :analogous,
  :'--'                   => :association,
  :association            => :association,
  :biomarkerFor           => :biomarkerFor,
  :causesNoChange         => :causesNoChange,
  :'-|'                   => :decreases,
  :decreases              => :decreases,
  :'=|'                   => :directlyDecreases,
  :directlyDecreases      => :directlyDecreases,
  :'=>'                   => :directlyIncreases,
  :directlyIncreases      => :directlyIncreases,
  :'->'                   => :increases,
  :increases              => :increases,
  :hasComponent           => :hasComponent,
  :hasComponents          => :hasComponents,
  :hasMember              => :hasMember,
  :hasMembers             => :hasMembers,
  :hasModification        => :hasModification,
  :hasProduct             => :hasProduct,
  :hasVariant             => :hasVariant,
  :includes               => :includes,
  :isA                    => :isA,
  :negativeCorrelation    => :negativeCorrelation,
  :orthologous            => :orthologous,
  :positiveCorrelation    => :positiveCorrelation,
  :prognosticBiomarkerFor => :prognosticBiomarkerFor,
  :rateLimitingStepOf     => :rateLimitingStepOf,
  :reactantIn             => :reactantIn,
  :subProcessOf           => :subProcessOf,
  :':>'                   => :transcribedTo,
  :transcribedTo          => :transcribedTo,
  :'>>'                   => :translatedTo,
  :translatedTo           => :translatedTo,
  :translocates           => :translocates,
}