bel_parser 1.0.0.alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gemspec +28 -0
- data/CHANGELOG.md +10 -0
- data/LICENSE +191 -0
- data/README.md +9 -0
- data/VERSION +1 -0
- data/bin/bel2_termcheck +39 -0
- data/lib/bel_parser.rb +17 -0
- data/lib/bel_parser/ast_filter.rb +27 -0
- data/lib/bel_parser/ast_generator.rb +86 -0
- data/lib/bel_parser/ast_validator.rb +40 -0
- data/lib/bel_parser/expression/parser.rb +42 -0
- data/lib/bel_parser/expression/term_semantics.rb +36 -0
- data/lib/bel_parser/language.rb +7 -0
- data/lib/bel_parser/language/function.rb +59 -0
- data/lib/bel_parser/language/quoting.rb +236 -0
- data/lib/bel_parser/language/semantic_ast.rb +604 -0
- data/lib/bel_parser/language/semantics/analyzer.rb +59 -0
- data/lib/bel_parser/language/signature.rb +39 -0
- data/lib/bel_parser/language/specification.rb +49 -0
- data/lib/bel_parser/language/syntax/expression/incomplete_node.rb +14 -0
- data/lib/bel_parser/language/syntax/expression/invalid_term_function.rb +22 -0
- data/lib/bel_parser/language/version1.rb +50 -0
- data/lib/bel_parser/language/version1/functions/abundance.rb +85 -0
- data/lib/bel_parser/language/version1/functions/biological_process.rb +85 -0
- data/lib/bel_parser/language/version1/functions/catalytic_activity.rb +110 -0
- data/lib/bel_parser/language/version1/functions/cell_secretion.rb +80 -0
- data/lib/bel_parser/language/version1/functions/cell_surface_expression.rb +80 -0
- data/lib/bel_parser/language/version1/functions/chaperone_activity.rb +110 -0
- data/lib/bel_parser/language/version1/functions/complex_abundance.rb +115 -0
- data/lib/bel_parser/language/version1/functions/composite_abundance.rb +80 -0
- data/lib/bel_parser/language/version1/functions/degradation.rb +80 -0
- data/lib/bel_parser/language/version1/functions/fusion.rb +302 -0
- data/lib/bel_parser/language/version1/functions/gene_abundance.rb +125 -0
- data/lib/bel_parser/language/version1/functions/gtp_bound_activity.rb +110 -0
- data/lib/bel_parser/language/version1/functions/kinase_activity.rb +110 -0
- data/lib/bel_parser/language/version1/functions/list.rb +115 -0
- data/lib/bel_parser/language/version1/functions/micro_rna_abundance.rb +85 -0
- data/lib/bel_parser/language/version1/functions/molecular_activity.rb +80 -0
- data/lib/bel_parser/language/version1/functions/pathology.rb +85 -0
- data/lib/bel_parser/language/version1/functions/peptidase_activity.rb +110 -0
- data/lib/bel_parser/language/version1/functions/phosphatase_activity.rb +110 -0
- data/lib/bel_parser/language/version1/functions/products.rb +80 -0
- data/lib/bel_parser/language/version1/functions/protein_abundance.rb +245 -0
- data/lib/bel_parser/language/version1/functions/protein_modification.rb +167 -0
- data/lib/bel_parser/language/version1/functions/reactants.rb +80 -0
- data/lib/bel_parser/language/version1/functions/reaction.rb +85 -0
- data/lib/bel_parser/language/version1/functions/ribosylation_activity.rb +110 -0
- data/lib/bel_parser/language/version1/functions/rna_abundance.rb +125 -0
- data/lib/bel_parser/language/version1/functions/substitution.rb +96 -0
- data/lib/bel_parser/language/version1/functions/transcriptional_activity.rb +110 -0
- data/lib/bel_parser/language/version1/functions/translocation.rb +100 -0
- data/lib/bel_parser/language/version1/functions/transport_activity.rb +110 -0
- data/lib/bel_parser/language/version1/functions/truncation.rb +82 -0
- data/lib/bel_parser/language/version1/return_types/abundance.rb +20 -0
- data/lib/bel_parser/language/version1/return_types/any.rb +74 -0
- data/lib/bel_parser/language/version1/return_types/biological_process.rb +17 -0
- data/lib/bel_parser/language/version1/return_types/catalytic_activity.rb +20 -0
- data/lib/bel_parser/language/version1/return_types/chaperone_activity.rb +20 -0
- data/lib/bel_parser/language/version1/return_types/complex_abundance.rb +17 -0
- data/lib/bel_parser/language/version1/return_types/fusion.rb +17 -0
- data/lib/bel_parser/language/version1/return_types/gene_abundance.rb +17 -0
- data/lib/bel_parser/language/version1/return_types/gtp_bound_activity.rb +20 -0
- data/lib/bel_parser/language/version1/return_types/kinase_activity.rb +20 -0
- data/lib/bel_parser/language/version1/return_types/list.rb +17 -0
- data/lib/bel_parser/language/version1/return_types/micro_rna_abundance.rb +17 -0
- data/lib/bel_parser/language/version1/return_types/molecular_activity.rb +20 -0
- data/lib/bel_parser/language/version1/return_types/pathology.rb +17 -0
- data/lib/bel_parser/language/version1/return_types/peptidase_activity.rb +20 -0
- data/lib/bel_parser/language/version1/return_types/phosphatase_activity.rb +20 -0
- data/lib/bel_parser/language/version1/return_types/products.rb +17 -0
- data/lib/bel_parser/language/version1/return_types/protein_abundance.rb +17 -0
- data/lib/bel_parser/language/version1/return_types/protein_modification.rb +17 -0
- data/lib/bel_parser/language/version1/return_types/reactants.rb +17 -0
- data/lib/bel_parser/language/version1/return_types/ribosylation_activity.rb +20 -0
- data/lib/bel_parser/language/version1/return_types/rna_abundance.rb +17 -0
- data/lib/bel_parser/language/version1/return_types/substitution.rb +17 -0
- data/lib/bel_parser/language/version1/return_types/transcriptional_activity.rb +20 -0
- data/lib/bel_parser/language/version1/return_types/transport_activity.rb +20 -0
- data/lib/bel_parser/language/version1/return_types/truncation.rb +17 -0
- data/lib/bel_parser/language/version2.rb +50 -0
- data/lib/bel_parser/language/version2/functions/abundance.rb +165 -0
- data/lib/bel_parser/language/version2/functions/activity.rb +115 -0
- data/lib/bel_parser/language/version2/functions/biological_process.rb +85 -0
- data/lib/bel_parser/language/version2/functions/cell_secretion.rb +80 -0
- data/lib/bel_parser/language/version2/functions/cell_surface_expression.rb +80 -0
- data/lib/bel_parser/language/version2/functions/complex_abundance.rb +190 -0
- data/lib/bel_parser/language/version2/functions/composite_abundance.rb +80 -0
- data/lib/bel_parser/language/version2/functions/degradation.rb +80 -0
- data/lib/bel_parser/language/version2/functions/fragment.rb +119 -0
- data/lib/bel_parser/language/version2/functions/from_location.rb +85 -0
- data/lib/bel_parser/language/version2/functions/fusion.rb +227 -0
- data/lib/bel_parser/language/version2/functions/gene_abundance.rb +195 -0
- data/lib/bel_parser/language/version2/functions/list.rb +115 -0
- data/lib/bel_parser/language/version2/functions/location.rb +85 -0
- data/lib/bel_parser/language/version2/functions/micro_rna_abundance.rb +165 -0
- data/lib/bel_parser/language/version2/functions/molecular_activity.rb +83 -0
- data/lib/bel_parser/language/version2/functions/pathology.rb +85 -0
- data/lib/bel_parser/language/version2/functions/products.rb +80 -0
- data/lib/bel_parser/language/version2/functions/protein_abundance.rb +285 -0
- data/lib/bel_parser/language/version2/functions/protein_modification.rb +167 -0
- data/lib/bel_parser/language/version2/functions/reactants.rb +80 -0
- data/lib/bel_parser/language/version2/functions/reaction.rb +85 -0
- data/lib/bel_parser/language/version2/functions/rna_abundance.rb +195 -0
- data/lib/bel_parser/language/version2/functions/to_location.rb +85 -0
- data/lib/bel_parser/language/version2/functions/translocation.rb +90 -0
- data/lib/bel_parser/language/version2/functions/variant.rb +83 -0
- data/lib/bel_parser/language/version2/return_types/abundance.rb +20 -0
- data/lib/bel_parser/language/version2/return_types/activity.rb +20 -0
- data/lib/bel_parser/language/version2/return_types/any.rb +74 -0
- data/lib/bel_parser/language/version2/return_types/biological_process.rb +17 -0
- data/lib/bel_parser/language/version2/return_types/complex_abundance.rb +17 -0
- data/lib/bel_parser/language/version2/return_types/fragment.rb +20 -0
- data/lib/bel_parser/language/version2/return_types/from_location.rb +20 -0
- data/lib/bel_parser/language/version2/return_types/fusion.rb +17 -0
- data/lib/bel_parser/language/version2/return_types/gene_abundance.rb +17 -0
- data/lib/bel_parser/language/version2/return_types/list.rb +17 -0
- data/lib/bel_parser/language/version2/return_types/location.rb +20 -0
- data/lib/bel_parser/language/version2/return_types/micro_rna_abundance.rb +17 -0
- data/lib/bel_parser/language/version2/return_types/molecular_activity.rb +20 -0
- data/lib/bel_parser/language/version2/return_types/pathology.rb +17 -0
- data/lib/bel_parser/language/version2/return_types/products.rb +17 -0
- data/lib/bel_parser/language/version2/return_types/protein_abundance.rb +17 -0
- data/lib/bel_parser/language/version2/return_types/protein_modification.rb +17 -0
- data/lib/bel_parser/language/version2/return_types/reactants.rb +17 -0
- data/lib/bel_parser/language/version2/return_types/rna_abundance.rb +17 -0
- data/lib/bel_parser/language/version2/return_types/to_location.rb +20 -0
- data/lib/bel_parser/language/version2/return_types/variant.rb +20 -0
- data/lib/bel_parser/mixin/line_continuator.rb +15 -0
- data/lib/bel_parser/mixin/line_mapping.rb +14 -0
- data/lib/bel_parser/parser.rb +54 -0
- data/lib/bel_parser/parsers/ast/mapped_traversal.rb +36 -0
- data/lib/bel_parser/parsers/ast/node.rb +705 -0
- data/lib/bel_parser/parsers/ast/sexp.rb +8 -0
- data/lib/bel_parser/parsers/ast/traversal.rb +21 -0
- data/lib/bel_parser/parsers/bel_script.rb +4 -0
- data/lib/bel_parser/parsers/bel_script/define_annotation.rb +5476 -0
- data/lib/bel_parser/parsers/bel_script/define_annotation.rl +141 -0
- data/lib/bel_parser/parsers/bel_script/define_namespace.rb +1780 -0
- data/lib/bel_parser/parsers/bel_script/define_namespace.rl +121 -0
- data/lib/bel_parser/parsers/bel_script/set.rb +4556 -0
- data/lib/bel_parser/parsers/bel_script/set.rl +116 -0
- data/lib/bel_parser/parsers/bel_script/unset.rb +706 -0
- data/lib/bel_parser/parsers/bel_script/unset.rl +95 -0
- data/lib/bel_parser/parsers/common.rb +5 -0
- data/lib/bel_parser/parsers/common/blank_line.rb +211 -0
- data/lib/bel_parser/parsers/common/blank_line.rl +81 -0
- data/lib/bel_parser/parsers/common/comment_line.rb +245 -0
- data/lib/bel_parser/parsers/common/comment_line.rl +97 -0
- data/lib/bel_parser/parsers/common/common.rb +7 -0
- data/lib/bel_parser/parsers/common/common.rl +13 -0
- data/lib/bel_parser/parsers/common/identifier.rb +289 -0
- data/lib/bel_parser/parsers/common/identifier.rl +106 -0
- data/lib/bel_parser/parsers/common/list.rb +2142 -0
- data/lib/bel_parser/parsers/common/list.rl +144 -0
- data/lib/bel_parser/parsers/common/string.rb +271 -0
- data/lib/bel_parser/parsers/common/string.rl +107 -0
- data/lib/bel_parser/parsers/expression.rb +7 -0
- data/lib/bel_parser/parsers/expression/comment.rb +239 -0
- data/lib/bel_parser/parsers/expression/comment.rl +97 -0
- data/lib/bel_parser/parsers/expression/parameter.rb +1506 -0
- data/lib/bel_parser/parsers/expression/parameter.rl +97 -0
- data/lib/bel_parser/parsers/expression/relationship.rb +254 -0
- data/lib/bel_parser/parsers/expression/relationship.rl +98 -0
- data/lib/bel_parser/parsers/expression/statement_nested.rb +17802 -0
- data/lib/bel_parser/parsers/expression/statement_nested.rl +141 -0
- data/lib/bel_parser/parsers/expression/statement_observed_term.rb +7291 -0
- data/lib/bel_parser/parsers/expression/statement_observed_term.rl +92 -0
- data/lib/bel_parser/parsers/expression/statement_simple.rb +10475 -0
- data/lib/bel_parser/parsers/expression/statement_simple.rl +112 -0
- data/lib/bel_parser/parsers/expression/term.rb +3989 -0
- data/lib/bel_parser/parsers/expression/term.rl +157 -0
- data/lib/bel_parser/parsers/line_parser.rb +92 -0
- data/lib/bel_parser/parsers/mixin/buffer.rb +10 -0
- data/lib/bel_parser/parsers/nonblocking_io_wrapper.rb +50 -0
- data/lib/bel_parser/script/parser.rb +49 -0
- data/lib/bel_parser/vendor/ast.rb +17 -0
- data/lib/bel_parser/vendor/ast/node.rb +254 -0
- data/lib/bel_parser/vendor/ast/processor.rb +12 -0
- data/lib/bel_parser/vendor/ast/processor/mixin.rb +282 -0
- data/lib/bel_parser/vendor/ast/sexp.rb +30 -0
- metadata +226 -0
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
require 'bel_parser/parsers/ast/node'
|
|
2
|
+
|
|
3
|
+
module BELParser
|
|
4
|
+
module Language
|
|
5
|
+
module Semantics
|
|
6
|
+
# Recursively apply function semantics to each term.
|
|
7
|
+
# AST Term Property = :function_semantics
|
|
8
|
+
def self.apply_function_semantics(term, spec)
|
|
9
|
+
unless term.is_a?(BELParser::Parsers::AST::Term)
|
|
10
|
+
raise ArgumentError, "term_ast: expected BELParser::Parsers::AST::Term"
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
function_name = term.function.identifier.string_literal
|
|
14
|
+
function = spec.function(function_name.to_sym)
|
|
15
|
+
|
|
16
|
+
valid_signature =
|
|
17
|
+
function.signatures.select do |sig|
|
|
18
|
+
match(term, sig.semantic_ast, spec).all?(&:success?)
|
|
19
|
+
end.max
|
|
20
|
+
if valid_signature
|
|
21
|
+
term.function_semantics = valid_signature
|
|
22
|
+
term.arguments.select(&:has_term?).map(&:child).each do |term|
|
|
23
|
+
apply_function_semantics(term, spec)
|
|
24
|
+
end
|
|
25
|
+
else
|
|
26
|
+
nullify_function_semantics(term)
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def self.nullify_function_semantics(term)
|
|
31
|
+
unless term.is_a?(BELParser::Parsers::AST::Term)
|
|
32
|
+
raise ArgumentError, "term_ast: expected BELParser::Parsers::AST::Term"
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
term.function_semantics = nil
|
|
36
|
+
term.arguments.select(&:has_term?).map(&:child).each do |term|
|
|
37
|
+
nullify_function_semantics(term)
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def self.check_term(term, spec)
|
|
42
|
+
unless term.is_a?(BELParser::Parsers::AST::Term)
|
|
43
|
+
raise ArgumentError, "term_ast: expected BELParser::Parsers::AST::Term"
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
apply_function_semantics(term, spec)
|
|
47
|
+
|
|
48
|
+
semantics = []
|
|
49
|
+
terms = [term]
|
|
50
|
+
while !terms.empty? do
|
|
51
|
+
term = terms.shift
|
|
52
|
+
semantics << term.function_semantics
|
|
53
|
+
terms.concat(term.arguments.select(&:has_term?).map(&:child))
|
|
54
|
+
end
|
|
55
|
+
semantics
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
end
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
module BELParser
|
|
2
|
+
module Language
|
|
3
|
+
# Signature defines the interface for language-specific signatures used
|
|
4
|
+
# to check expression semantics.
|
|
5
|
+
module Signature
|
|
6
|
+
include Comparable
|
|
7
|
+
|
|
8
|
+
def semantic_ast
|
|
9
|
+
raise NotImplementedError, "#{__method__} is not implemented."
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def string_form
|
|
13
|
+
raise NotImplementedError, "#{__method__} is not implemented."
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def size
|
|
17
|
+
count = 0
|
|
18
|
+
nodes = [semantic_ast]
|
|
19
|
+
while !nodes.empty?
|
|
20
|
+
n = nodes.shift
|
|
21
|
+
if n
|
|
22
|
+
count += 1
|
|
23
|
+
nodes.concat(n.children) if n.respond_to?(:children)
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
count
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def <=> (other)
|
|
30
|
+
return 1 if other.nil?
|
|
31
|
+
size <=> other.size
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def to_s
|
|
35
|
+
string_form
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
module BELParser
|
|
2
|
+
module Language
|
|
3
|
+
# Specification defines the common behavior of any language specification.
|
|
4
|
+
# It includes the syntactic and semantic rules of the language.
|
|
5
|
+
module Specification
|
|
6
|
+
def function(short_or_long_form)
|
|
7
|
+
@indexed_functions[short_or_long_form]
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def return_type(return_type)
|
|
11
|
+
@indexed_return_types[return_type]
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def functions(*short_or_long_form)
|
|
15
|
+
if short_or_long_form.empty?
|
|
16
|
+
@functions
|
|
17
|
+
else
|
|
18
|
+
@indexed_functions.values_at(*short_or_long_form)
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def return_types(*return_types)
|
|
23
|
+
if return_types.empty?
|
|
24
|
+
@return_types
|
|
25
|
+
else
|
|
26
|
+
@indexed_return_types.values_at(*return_types)
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def index_functions(functions)
|
|
31
|
+
Hash[
|
|
32
|
+
functions.flat_map do |function|
|
|
33
|
+
[[function.short, function], [function.long, function]]
|
|
34
|
+
end
|
|
35
|
+
]
|
|
36
|
+
end
|
|
37
|
+
protected :index_functions
|
|
38
|
+
|
|
39
|
+
def index_return_types(return_types)
|
|
40
|
+
Hash[
|
|
41
|
+
return_types.map do |return_type|
|
|
42
|
+
[return_type.to_sym, return_type]
|
|
43
|
+
end
|
|
44
|
+
]
|
|
45
|
+
end
|
|
46
|
+
protected :index_return_types
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
end
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
module BELParser
|
|
2
|
+
module Language
|
|
3
|
+
module Syntax
|
|
4
|
+
module Expression
|
|
5
|
+
# AST traversal observer that reports if any node is incomplete.
|
|
6
|
+
class IncompleteNode
|
|
7
|
+
def update(node)
|
|
8
|
+
"[#{node.type}] Incomplete #{node.type}." if node.incomplete?
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
module BELParser
|
|
2
|
+
module Language
|
|
3
|
+
module Syntax
|
|
4
|
+
module Expression
|
|
5
|
+
# AST traversal observer that reports if term functions are invalid
|
|
6
|
+
# according to a {BELParser::Language::Specification}.
|
|
7
|
+
class InvalidTermFunction
|
|
8
|
+
def initialize(specification)
|
|
9
|
+
@specification = specification
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def update(node)
|
|
13
|
+
return unless node.type == :term
|
|
14
|
+
function_string = node.children[0].children[0].children[0]
|
|
15
|
+
msg = "[#{node.type}] Invalid function: #{function_string}"
|
|
16
|
+
msg unless @specification.function(function_string.to_sym)
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
require_relative 'function'
|
|
2
|
+
require_relative 'specification'
|
|
3
|
+
|
|
4
|
+
# Require all version 1.0 return types
|
|
5
|
+
Dir[
|
|
6
|
+
File.join(
|
|
7
|
+
File.dirname(File.expand_path(__FILE__)),
|
|
8
|
+
'version1', 'return_types', '*.rb')
|
|
9
|
+
].each do |path|
|
|
10
|
+
require_relative "version1/return_types/#{File.basename(path)}"
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
# Require all version 1.0 functions.
|
|
14
|
+
Dir[
|
|
15
|
+
File.join(
|
|
16
|
+
File.dirname(File.expand_path(__FILE__)),
|
|
17
|
+
'version1', 'functions', '*.rb')
|
|
18
|
+
].each do |path|
|
|
19
|
+
require_relative "version1/functions/#{File.basename(path)}"
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
module BELParser
|
|
23
|
+
module Language
|
|
24
|
+
module Version1
|
|
25
|
+
# Version1Specification defines the BEL, version 1.0 specification.
|
|
26
|
+
class Specification
|
|
27
|
+
include BELParser::Language::Specification
|
|
28
|
+
def initialize
|
|
29
|
+
# Establish functions
|
|
30
|
+
function_classes = Version1::Functions.constants.collect do |symbol|
|
|
31
|
+
const = Version1::Functions.const_get(symbol)
|
|
32
|
+
const if
|
|
33
|
+
const.respond_to?(:short) &&
|
|
34
|
+
const.respond_to?(:long)
|
|
35
|
+
end
|
|
36
|
+
@functions = function_classes.compact
|
|
37
|
+
@indexed_functions = index_functions(@functions)
|
|
38
|
+
|
|
39
|
+
# Establish return types
|
|
40
|
+
ret_classes = Version1::ReturnTypes.constants.collect do |symbol|
|
|
41
|
+
const = Version1::ReturnTypes.const_get(symbol)
|
|
42
|
+
const if const.respond_to?(:subtypes)
|
|
43
|
+
end
|
|
44
|
+
@return_types = ret_classes.compact
|
|
45
|
+
@indexed_return_types = index_return_types(@return_types)
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
end
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
require_relative '../../version1'
|
|
2
|
+
require_relative '../../function'
|
|
3
|
+
require_relative '../../signature'
|
|
4
|
+
require_relative '../../semantic_ast'
|
|
5
|
+
|
|
6
|
+
module BELParser
|
|
7
|
+
module Language
|
|
8
|
+
module Version1
|
|
9
|
+
module Functions
|
|
10
|
+
# Abundance: Denotes the abundance of an entity
|
|
11
|
+
class Abundance
|
|
12
|
+
extend Function
|
|
13
|
+
|
|
14
|
+
SHORT = :a
|
|
15
|
+
LONG = :abundance
|
|
16
|
+
RETURN_TYPE = BELParser::Language::Version1::ReturnTypes::Abundance
|
|
17
|
+
DESCRIPTION = 'Denotes the abundance of an entity'.freeze
|
|
18
|
+
|
|
19
|
+
def self.short
|
|
20
|
+
SHORT
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def self.long
|
|
24
|
+
LONG
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def self.return_type
|
|
28
|
+
RETURN_TYPE
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def self.description
|
|
32
|
+
DESCRIPTION
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def self.signatures
|
|
36
|
+
SIGNATURES
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
module Signatures
|
|
40
|
+
|
|
41
|
+
class AbundanceSignature
|
|
42
|
+
extend BELParser::Language::Signature
|
|
43
|
+
|
|
44
|
+
private_class_method :new
|
|
45
|
+
|
|
46
|
+
AST = BELParser::Language::Semantics::Builder.build do
|
|
47
|
+
term(
|
|
48
|
+
function(
|
|
49
|
+
identifier(
|
|
50
|
+
function_of(Abundance))),
|
|
51
|
+
argument(
|
|
52
|
+
parameter(
|
|
53
|
+
prefix(
|
|
54
|
+
identifier(
|
|
55
|
+
has_namespace,
|
|
56
|
+
namespace_of(:*))),
|
|
57
|
+
value(
|
|
58
|
+
value_type(
|
|
59
|
+
has_encoding,
|
|
60
|
+
encoding_of(:Abundance))))))
|
|
61
|
+
end
|
|
62
|
+
private_constant :AST
|
|
63
|
+
|
|
64
|
+
STRING_FORM = 'abundance(E:abundance)abundance'.freeze
|
|
65
|
+
private_constant :STRING_FORM
|
|
66
|
+
|
|
67
|
+
def self.semantic_ast
|
|
68
|
+
AST
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
def self.string_form
|
|
72
|
+
STRING_FORM
|
|
73
|
+
end
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
SIGNATURES = Signatures.constants.map do |const|
|
|
79
|
+
Signatures.const_get(const)
|
|
80
|
+
end.freeze
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
end
|
|
84
|
+
end
|
|
85
|
+
end
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
require_relative '../../version1'
|
|
2
|
+
require_relative '../../function'
|
|
3
|
+
require_relative '../../signature'
|
|
4
|
+
require_relative '../../semantic_ast'
|
|
5
|
+
|
|
6
|
+
module BELParser
|
|
7
|
+
module Language
|
|
8
|
+
module Version1
|
|
9
|
+
module Functions
|
|
10
|
+
# BiologicalProcess: Denotes a process or population of events
|
|
11
|
+
class BiologicalProcess
|
|
12
|
+
extend Function
|
|
13
|
+
|
|
14
|
+
SHORT = :bp
|
|
15
|
+
LONG = :biologicalProcess
|
|
16
|
+
RETURN_TYPE = BELParser::Language::Version1::ReturnTypes::BiologicalProcess
|
|
17
|
+
DESCRIPTION = 'Denotes a process or population of events'.freeze
|
|
18
|
+
|
|
19
|
+
def self.short
|
|
20
|
+
SHORT
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def self.long
|
|
24
|
+
LONG
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def self.return_type
|
|
28
|
+
RETURN_TYPE
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def self.description
|
|
32
|
+
DESCRIPTION
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def self.signatures
|
|
36
|
+
SIGNATURES
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
module Signatures
|
|
40
|
+
|
|
41
|
+
class BiologicalProcessSignature
|
|
42
|
+
extend BELParser::Language::Signature
|
|
43
|
+
|
|
44
|
+
private_class_method :new
|
|
45
|
+
|
|
46
|
+
AST = BELParser::Language::Semantics::Builder.build do
|
|
47
|
+
term(
|
|
48
|
+
function(
|
|
49
|
+
identifier(
|
|
50
|
+
function_of(BiologicalProcess))),
|
|
51
|
+
argument(
|
|
52
|
+
parameter(
|
|
53
|
+
prefix(
|
|
54
|
+
identifier(
|
|
55
|
+
has_namespace,
|
|
56
|
+
namespace_of(:*))),
|
|
57
|
+
value(
|
|
58
|
+
value_type(
|
|
59
|
+
has_encoding,
|
|
60
|
+
encoding_of(:BiologicalProcess))))))
|
|
61
|
+
end
|
|
62
|
+
private_constant :AST
|
|
63
|
+
|
|
64
|
+
STRING_FORM = 'biologicalProcess(E:biologicalProcess)biologicalProcess'.freeze
|
|
65
|
+
private_constant :STRING_FORM
|
|
66
|
+
|
|
67
|
+
def self.semantic_ast
|
|
68
|
+
AST
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
def self.string_form
|
|
72
|
+
STRING_FORM
|
|
73
|
+
end
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
SIGNATURES = Signatures.constants.map do |const|
|
|
79
|
+
Signatures.const_get(const)
|
|
80
|
+
end.freeze
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
end
|
|
84
|
+
end
|
|
85
|
+
end
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
require_relative '../../version1'
|
|
2
|
+
require_relative '../../function'
|
|
3
|
+
require_relative '../../signature'
|
|
4
|
+
require_relative '../../semantic_ast'
|
|
5
|
+
|
|
6
|
+
module BELParser
|
|
7
|
+
module Language
|
|
8
|
+
module Version1
|
|
9
|
+
module Functions
|
|
10
|
+
# CatalyticActivity: Denotes the frequency or abundance of events where a member acts as an enzymatic catalyst of biochecmial reactions
|
|
11
|
+
class CatalyticActivity
|
|
12
|
+
extend Function
|
|
13
|
+
|
|
14
|
+
SHORT = :cat
|
|
15
|
+
LONG = :catalyticActivity
|
|
16
|
+
RETURN_TYPE = BELParser::Language::Version1::ReturnTypes::CatalyticActivity
|
|
17
|
+
DESCRIPTION = 'Denotes the frequency or abundance of events where a member acts as an enzymatic catalyst of biochecmial reactions'.freeze
|
|
18
|
+
|
|
19
|
+
def self.short
|
|
20
|
+
SHORT
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def self.long
|
|
24
|
+
LONG
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def self.return_type
|
|
28
|
+
RETURN_TYPE
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def self.description
|
|
32
|
+
DESCRIPTION
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def self.signatures
|
|
36
|
+
SIGNATURES
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
module Signatures
|
|
40
|
+
|
|
41
|
+
class CatalyticActivityOfComplexAbundanceSignature
|
|
42
|
+
extend BELParser::Language::Signature
|
|
43
|
+
|
|
44
|
+
private_class_method :new
|
|
45
|
+
|
|
46
|
+
AST = BELParser::Language::Semantics::Builder.build do
|
|
47
|
+
term(
|
|
48
|
+
function(
|
|
49
|
+
identifier(
|
|
50
|
+
function_of(CatalyticActivity))),
|
|
51
|
+
argument(
|
|
52
|
+
term(
|
|
53
|
+
function(
|
|
54
|
+
identifier(
|
|
55
|
+
return_type_of(BELParser::Language::Version1::ReturnTypes::ComplexAbundance))))))
|
|
56
|
+
end
|
|
57
|
+
private_constant :AST
|
|
58
|
+
|
|
59
|
+
STRING_FORM = 'catalyticActivity(F:complexAbundance)catalyticActivity'.freeze
|
|
60
|
+
private_constant :STRING_FORM
|
|
61
|
+
|
|
62
|
+
def self.semantic_ast
|
|
63
|
+
AST
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
def self.string_form
|
|
67
|
+
STRING_FORM
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
class CatalyticActivityOfProteinAbundanceSignature
|
|
72
|
+
extend BELParser::Language::Signature
|
|
73
|
+
|
|
74
|
+
private_class_method :new
|
|
75
|
+
|
|
76
|
+
AST = BELParser::Language::Semantics::Builder.build do
|
|
77
|
+
term(
|
|
78
|
+
function(
|
|
79
|
+
identifier(
|
|
80
|
+
function_of(CatalyticActivity))),
|
|
81
|
+
argument(
|
|
82
|
+
term(
|
|
83
|
+
function(
|
|
84
|
+
identifier(
|
|
85
|
+
return_type_of(BELParser::Language::Version1::ReturnTypes::ProteinAbundance))))))
|
|
86
|
+
end
|
|
87
|
+
private_constant :AST
|
|
88
|
+
|
|
89
|
+
STRING_FORM = 'catalyticActivity(F:proteinAbundance)catalyticActivity'.freeze
|
|
90
|
+
private_constant :STRING_FORM
|
|
91
|
+
|
|
92
|
+
def self.semantic_ast
|
|
93
|
+
AST
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
def self.string_form
|
|
97
|
+
STRING_FORM
|
|
98
|
+
end
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
SIGNATURES = Signatures.constants.map do |const|
|
|
104
|
+
Signatures.const_get(const)
|
|
105
|
+
end.freeze
|
|
106
|
+
end
|
|
107
|
+
end
|
|
108
|
+
end
|
|
109
|
+
end
|
|
110
|
+
end
|