bel_parser 1.0.0.alpha.1 → 1.0.0.alpha.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gemspec +1 -1
- data/VERSION +1 -1
- data/bin/bel2_termcheck +2 -2
- data/lib/bel_parser/expression/term_semantics.rb +2 -2
- data/lib/bel_parser/language/expression_validator.rb +42 -0
- data/lib/bel_parser/language/function.rb +8 -0
- data/lib/bel_parser/language/relationship.rb +57 -0
- data/lib/bel_parser/language/{semantic_ast.rb → semantics/semantic_ast.rb} +5 -27
- data/lib/bel_parser/language/semantics/semantic_match.rb +28 -0
- data/lib/bel_parser/language/semantics.rb +2 -0
- data/lib/bel_parser/language/specification.rb +34 -10
- data/lib/bel_parser/language/syntax.rb +0 -0
- data/lib/bel_parser/language/{version1 → version1_0}/functions/abundance.rb +4 -4
- data/lib/bel_parser/language/{version1 → version1_0}/functions/biological_process.rb +4 -4
- data/lib/bel_parser/language/{version1 → version1_0}/functions/catalytic_activity.rb +6 -6
- data/lib/bel_parser/language/{version1 → version1_0}/functions/cell_secretion.rb +5 -5
- data/lib/bel_parser/language/{version1 → version1_0}/functions/cell_surface_expression.rb +5 -5
- data/lib/bel_parser/language/{version1 → version1_0}/functions/chaperone_activity.rb +6 -6
- data/lib/bel_parser/language/{version1 → version1_0}/functions/complex_abundance.rb +5 -5
- data/lib/bel_parser/language/{version1 → version1_0}/functions/composite_abundance.rb +5 -5
- data/lib/bel_parser/language/{version1 → version1_0}/functions/degradation.rb +5 -5
- data/lib/bel_parser/language/{version1 → version1_0}/functions/fusion.rb +4 -4
- data/lib/bel_parser/language/{version1 → version1_0}/functions/gene_abundance.rb +5 -5
- data/lib/bel_parser/language/{version1 → version1_0}/functions/gtp_bound_activity.rb +6 -6
- data/lib/bel_parser/language/{version1 → version1_0}/functions/kinase_activity.rb +6 -6
- data/lib/bel_parser/language/{version1 → version1_0}/functions/list.rb +5 -5
- data/lib/bel_parser/language/{version1 → version1_0}/functions/micro_rna_abundance.rb +4 -4
- data/lib/bel_parser/language/{version1 → version1_0}/functions/molecular_activity.rb +5 -5
- data/lib/bel_parser/language/{version2 → version1_0}/functions/pathology.rb +4 -4
- data/lib/bel_parser/language/{version1 → version1_0}/functions/peptidase_activity.rb +6 -6
- data/lib/bel_parser/language/{version1 → version1_0}/functions/phosphatase_activity.rb +6 -6
- data/lib/bel_parser/language/{version2 → version1_0}/functions/products.rb +5 -5
- data/lib/bel_parser/language/{version1 → version1_0}/functions/protein_abundance.rb +8 -8
- data/lib/bel_parser/language/{version1 → version1_0}/functions/protein_modification.rb +4 -4
- data/lib/bel_parser/language/{version2 → version1_0}/functions/reactants.rb +5 -5
- data/lib/bel_parser/language/{version1 → version1_0}/functions/reaction.rb +6 -6
- data/lib/bel_parser/language/{version1 → version1_0}/functions/ribosylation_activity.rb +6 -6
- data/lib/bel_parser/language/{version1 → version1_0}/functions/rna_abundance.rb +5 -5
- data/lib/bel_parser/language/{version1 → version1_0}/functions/substitution.rb +4 -4
- data/lib/bel_parser/language/{version1 → version1_0}/functions/transcriptional_activity.rb +6 -6
- data/lib/bel_parser/language/{version1 → version1_0}/functions/translocation.rb +5 -5
- data/lib/bel_parser/language/{version1 → version1_0}/functions/transport_activity.rb +6 -6
- data/lib/bel_parser/language/{version1 → version1_0}/functions/truncation.rb +4 -4
- data/lib/bel_parser/language/version1_0/relationships/acts_in.rb +31 -0
- data/lib/bel_parser/language/version1_0/relationships/analogous.rb +31 -0
- data/lib/bel_parser/language/version1_0/relationships/association.rb +31 -0
- data/lib/bel_parser/language/version1_0/relationships/biomarker_for.rb +31 -0
- data/lib/bel_parser/language/version1_0/relationships/causes_no_change.rb +31 -0
- data/lib/bel_parser/language/version1_0/relationships/decreases.rb +31 -0
- data/lib/bel_parser/language/version1_0/relationships/directly_decreases.rb +31 -0
- data/lib/bel_parser/language/version1_0/relationships/directly_increases.rb +31 -0
- data/lib/bel_parser/language/version1_0/relationships/has_component.rb +31 -0
- data/lib/bel_parser/language/version1_0/relationships/has_components.rb +31 -0
- data/lib/bel_parser/language/version1_0/relationships/has_member.rb +31 -0
- data/lib/bel_parser/language/version1_0/relationships/has_members.rb +31 -0
- data/lib/bel_parser/language/version1_0/relationships/has_modification.rb +31 -0
- data/lib/bel_parser/language/version1_0/relationships/has_product.rb +31 -0
- data/lib/bel_parser/language/version1_0/relationships/has_variant.rb +31 -0
- data/lib/bel_parser/language/version1_0/relationships/includes.rb +31 -0
- data/lib/bel_parser/language/version1_0/relationships/increases.rb +31 -0
- data/lib/bel_parser/language/version1_0/relationships/is_a.rb +31 -0
- data/lib/bel_parser/language/version1_0/relationships/negative_correlation.rb +31 -0
- data/lib/bel_parser/language/version1_0/relationships/orthologous.rb +31 -0
- data/lib/bel_parser/language/version1_0/relationships/positive_correlation.rb +31 -0
- data/lib/bel_parser/language/version1_0/relationships/prognostic_biomarker_for.rb +31 -0
- data/lib/bel_parser/language/version1_0/relationships/rate_limiting_step_of.rb +31 -0
- data/lib/bel_parser/language/version1_0/relationships/reactant_in.rb +31 -0
- data/lib/bel_parser/language/version1_0/relationships/sub_process_of.rb +31 -0
- data/lib/bel_parser/language/version1_0/relationships/transcribed_to.rb +31 -0
- data/lib/bel_parser/language/version1_0/relationships/translated_to.rb +31 -0
- data/lib/bel_parser/language/version1_0/relationships/translocates.rb +31 -0
- data/lib/bel_parser/language/{version2 → version1_0}/return_types/abundance.rb +1 -1
- data/lib/bel_parser/language/{version1 → version1_0}/return_types/any.rb +1 -1
- data/lib/bel_parser/language/{version1 → version1_0}/return_types/biological_process.rb +1 -1
- data/lib/bel_parser/language/{version1 → version1_0}/return_types/catalytic_activity.rb +1 -1
- data/lib/bel_parser/language/{version1 → version1_0}/return_types/chaperone_activity.rb +1 -1
- data/lib/bel_parser/language/{version2 → version1_0}/return_types/complex_abundance.rb +1 -1
- data/lib/bel_parser/language/{version1 → version1_0}/return_types/fusion.rb +1 -1
- data/lib/bel_parser/language/{version2 → version1_0}/return_types/gene_abundance.rb +1 -1
- data/lib/bel_parser/language/{version1 → version1_0}/return_types/gtp_bound_activity.rb +1 -1
- data/lib/bel_parser/language/{version1 → version1_0}/return_types/kinase_activity.rb +1 -1
- data/lib/bel_parser/language/{version1 → version1_0}/return_types/list.rb +1 -1
- data/lib/bel_parser/language/{version1 → version1_0}/return_types/micro_rna_abundance.rb +1 -1
- data/lib/bel_parser/language/{version1 → version1_0}/return_types/molecular_activity.rb +1 -1
- data/lib/bel_parser/language/{version1 → version1_0}/return_types/pathology.rb +1 -1
- data/lib/bel_parser/language/{version1 → version1_0}/return_types/peptidase_activity.rb +1 -1
- data/lib/bel_parser/language/{version1 → version1_0}/return_types/phosphatase_activity.rb +1 -1
- data/lib/bel_parser/language/{version2 → version1_0}/return_types/products.rb +1 -1
- data/lib/bel_parser/language/{version2 → version1_0}/return_types/protein_abundance.rb +1 -1
- data/lib/bel_parser/language/{version1 → version1_0}/return_types/protein_modification.rb +1 -1
- data/lib/bel_parser/language/{version2 → version1_0}/return_types/reactants.rb +1 -1
- data/lib/bel_parser/language/{version1 → version1_0}/return_types/ribosylation_activity.rb +1 -1
- data/lib/bel_parser/language/{version1 → version1_0}/return_types/rna_abundance.rb +1 -1
- data/lib/bel_parser/language/{version1 → version1_0}/return_types/substitution.rb +1 -1
- data/lib/bel_parser/language/{version1 → version1_0}/return_types/transcriptional_activity.rb +1 -1
- data/lib/bel_parser/language/{version1 → version1_0}/return_types/transport_activity.rb +1 -1
- data/lib/bel_parser/language/{version1 → version1_0}/return_types/truncation.rb +1 -1
- data/lib/bel_parser/language/version1_0/syntax/function.rb +29 -0
- data/lib/bel_parser/language/version1_0.rb +89 -0
- data/lib/bel_parser/language/{version2 → version2_0}/functions/abundance.rb +6 -6
- data/lib/bel_parser/language/{version2 → version2_0}/functions/activity.rb +7 -7
- data/lib/bel_parser/language/{version2 → version2_0}/functions/biological_process.rb +4 -4
- data/lib/bel_parser/language/{version2 → version2_0}/functions/cell_secretion.rb +5 -5
- data/lib/bel_parser/language/{version2 → version2_0}/functions/cell_surface_expression.rb +5 -5
- data/lib/bel_parser/language/{version2 → version2_0}/functions/complex_abundance.rb +8 -8
- data/lib/bel_parser/language/{version2 → version2_0}/functions/composite_abundance.rb +5 -5
- data/lib/bel_parser/language/{version2 → version2_0}/functions/degradation.rb +5 -5
- data/lib/bel_parser/language/{version2 → version2_0}/functions/fragment.rb +4 -4
- data/lib/bel_parser/language/{version2 → version2_0}/functions/from_location.rb +4 -4
- data/lib/bel_parser/language/{version2 → version2_0}/functions/fusion.rb +4 -4
- data/lib/bel_parser/language/{version2 → version2_0}/functions/gene_abundance.rb +7 -7
- data/lib/bel_parser/language/{version2 → version2_0}/functions/list.rb +5 -5
- data/lib/bel_parser/language/{version2 → version2_0}/functions/location.rb +4 -4
- data/lib/bel_parser/language/{version2 → version2_0}/functions/micro_rna_abundance.rb +6 -6
- data/lib/bel_parser/language/{version2 → version2_0}/functions/molecular_activity.rb +4 -4
- data/lib/bel_parser/language/{version1 → version2_0}/functions/pathology.rb +4 -4
- data/lib/bel_parser/language/{version1 → version2_0}/functions/products.rb +5 -5
- data/lib/bel_parser/language/{version2 → version2_0}/functions/protein_abundance.rb +9 -9
- data/lib/bel_parser/language/{version2 → version2_0}/functions/protein_modification.rb +7 -7
- data/lib/bel_parser/language/{version1 → version2_0}/functions/reactants.rb +5 -5
- data/lib/bel_parser/language/{version2 → version2_0}/functions/reaction.rb +6 -6
- data/lib/bel_parser/language/{version2 → version2_0}/functions/rna_abundance.rb +11 -11
- data/lib/bel_parser/language/{version2 → version2_0}/functions/to_location.rb +4 -4
- data/lib/bel_parser/language/{version2 → version2_0}/functions/translocation.rb +8 -8
- data/lib/bel_parser/language/{version2 → version2_0}/functions/variant.rb +4 -4
- data/lib/bel_parser/language/version2_0/relationships/acts_in.rb +31 -0
- data/lib/bel_parser/language/version2_0/relationships/analogous.rb +35 -0
- data/lib/bel_parser/language/version2_0/relationships/association.rb +31 -0
- data/lib/bel_parser/language/version2_0/relationships/biomarker_for.rb +35 -0
- data/lib/bel_parser/language/version2_0/relationships/causes_no_change.rb +31 -0
- data/lib/bel_parser/language/version2_0/relationships/decreases.rb +31 -0
- data/lib/bel_parser/language/version2_0/relationships/directly_decreases.rb +31 -0
- data/lib/bel_parser/language/version2_0/relationships/directly_increases.rb +31 -0
- data/lib/bel_parser/language/version2_0/relationships/has_component.rb +31 -0
- data/lib/bel_parser/language/version2_0/relationships/has_components.rb +31 -0
- data/lib/bel_parser/language/version2_0/relationships/has_member.rb +31 -0
- data/lib/bel_parser/language/version2_0/relationships/has_members.rb +31 -0
- data/lib/bel_parser/language/version2_0/relationships/has_modification.rb +31 -0
- data/lib/bel_parser/language/version2_0/relationships/has_product.rb +31 -0
- data/lib/bel_parser/language/version2_0/relationships/has_variant.rb +31 -0
- data/lib/bel_parser/language/version2_0/relationships/includes.rb +31 -0
- data/lib/bel_parser/language/version2_0/relationships/increases.rb +31 -0
- data/lib/bel_parser/language/version2_0/relationships/is_a.rb +31 -0
- data/lib/bel_parser/language/version2_0/relationships/negative_correlation.rb +31 -0
- data/lib/bel_parser/language/version2_0/relationships/orthologous.rb +31 -0
- data/lib/bel_parser/language/version2_0/relationships/positive_correlation.rb +31 -0
- data/lib/bel_parser/language/version2_0/relationships/prognostic_biomarker_for.rb +35 -0
- data/lib/bel_parser/language/version2_0/relationships/rate_limiting_step_of.rb +31 -0
- data/lib/bel_parser/language/version2_0/relationships/reactant_in.rb +31 -0
- data/lib/bel_parser/language/version2_0/relationships/regulates.rb +31 -0
- data/lib/bel_parser/language/version2_0/relationships/sub_process_of.rb +31 -0
- data/lib/bel_parser/language/version2_0/relationships/transcribed_to.rb +31 -0
- data/lib/bel_parser/language/version2_0/relationships/translated_to.rb +31 -0
- data/lib/bel_parser/language/version2_0/relationships/translocates.rb +31 -0
- data/lib/bel_parser/language/{version1 → version2_0}/return_types/abundance.rb +1 -1
- data/lib/bel_parser/language/{version2 → version2_0}/return_types/activity.rb +1 -1
- data/lib/bel_parser/language/{version2 → version2_0}/return_types/any.rb +1 -1
- data/lib/bel_parser/language/{version2 → version2_0}/return_types/biological_process.rb +1 -1
- data/lib/bel_parser/language/{version1 → version2_0}/return_types/complex_abundance.rb +1 -1
- data/lib/bel_parser/language/{version2 → version2_0}/return_types/fragment.rb +1 -1
- data/lib/bel_parser/language/{version2 → version2_0}/return_types/from_location.rb +1 -1
- data/lib/bel_parser/language/{version2 → version2_0}/return_types/fusion.rb +1 -1
- data/lib/bel_parser/language/{version1 → version2_0}/return_types/gene_abundance.rb +1 -1
- data/lib/bel_parser/language/{version2 → version2_0}/return_types/list.rb +1 -1
- data/lib/bel_parser/language/{version2 → version2_0}/return_types/location.rb +1 -1
- data/lib/bel_parser/language/{version2 → version2_0}/return_types/micro_rna_abundance.rb +1 -1
- data/lib/bel_parser/language/{version2 → version2_0}/return_types/molecular_activity.rb +1 -1
- data/lib/bel_parser/language/{version2 → version2_0}/return_types/pathology.rb +1 -1
- data/lib/bel_parser/language/{version1 → version2_0}/return_types/products.rb +1 -1
- data/lib/bel_parser/language/{version1 → version2_0}/return_types/protein_abundance.rb +1 -1
- data/lib/bel_parser/language/{version2 → version2_0}/return_types/protein_modification.rb +1 -1
- data/lib/bel_parser/language/{version1 → version2_0}/return_types/reactants.rb +1 -1
- data/lib/bel_parser/language/{version2 → version2_0}/return_types/rna_abundance.rb +1 -1
- data/lib/bel_parser/language/{version2 → version2_0}/return_types/to_location.rb +1 -1
- data/lib/bel_parser/language/{version2 → version2_0}/return_types/variant.rb +1 -1
- data/lib/bel_parser/language/version2_0.rb +73 -0
- data/lib/bel_parser/language.rb +90 -2
- data/lib/bel_parser/parsers/ast/node.rb +11 -1
- metadata +172 -111
- data/lib/bel_parser/language/syntax/expression/incomplete_node.rb +0 -14
- data/lib/bel_parser/language/syntax/expression/invalid_term_function.rb +0 -22
- data/lib/bel_parser/language/version1.rb +0 -50
- data/lib/bel_parser/language/version2.rb +0 -50
@@ -1,11 +1,11 @@
|
|
1
|
-
require_relative '../../
|
1
|
+
require_relative '../../version1_0'
|
2
2
|
require_relative '../../function'
|
3
3
|
require_relative '../../signature'
|
4
|
-
require_relative '../../
|
4
|
+
require_relative '../../semantics'
|
5
5
|
|
6
6
|
module BELParser
|
7
7
|
module Language
|
8
|
-
module
|
8
|
+
module Version1_0
|
9
9
|
module Functions
|
10
10
|
# Translocation: Denotes the frequency or abundance of events in which members move between locations
|
11
11
|
class Translocation
|
@@ -13,7 +13,7 @@ module BELParser
|
|
13
13
|
|
14
14
|
SHORT = :tloc
|
15
15
|
LONG = :translocation
|
16
|
-
RETURN_TYPE = BELParser::Language::
|
16
|
+
RETURN_TYPE = BELParser::Language::Version1_0::ReturnTypes::Abundance
|
17
17
|
DESCRIPTION = 'Denotes the frequency or abundance of events in which members move between locations'.freeze
|
18
18
|
|
19
19
|
def self.short
|
@@ -52,7 +52,7 @@ module BELParser
|
|
52
52
|
term(
|
53
53
|
function(
|
54
54
|
identifier(
|
55
|
-
return_type_of(BELParser::Language::
|
55
|
+
return_type_of(BELParser::Language::Version1_0::ReturnTypes::Abundance))))),
|
56
56
|
argument(
|
57
57
|
parameter(
|
58
58
|
prefix(
|
@@ -1,11 +1,11 @@
|
|
1
|
-
require_relative '../../
|
1
|
+
require_relative '../../version1_0'
|
2
2
|
require_relative '../../function'
|
3
3
|
require_relative '../../signature'
|
4
|
-
require_relative '../../
|
4
|
+
require_relative '../../semantics'
|
5
5
|
|
6
6
|
module BELParser
|
7
7
|
module Language
|
8
|
-
module
|
8
|
+
module Version1_0
|
9
9
|
module Functions
|
10
10
|
# TransportActivity: 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
|
11
11
|
class TransportActivity
|
@@ -13,7 +13,7 @@ module BELParser
|
|
13
13
|
|
14
14
|
SHORT = :tport
|
15
15
|
LONG = :transportActivity
|
16
|
-
RETURN_TYPE = BELParser::Language::
|
16
|
+
RETURN_TYPE = BELParser::Language::Version1_0::ReturnTypes::TransportActivity
|
17
17
|
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'.freeze
|
18
18
|
|
19
19
|
def self.short
|
@@ -52,7 +52,7 @@ module BELParser
|
|
52
52
|
term(
|
53
53
|
function(
|
54
54
|
identifier(
|
55
|
-
return_type_of(BELParser::Language::
|
55
|
+
return_type_of(BELParser::Language::Version1_0::ReturnTypes::ComplexAbundance))))))
|
56
56
|
end
|
57
57
|
private_constant :AST
|
58
58
|
|
@@ -82,7 +82,7 @@ module BELParser
|
|
82
82
|
term(
|
83
83
|
function(
|
84
84
|
identifier(
|
85
|
-
return_type_of(BELParser::Language::
|
85
|
+
return_type_of(BELParser::Language::Version1_0::ReturnTypes::ProteinAbundance))))))
|
86
86
|
end
|
87
87
|
private_constant :AST
|
88
88
|
|
@@ -1,11 +1,11 @@
|
|
1
|
-
require_relative '../../
|
1
|
+
require_relative '../../version1_0'
|
2
2
|
require_relative '../../function'
|
3
3
|
require_relative '../../signature'
|
4
|
-
require_relative '../../
|
4
|
+
require_relative '../../semantics'
|
5
5
|
|
6
6
|
module BELParser
|
7
7
|
module Language
|
8
|
-
module
|
8
|
+
module Version1_0
|
9
9
|
module Functions
|
10
10
|
# Truncation: Indicates an abundance of proteins with truncation sequence variants
|
11
11
|
class Truncation
|
@@ -13,7 +13,7 @@ module BELParser
|
|
13
13
|
|
14
14
|
SHORT = :trunc
|
15
15
|
LONG = :truncation
|
16
|
-
RETURN_TYPE = BELParser::Language::
|
16
|
+
RETURN_TYPE = BELParser::Language::Version1_0::ReturnTypes::Truncation
|
17
17
|
DESCRIPTION = 'Indicates an abundance of proteins with truncation sequence variants'.freeze
|
18
18
|
|
19
19
|
def self.short
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require_relative '../../version1_0'
|
2
|
+
require_relative '../../relationship'
|
3
|
+
|
4
|
+
module BELParser
|
5
|
+
module Language
|
6
|
+
module Version1_0
|
7
|
+
module Relationships
|
8
|
+
# ActsIn: +A actsIn f(A)+ - This relationship links an abundance term to the activity term for the same abundance. This relationship is direct because it is a _self_ relationship, the abundance acts in its own activity. For protein abundance p(A) and its molecular activity kin(p(A), +p(A) actsIn kin(p(A))+. This relationship is introduced by the BEL Compiler and may not be used by statements in BEL documents.
|
9
|
+
class ActsIn
|
10
|
+
extend Relationship
|
11
|
+
|
12
|
+
SHORT = :actsIn
|
13
|
+
LONG = :actsIn
|
14
|
+
DESCRIPTION = ' +A actsIn f(A)+ - This relationship links an abundance term to the activity term for the same abundance. This relationship is direct because it is a _self_ relationship, the abundance acts in its own activity. For protein abundance p(A) and its molecular activity kin(p(A), +p(A) actsIn kin(p(A))+. This relationship is introduced by the BEL Compiler and may not be used by statements in BEL documents.'.freeze
|
15
|
+
|
16
|
+
def self.short
|
17
|
+
SHORT
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.long
|
21
|
+
LONG
|
22
|
+
end
|
23
|
+
|
24
|
+
def self.description
|
25
|
+
DESCRIPTION
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require_relative '../../version1_0'
|
2
|
+
require_relative '../../relationship'
|
3
|
+
|
4
|
+
module BELParser
|
5
|
+
module Language
|
6
|
+
module Version1_0
|
7
|
+
module Relationships
|
8
|
+
# Analogous: +A analogous B+ - For terms A and B, +A analogousTo B+ indicates that A and B represent abundances or molecular activities in different species which function in a similar manner.
|
9
|
+
class Analogous
|
10
|
+
extend Relationship
|
11
|
+
|
12
|
+
SHORT = :analogous
|
13
|
+
LONG = :analogous
|
14
|
+
DESCRIPTION = ' +A analogous B+ - For terms A and B, +A analogousTo B+ indicates that A and B represent abundances or molecular activities in different species which function in a similar manner.'.freeze
|
15
|
+
|
16
|
+
def self.short
|
17
|
+
SHORT
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.long
|
21
|
+
LONG
|
22
|
+
end
|
23
|
+
|
24
|
+
def self.description
|
25
|
+
DESCRIPTION
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require_relative '../../version1_0'
|
2
|
+
require_relative '../../relationship'
|
3
|
+
|
4
|
+
module BELParser
|
5
|
+
module Language
|
6
|
+
module Version1_0
|
7
|
+
module Relationships
|
8
|
+
# Association: +A -- B+ - For terms A and B, +A association B+ or +A -- B+ indicates that A and B are associated in an unspecified manner. This relationship is used when not enough information about the association is available to describe it using more specific relationships, like increases or positiveCorrelation.
|
9
|
+
class Association
|
10
|
+
extend Relationship
|
11
|
+
|
12
|
+
SHORT = :'--'
|
13
|
+
LONG = :association
|
14
|
+
DESCRIPTION = ' +A -- B+ - For terms A and B, +A association B+ or +A -- B+ indicates that A and B are associated in an unspecified manner. This relationship is used when not enough information about the association is available to describe it using more specific relationships, like increases or positiveCorrelation.'.freeze
|
15
|
+
|
16
|
+
def self.short
|
17
|
+
SHORT
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.long
|
21
|
+
LONG
|
22
|
+
end
|
23
|
+
|
24
|
+
def self.description
|
25
|
+
DESCRIPTION
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require_relative '../../version1_0'
|
2
|
+
require_relative '../../relationship'
|
3
|
+
|
4
|
+
module BELParser
|
5
|
+
module Language
|
6
|
+
module Version1_0
|
7
|
+
module Relationships
|
8
|
+
# BiomarkerFor: +A biomarkerFor P+ - For term A and process term P, +A biomarkerFor P+ indicates that changes in or detection of A is used in some way to be a biomarker for pathology or biological process P.
|
9
|
+
class BiomarkerFor
|
10
|
+
extend Relationship
|
11
|
+
|
12
|
+
SHORT = :biomarkerFor
|
13
|
+
LONG = :biomarkerFor
|
14
|
+
DESCRIPTION = ' +A biomarkerFor P+ - For term A and process term P, +A biomarkerFor P+ indicates that changes in or detection of A is used in some way to be a biomarker for pathology or biological process P.'.freeze
|
15
|
+
|
16
|
+
def self.short
|
17
|
+
SHORT
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.long
|
21
|
+
LONG
|
22
|
+
end
|
23
|
+
|
24
|
+
def self.description
|
25
|
+
DESCRIPTION
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require_relative '../../version1_0'
|
2
|
+
require_relative '../../relationship'
|
3
|
+
|
4
|
+
module BELParser
|
5
|
+
module Language
|
6
|
+
module Version1_0
|
7
|
+
module Relationships
|
8
|
+
# CausesNoChange: +A causesNoChange B+ - For terms A and B, +A causesNoChange B+ indicates that B was observed not to change in response to changes in A. Statements using this relationship correspond to cases where explicit measurement of B demonstrates lack of significant change, not for cases where the state of B is unknown.
|
9
|
+
class CausesNoChange
|
10
|
+
extend Relationship
|
11
|
+
|
12
|
+
SHORT = :causesNoChange
|
13
|
+
LONG = :causesNoChange
|
14
|
+
DESCRIPTION = ' +A causesNoChange B+ - For terms A and B, +A causesNoChange B+ indicates that B was observed not to change in response to changes in A. Statements using this relationship correspond to cases where explicit measurement of B demonstrates lack of significant change, not for cases where the state of B is unknown.'.freeze
|
15
|
+
|
16
|
+
def self.short
|
17
|
+
SHORT
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.long
|
21
|
+
LONG
|
22
|
+
end
|
23
|
+
|
24
|
+
def self.description
|
25
|
+
DESCRIPTION
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require_relative '../../version1_0'
|
2
|
+
require_relative '../../relationship'
|
3
|
+
|
4
|
+
module BELParser
|
5
|
+
module Language
|
6
|
+
module Version1_0
|
7
|
+
module Relationships
|
8
|
+
# Decreases: +A -| B+ - For terms A and B, +A decreases B or A -| B+ indicates that increases in A have been observed to cause decreases in B. +A decreases B+ also represents cases where decreases in A have been observed to cause increases in B, for example, in recording the results of gene deletion or other inhibition experiments. A is a BEL Term and B is either a BEL Term or a BEL Statement. The relationship does not indicate that the changes in A are either necessary for changes in B, nor does it indicate that changes in A are sufficient to cause changes in B.
|
9
|
+
class Decreases
|
10
|
+
extend Relationship
|
11
|
+
|
12
|
+
SHORT = :'-|'
|
13
|
+
LONG = :decreases
|
14
|
+
DESCRIPTION = ' +A -| B+ - For terms A and B, +A decreases B or A -| B+ indicates that increases in A have been observed to cause decreases in B. +A decreases B+ also represents cases where decreases in A have been observed to cause increases in B, for example, in recording the results of gene deletion or other inhibition experiments. A is a BEL Term and B is either a BEL Term or a BEL Statement. The relationship does not indicate that the changes in A are either necessary for changes in B, nor does it indicate that changes in A are sufficient to cause changes in B.'.freeze
|
15
|
+
|
16
|
+
def self.short
|
17
|
+
SHORT
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.long
|
21
|
+
LONG
|
22
|
+
end
|
23
|
+
|
24
|
+
def self.description
|
25
|
+
DESCRIPTION
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require_relative '../../version1_0'
|
2
|
+
require_relative '../../relationship'
|
3
|
+
|
4
|
+
module BELParser
|
5
|
+
module Language
|
6
|
+
module Version1_0
|
7
|
+
module Relationships
|
8
|
+
# DirectlyDecreases: +A =| B+ - For terms A and B, +A directlyDecreases B or A =| B+ indicates A decreases B and that the mechanism of the causal relationship is based on physical interaction of entities related to A and B. This is a direct version of the decreases relationship.
|
9
|
+
class DirectlyDecreases
|
10
|
+
extend Relationship
|
11
|
+
|
12
|
+
SHORT = :'=|'
|
13
|
+
LONG = :directlyDecreases
|
14
|
+
DESCRIPTION = ' +A =| B+ - For terms A and B, +A directlyDecreases B or A =| B+ indicates A decreases B and that the mechanism of the causal relationship is based on physical interaction of entities related to A and B. This is a direct version of the decreases relationship.'.freeze
|
15
|
+
|
16
|
+
def self.short
|
17
|
+
SHORT
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.long
|
21
|
+
LONG
|
22
|
+
end
|
23
|
+
|
24
|
+
def self.description
|
25
|
+
DESCRIPTION
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require_relative '../../version1_0'
|
2
|
+
require_relative '../../relationship'
|
3
|
+
|
4
|
+
module BELParser
|
5
|
+
module Language
|
6
|
+
module Version1_0
|
7
|
+
module Relationships
|
8
|
+
# DirectlyIncreases: +A => B+ - For terms A and B, +A directlyIncreases B or A => B+ indicate A increases B and that the mechanism of the causal relationship is based on physical interaction of entities related to A and B. This is a direct version of the increases relationship.
|
9
|
+
class DirectlyIncreases
|
10
|
+
extend Relationship
|
11
|
+
|
12
|
+
SHORT = :'=>'
|
13
|
+
LONG = :directlyIncreases
|
14
|
+
DESCRIPTION = ' +A => B+ - For terms A and B, +A directlyIncreases B or A => B+ indicate A increases B and that the mechanism of the causal relationship is based on physical interaction of entities related to A and B. This is a direct version of the increases relationship.'.freeze
|
15
|
+
|
16
|
+
def self.short
|
17
|
+
SHORT
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.long
|
21
|
+
LONG
|
22
|
+
end
|
23
|
+
|
24
|
+
def self.description
|
25
|
+
DESCRIPTION
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require_relative '../../version1_0'
|
2
|
+
require_relative '../../relationship'
|
3
|
+
|
4
|
+
module BELParser
|
5
|
+
module Language
|
6
|
+
module Version1_0
|
7
|
+
module Relationships
|
8
|
+
# HasComponent: +A hasComponent A1+ - For complexAbundance term A and abundance term B, +A hasComponent B+ designates B as a component of A, that complexes that are instances of A have instances of B as possible components. Note that, the stoichiometry of A is not described, nor is it stated that B is a required component. The use of hasComponent relationships is complementary to the use of functionally composed complexes and is intended to enable the assignment of components to complexes designated by names in external vocabularies. The assignment of components can potentially enable the reconciliation of equivalent complexes at knowledge assembly time.
|
9
|
+
class HasComponent
|
10
|
+
extend Relationship
|
11
|
+
|
12
|
+
SHORT = :hasComponent
|
13
|
+
LONG = :hasComponent
|
14
|
+
DESCRIPTION = ' +A hasComponent A1+ - For complexAbundance term A and abundance term B, +A hasComponent B+ designates B as a component of A, that complexes that are instances of A have instances of B as possible components. Note that, the stoichiometry of A is not described, nor is it stated that B is a required component. The use of hasComponent relationships is complementary to the use of functionally composed complexes and is intended to enable the assignment of components to complexes designated by names in external vocabularies. The assignment of components can potentially enable the reconciliation of equivalent complexes at knowledge assembly time.'.freeze
|
15
|
+
|
16
|
+
def self.short
|
17
|
+
SHORT
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.long
|
21
|
+
LONG
|
22
|
+
end
|
23
|
+
|
24
|
+
def self.description
|
25
|
+
DESCRIPTION
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require_relative '../../version1_0'
|
2
|
+
require_relative '../../relationship'
|
3
|
+
|
4
|
+
module BELParser
|
5
|
+
module Language
|
6
|
+
module Version1_0
|
7
|
+
module Relationships
|
8
|
+
# HasComponents: +A hasComponents (B, C, D)+ - The hasComponents relationship is a special form which enables the assignment of multiple complex components in a single statement where the object of the statement is a set of abundance terms. A statement using hasComponents is exactly equivalent to multiple hasComponent statements. A term may not appear in both the subject and object of the same hasComponents statement. For the abundance terms A, B, C and D, +A hasComponents B, C, D+ indicates that A has components B, C and D.
|
9
|
+
class HasComponents
|
10
|
+
extend Relationship
|
11
|
+
|
12
|
+
SHORT = :hasComponents
|
13
|
+
LONG = :hasComponents
|
14
|
+
DESCRIPTION = ' +A hasComponents (B, C, D)+ - The hasComponents relationship is a special form which enables the assignment of multiple complex components in a single statement where the object of the statement is a set of abundance terms. A statement using hasComponents is exactly equivalent to multiple hasComponent statements. A term may not appear in both the subject and object of the same hasComponents statement. For the abundance terms A, B, C and D, +A hasComponents B, C, D+ indicates that A has components B, C and D.'.freeze
|
15
|
+
|
16
|
+
def self.short
|
17
|
+
SHORT
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.long
|
21
|
+
LONG
|
22
|
+
end
|
23
|
+
|
24
|
+
def self.description
|
25
|
+
DESCRIPTION
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require_relative '../../version1_0'
|
2
|
+
require_relative '../../relationship'
|
3
|
+
|
4
|
+
module BELParser
|
5
|
+
module Language
|
6
|
+
module Version1_0
|
7
|
+
module Relationships
|
8
|
+
# HasMember: +A hasMember A1+ - For term abundances A and B, +A hasMember B+ designates B as a member class of A. A member class is a distinguished sub-class. A is defined as a group by all of the members assigned to it. The member classes may or may not be overlapping and may or may not entirely cover all instances of A. A term may not appear in both the subject and object of the same hasMember statement.
|
9
|
+
class HasMember
|
10
|
+
extend Relationship
|
11
|
+
|
12
|
+
SHORT = :hasMember
|
13
|
+
LONG = :hasMember
|
14
|
+
DESCRIPTION = ' +A hasMember A1+ - For term abundances A and B, +A hasMember B+ designates B as a member class of A. A member class is a distinguished sub-class. A is defined as a group by all of the members assigned to it. The member classes may or may not be overlapping and may or may not entirely cover all instances of A. A term may not appear in both the subject and object of the same hasMember statement.'.freeze
|
15
|
+
|
16
|
+
def self.short
|
17
|
+
SHORT
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.long
|
21
|
+
LONG
|
22
|
+
end
|
23
|
+
|
24
|
+
def self.description
|
25
|
+
DESCRIPTION
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require_relative '../../version1_0'
|
2
|
+
require_relative '../../relationship'
|
3
|
+
|
4
|
+
module BELParser
|
5
|
+
module Language
|
6
|
+
module Version1_0
|
7
|
+
module Relationships
|
8
|
+
# HasMembers: +A hasMembers (B, C, D)+ - The hasMembers relationship is a special form which enables the assignment of multiple member classes in a single statement where the object of the statement is a set of abundance terms. A statement using hasMembers is exactly equivalent to multiple hasMember statements. A term may not appear in both the subject and object of a of the same hasMembers statement. For the abundance terms A, B, C and D, +A hasMembers B, C, D+ indicates that A is defined by its member abundance classes B, C and D.
|
9
|
+
class HasMembers
|
10
|
+
extend Relationship
|
11
|
+
|
12
|
+
SHORT = :hasMembers
|
13
|
+
LONG = :hasMembers
|
14
|
+
DESCRIPTION = ' +A hasMembers (B, C, D)+ - The hasMembers relationship is a special form which enables the assignment of multiple member classes in a single statement where the object of the statement is a set of abundance terms. A statement using hasMembers is exactly equivalent to multiple hasMember statements. A term may not appear in both the subject and object of a of the same hasMembers statement. For the abundance terms A, B, C and D, +A hasMembers B, C, D+ indicates that A is defined by its member abundance classes B, C and D.'.freeze
|
15
|
+
|
16
|
+
def self.short
|
17
|
+
SHORT
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.long
|
21
|
+
LONG
|
22
|
+
end
|
23
|
+
|
24
|
+
def self.description
|
25
|
+
DESCRIPTION
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require_relative '../../version1_0'
|
2
|
+
require_relative '../../relationship'
|
3
|
+
|
4
|
+
module BELParser
|
5
|
+
module Language
|
6
|
+
module Version1_0
|
7
|
+
module Relationships
|
8
|
+
# HasModification: +p(A) hasModification p(A, pmod(P, S, 473))+ - This relationship links abundance terms modified by the +pmod()+ function to the unmodified abundance term. This is a direct relationship because it is a _self_ relationship. This relationship is introduced by the BEL Compiler and may not be used by statements in BEL documents.
|
9
|
+
class HasModification
|
10
|
+
extend Relationship
|
11
|
+
|
12
|
+
SHORT = :hasModification
|
13
|
+
LONG = :hasModification
|
14
|
+
DESCRIPTION = ' +p(A) hasModification p(A, pmod(P, S, 473))+ - This relationship links abundance terms modified by the +pmod()+ function to the unmodified abundance term. This is a direct relationship because it is a _self_ relationship. This relationship is introduced by the BEL Compiler and may not be used by statements in BEL documents.'.freeze
|
15
|
+
|
16
|
+
def self.short
|
17
|
+
SHORT
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.long
|
21
|
+
LONG
|
22
|
+
end
|
23
|
+
|
24
|
+
def self.description
|
25
|
+
DESCRIPTION
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require_relative '../../version1_0'
|
2
|
+
require_relative '../../relationship'
|
3
|
+
|
4
|
+
module BELParser
|
5
|
+
module Language
|
6
|
+
module Version1_0
|
7
|
+
module Relationships
|
8
|
+
# HasProduct: +reaction(reactants(A), products(B)) hasProduct B+ - This relationship links abundance terms from the +products(<list>)+ in a reaction to the reaction. This is a direct relationship because it is a _self_ relationship. Products are produced directly by a reaction. This relationship is introduced by the BEL Compiler and may not be used by statements in BEL documents.
|
9
|
+
class HasProduct
|
10
|
+
extend Relationship
|
11
|
+
|
12
|
+
SHORT = :hasProduct
|
13
|
+
LONG = :hasProduct
|
14
|
+
DESCRIPTION = ' +reaction(reactants(A), products(B)) hasProduct B+ - This relationship links abundance terms from the +products(<list>)+ in a reaction to the reaction. This is a direct relationship because it is a _self_ relationship. Products are produced directly by a reaction. This relationship is introduced by the BEL Compiler and may not be used by statements in BEL documents.'.freeze
|
15
|
+
|
16
|
+
def self.short
|
17
|
+
SHORT
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.long
|
21
|
+
LONG
|
22
|
+
end
|
23
|
+
|
24
|
+
def self.description
|
25
|
+
DESCRIPTION
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require_relative '../../version1_0'
|
2
|
+
require_relative '../../relationship'
|
3
|
+
|
4
|
+
module BELParser
|
5
|
+
module Language
|
6
|
+
module Version1_0
|
7
|
+
module Relationships
|
8
|
+
# HasVariant: +p(A) hasVariant p(A, sub(G, 12, V))+ - This relationship links abundance terms modified by the +substitution()+, +fusion()+, or +truncation()+ functions to the unmodified abundance term. This relationship is introduced by the BEL Compiler and does not need to be used by statements in BEL documents.
|
9
|
+
class HasVariant
|
10
|
+
extend Relationship
|
11
|
+
|
12
|
+
SHORT = :hasVariant
|
13
|
+
LONG = :hasVariant
|
14
|
+
DESCRIPTION = ' +p(A) hasVariant p(A, sub(G, 12, V))+ - This relationship links abundance terms modified by the +substitution()+, +fusion()+, or +truncation()+ functions to the unmodified abundance term. This relationship is introduced by the BEL Compiler and does not need to be used by statements in BEL documents.'.freeze
|
15
|
+
|
16
|
+
def self.short
|
17
|
+
SHORT
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.long
|
21
|
+
LONG
|
22
|
+
end
|
23
|
+
|
24
|
+
def self.description
|
25
|
+
DESCRIPTION
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require_relative '../../version1_0'
|
2
|
+
require_relative '../../relationship'
|
3
|
+
|
4
|
+
module BELParser
|
5
|
+
module Language
|
6
|
+
module Version1_0
|
7
|
+
module Relationships
|
8
|
+
# Includes: +compositeAbundance(A,B) includes A+ - This relationship links each individual abundance term in a +compositeAbundance(<list>)+ to the compositeAbundance. For example, +compositeAbundance(A, B) includes A+ and +compositeAbundance(A, B) includes B+. This relationship is direct because it is a _self_ relationship. This relationship is introduced by the BEL Compiler and may not be used by statements in BEL documents.
|
9
|
+
class Includes
|
10
|
+
extend Relationship
|
11
|
+
|
12
|
+
SHORT = :includes
|
13
|
+
LONG = :includes
|
14
|
+
DESCRIPTION = ' +compositeAbundance(A,B) includes A+ - This relationship links each individual abundance term in a +compositeAbundance(<list>)+ to the compositeAbundance. For example, +compositeAbundance(A, B) includes A+ and +compositeAbundance(A, B) includes B+. This relationship is direct because it is a _self_ relationship. This relationship is introduced by the BEL Compiler and may not be used by statements in BEL documents.'.freeze
|
15
|
+
|
16
|
+
def self.short
|
17
|
+
SHORT
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.long
|
21
|
+
LONG
|
22
|
+
end
|
23
|
+
|
24
|
+
def self.description
|
25
|
+
DESCRIPTION
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require_relative '../../version1_0'
|
2
|
+
require_relative '../../relationship'
|
3
|
+
|
4
|
+
module BELParser
|
5
|
+
module Language
|
6
|
+
module Version1_0
|
7
|
+
module Relationships
|
8
|
+
# Increases: +A -> B+ - For terms A and B, +A increases B or A -> B+ indicates that increases in A have been observed to cause increases in B. +A increases B+ also represents cases where decreases in A have been observed to cause decreases in B, for example, in recording the results of gene deletion or other inhibition experiments. A is a BEL Term and B is either a BEL Term or a BEL Statement. The relationship does not indicate that the changes in A are either necessary for changes in B, nor does it indicate that changes in A are sufficient to cause changes in B.
|
9
|
+
class Increases
|
10
|
+
extend Relationship
|
11
|
+
|
12
|
+
SHORT = :'->'
|
13
|
+
LONG = :increases
|
14
|
+
DESCRIPTION = ' +A -> B+ - For terms A and B, +A increases B or A -> B+ indicates that increases in A have been observed to cause increases in B. +A increases B+ also represents cases where decreases in A have been observed to cause decreases in B, for example, in recording the results of gene deletion or other inhibition experiments. A is a BEL Term and B is either a BEL Term or a BEL Statement. The relationship does not indicate that the changes in A are either necessary for changes in B, nor does it indicate that changes in A are sufficient to cause changes in B.'.freeze
|
15
|
+
|
16
|
+
def self.short
|
17
|
+
SHORT
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.long
|
21
|
+
LONG
|
22
|
+
end
|
23
|
+
|
24
|
+
def self.description
|
25
|
+
DESCRIPTION
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|