bel_parser 1.0.8 → 1.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (112) hide show
  1. checksums.yaml +4 -4
  2. data/.gemspec +12 -2
  3. data/VERSION +1 -1
  4. data/bin/bel2_compatibility +12 -9
  5. data/bin/bel2_upgrade +18 -6
  6. data/bin/bel2_validator +6 -3
  7. data/bin/bel_script_reader +1 -0
  8. data/lib/bel_parser/completion.rb +984 -0
  9. data/lib/bel_parser/language/apply_namespace_encoding.rb +14 -3
  10. data/lib/bel_parser/language/expression_validator.rb +1 -2
  11. data/lib/bel_parser/language/function.rb +4 -0
  12. data/lib/bel_parser/language/relationship.rb +4 -0
  13. data/lib/bel_parser/language/semantics/function_deprecation.rb +1 -0
  14. data/lib/bel_parser/language/semantics/list_function_subject.rb +2 -0
  15. data/lib/bel_parser/language/semantics/multiple_subject_object.rb +4 -1
  16. data/lib/bel_parser/language/semantics/nested_statement_without_object.rb +43 -0
  17. data/lib/bel_parser/language/semantics/non_object_list.rb +3 -0
  18. data/lib/bel_parser/language/semantics/relationship_not_listable.rb +2 -0
  19. data/lib/bel_parser/language/semantics/signature_mapping.rb +2 -0
  20. data/lib/bel_parser/language/semantics_ast.rb +0 -7
  21. data/lib/bel_parser/language/syntax/invalid_function.rb +6 -1
  22. data/lib/bel_parser/language/syntax/invalid_relationship.rb +1 -0
  23. data/lib/bel_parser/language/version1_0/relationships/acts_in.rb +9 -9
  24. data/lib/bel_parser/language/version1_0/relationships/analogous.rb +6 -4
  25. data/lib/bel_parser/language/version1_0/relationships/association.rb +8 -7
  26. data/lib/bel_parser/language/version1_0/relationships/biomarker_for.rb +6 -5
  27. data/lib/bel_parser/language/version1_0/relationships/causes_no_change.rb +8 -7
  28. data/lib/bel_parser/language/version1_0/relationships/decreases.rb +13 -12
  29. data/lib/bel_parser/language/version1_0/relationships/directly_decreases.rb +8 -6
  30. data/lib/bel_parser/language/version1_0/relationships/directly_increases.rb +8 -6
  31. data/lib/bel_parser/language/version1_0/relationships/has_component.rb +14 -14
  32. data/lib/bel_parser/language/version1_0/relationships/has_components.rb +12 -11
  33. data/lib/bel_parser/language/version1_0/relationships/has_member.rb +10 -8
  34. data/lib/bel_parser/language/version1_0/relationships/has_members.rb +12 -11
  35. data/lib/bel_parser/language/version1_0/relationships/has_modification.rb +9 -7
  36. data/lib/bel_parser/language/version1_0/relationships/has_product.rb +10 -8
  37. data/lib/bel_parser/language/version1_0/relationships/has_variant.rb +9 -7
  38. data/lib/bel_parser/language/version1_0/relationships/includes.rb +11 -10
  39. data/lib/bel_parser/language/version1_0/relationships/increases.rb +12 -13
  40. data/lib/bel_parser/language/version1_0/relationships/is_a.rb +10 -8
  41. data/lib/bel_parser/language/version1_0/relationships/negative_correlation.rb +9 -7
  42. data/lib/bel_parser/language/version1_0/relationships/orthologous.rb +9 -8
  43. data/lib/bel_parser/language/version1_0/relationships/positive_correlation.rb +8 -5
  44. data/lib/bel_parser/language/version1_0/relationships/prognostic_biomarker_for.rb +8 -6
  45. data/lib/bel_parser/language/version1_0/relationships/rate_limiting_step_of.rb +10 -9
  46. data/lib/bel_parser/language/version1_0/relationships/reactant_in.rb +10 -8
  47. data/lib/bel_parser/language/version1_0/relationships/sub_process_of.rb +13 -12
  48. data/lib/bel_parser/language/version1_0/relationships/transcribed_to.rb +8 -7
  49. data/lib/bel_parser/language/version1_0/relationships/translated_to.rb +9 -7
  50. data/lib/bel_parser/language/version1_0/relationships/translocates.rb +10 -9
  51. data/lib/bel_parser/language/version2_0/functions/protein_modification.rb +1 -2
  52. data/lib/bel_parser/language/version2_0/functions/translocation.rb +1 -2
  53. data/lib/bel_parser/language/version2_0/functions/variant.rb +1 -2
  54. data/lib/bel_parser/language/version2_0/relationships/acts_in.rb +10 -9
  55. data/lib/bel_parser/language/version2_0/relationships/biomarker_for.rb +7 -5
  56. data/lib/bel_parser/language/version2_0/relationships/causes_no_change.rb +9 -7
  57. data/lib/bel_parser/language/version2_0/relationships/decreases.rb +13 -12
  58. data/lib/bel_parser/language/version2_0/relationships/directly_decreases.rb +8 -6
  59. data/lib/bel_parser/language/version2_0/relationships/directly_increases.rb +8 -6
  60. data/lib/bel_parser/language/version2_0/relationships/has_component.rb +15 -14
  61. data/lib/bel_parser/language/version2_0/relationships/has_components.rb +12 -11
  62. data/lib/bel_parser/language/version2_0/relationships/has_member.rb +9 -8
  63. data/lib/bel_parser/language/version2_0/relationships/has_members.rb +12 -11
  64. data/lib/bel_parser/language/version2_0/relationships/has_modification.rb +9 -7
  65. data/lib/bel_parser/language/version2_0/relationships/has_product.rb +10 -8
  66. data/lib/bel_parser/language/version2_0/relationships/has_variant.rb +9 -7
  67. data/lib/bel_parser/language/version2_0/relationships/includes.rb +11 -10
  68. data/lib/bel_parser/language/version2_0/relationships/increases.rb +13 -12
  69. data/lib/bel_parser/language/version2_0/relationships/is_a.rb +10 -8
  70. data/lib/bel_parser/language/version2_0/relationships/negative_correlation.rb +9 -7
  71. data/lib/bel_parser/language/version2_0/relationships/orthologous.rb +10 -8
  72. data/lib/bel_parser/language/version2_0/relationships/positive_correlation.rb +7 -5
  73. data/lib/bel_parser/language/version2_0/relationships/prognostic_biomarker_for.rb +8 -6
  74. data/lib/bel_parser/language/version2_0/relationships/rate_limiting_step_of.rb +10 -9
  75. data/lib/bel_parser/language/version2_0/relationships/reactant_in.rb +10 -8
  76. data/lib/bel_parser/language/version2_0/relationships/regulates.rb +9 -8
  77. data/lib/bel_parser/language/version2_0/relationships/sub_process_of.rb +13 -12
  78. data/lib/bel_parser/language/version2_0/relationships/transcribed_to.rb +8 -7
  79. data/lib/bel_parser/language/version2_0/relationships/translated_to.rb +9 -7
  80. data/lib/bel_parser/language/version2_0/relationships/translocates.rb +10 -9
  81. data/lib/bel_parser/mixin/levenshtein.rb +20 -0
  82. data/lib/bel_parser/parsers/ast/node.rb +49 -2
  83. data/lib/bel_parser/parsers/bel_script/define_annotation.rb +156 -156
  84. data/lib/bel_parser/parsers/bel_script/define_namespace.rb +60 -60
  85. data/lib/bel_parser/parsers/bel_script/set.rb +200 -200
  86. data/lib/bel_parser/parsers/bel_script/set_document.rb +188 -188
  87. data/lib/bel_parser/parsers/bel_script/unset.rb +14 -14
  88. data/lib/bel_parser/parsers/common/common.rl +1 -0
  89. data/lib/bel_parser/parsers/common/function.rb +8 -8
  90. data/lib/bel_parser/parsers/common/function.rl +6 -6
  91. data/lib/bel_parser/parsers/common/identifier.rb +3 -3
  92. data/lib/bel_parser/parsers/common/identifier.rl +4 -4
  93. data/lib/bel_parser/parsers/common/list.rb +78 -78
  94. data/lib/bel_parser/parsers/common/multi_identifier.rb +275 -0
  95. data/lib/bel_parser/parsers/common/multi_identifier.rl +141 -0
  96. data/lib/bel_parser/parsers/common/string.rb +6 -6
  97. data/lib/bel_parser/parsers/common/string.rl +4 -4
  98. data/lib/bel_parser/parsers/common.rb +1 -0
  99. data/lib/bel_parser/parsers/expression/nested_statement.rb +30180 -29055
  100. data/lib/bel_parser/parsers/expression/observed_term.rb +1456 -1099
  101. data/lib/bel_parser/parsers/expression/parameter.rb +192 -111
  102. data/lib/bel_parser/parsers/expression/parameter.rl +6 -3
  103. data/lib/bel_parser/parsers/expression/relationship.rb +43 -19
  104. data/lib/bel_parser/parsers/expression/relationship.rl +1 -0
  105. data/lib/bel_parser/parsers/expression/simple_statement.rb +17805 -17093
  106. data/lib/bel_parser/parsers/expression/statement_autocomplete.rb +1035 -0
  107. data/lib/bel_parser/parsers/expression/statement_autocomplete.rl +736 -0
  108. data/lib/bel_parser/parsers/expression/term.rb +960 -705
  109. data/lib/bel_parser/parsers/serializer.rb +8 -4
  110. data/lib/bel_parser/version.rb +33 -0
  111. data/lib/bel_parser.rb +3 -0
  112. metadata +25 -3
@@ -19,17 +19,18 @@ module BELParser
19
19
 
20
20
  SHORT = :hasComponents
21
21
  LONG = :hasComponents
22
- DESCRIPTION = ' +A hasComponents (B, C, D)+ - The hasComponents
23
- elationship is a special form which enables
24
- he assignment of multiple complex components
25
- n a single statement where the object of the
26
- tatement is a set of abundance terms. A statement
27
- sing hasComponents is exactly equivalent to
28
- ultiple hasComponent statements. A term may not
29
- ppear in both the subject and object of the same
30
- asComponents statement. For the abundance terms A,
31
- , C and D, +A hasComponents B, C, D+ indicates
32
- hat A has components B, C and D.'.freeze
22
+
23
+ DESCRIPTION = <<-DOC
24
+ HasComponents: +A hasComponents (B, C, D)+ - The hasComponents
25
+ relationship is a special form which enables the assignment
26
+ of multiple complex components in a single statement where
27
+ the object of the statement is a set of abundance terms. A
28
+ statement using hasComponents is exactly equivalent to multiple
29
+ hasComponent statements. A term may not appear in both the
30
+ subject and object of the same hasComponents statement. For
31
+ the abundance terms A, B, C and D, +A hasComponents B, C, D+
32
+ indicates that A has components B, C and D.
33
+ DOC
33
34
 
34
35
  def self.short
35
36
  SHORT
@@ -17,14 +17,15 @@ module BELParser
17
17
 
18
18
  SHORT = :hasMember
19
19
  LONG = :hasMember
20
- DESCRIPTION = ' +A hasMember A1+ - For term abundances A and B,
21
- A hasMember B+ designates B as a member class of
22
- . A member class is a distinguished sub-class. A is
23
- efined as a group by all of the members assigned to
24
- t. The member classes may or may not be overlapping
25
- nd may or may not entirely cover all instances
26
- f A. A term may not appear in both the subject
27
- nd object of the same hasMember statement.'.freeze
20
+ DESCRIPTION = <<-DOC
21
+ HasMember: +A hasMember A1+ - For term abundances A and B,
22
+ +A hasMember B+ designates B as a member class of A. A member
23
+ class is a distinguished sub-class. A is defined as a group
24
+ by all of the members assigned to it. The member classes may
25
+ or may not be overlapping and may or may not entirely cover
26
+ all instances of A. A term may not appear in both the subject
27
+ and object of the same hasMember statement.
28
+ DOC
28
29
 
29
30
  def self.short
30
31
  SHORT
@@ -19,17 +19,18 @@ module BELParser
19
19
 
20
20
  SHORT = :hasMembers
21
21
  LONG = :hasMembers
22
- DESCRIPTION = ' +A hasMembers (B, C, D)+ - The hasMembers
23
- elationship is a special form which enables the
24
- ssignment of multiple member classes in a single
25
- tatement where the object of the statement is a set
26
- f abundance terms. A statement using hasMembers
27
- s exactly equivalent to multiple hasMember
28
- tatements. A term may not appear in both the
29
- ubject and object of a of the same hasMembers
30
- tatement. For the abundance terms A, B, C and D,
31
- A hasMembers B, C, D+ indicates that A is defined
32
- y its member abundance classes B, C and D.'.freeze
22
+
23
+ DESCRIPTION = <<-DOC
24
+ HasMembers: +A hasMembers (B, C, D)+ - The hasMembers
25
+ relationship is a special form which enables the assignment of
26
+ multiple member classes in a single statement where the object
27
+ of the statement is a set of abundance terms. A statement
28
+ using hasMembers is exactly equivalent to multiple hasMember
29
+ statements. A term may not appear in both the subject and
30
+ object of a of the same hasMembers statement. For the abundance
31
+ terms A, B, C and D, +A hasMembers B, C, D+ indicates that A
32
+ is defined by its member abundance classes B, C and D.
33
+ DOC
33
34
 
34
35
  def self.short
35
36
  SHORT
@@ -16,13 +16,15 @@ module BELParser
16
16
 
17
17
  SHORT = :hasModification
18
18
  LONG = :hasModification
19
- DESCRIPTION = ' +p(A) hasModification p(A, pmod(P, S, 473))+ -
20
- his relationship links abundance terms modified by
21
- he +pmod()+ function to the unmodified abundance
22
- erm. This is a direct relationship because it
23
- s a _self_ relationship. This relationship is
24
- ntroduced by the BEL Compiler and may not be used
25
- y statements in BEL documents.'.freeze
19
+
20
+ DESCRIPTION = <<-DOC
21
+ HasModification: +p(A) hasModification p(A, pmod(P, S, 473))+
22
+ - This relationship links abundance terms modified by the
23
+ +pmod()+ function to the unmodified abundance term. This is a
24
+ direct relationship because it is a _self_ relationship. This
25
+ relationship is introduced by the BEL Compiler and may not be
26
+ used by statements in BEL documents.
27
+ DOC
26
28
 
27
29
  def self.short
28
30
  SHORT
@@ -17,14 +17,16 @@ module BELParser
17
17
 
18
18
  SHORT = :hasProduct
19
19
  LONG = :hasProduct
20
- DESCRIPTION = ' +reaction(reactants(A), products(B)) hasProduct
21
- + - This relationship links abundance terms
22
- rom the +products(<list>)+ in a reaction to the
23
- eaction. This is a direct relationship because it
24
- s a _self_ relationship. Products are produced
25
- irectly by a reaction. This relationship is
26
- ntroduced by the BEL Compiler and may not be used
27
- y statements in BEL documents.'.freeze
20
+
21
+ DESCRIPTION = <<-DOC
22
+ HasProduct: +reaction(reactants(A), products(B))
23
+ hasProduct B+ - This relationship links abundance
24
+ terms from the +products(<list>)+ in a reaction to the
25
+ reaction. This is a direct relationship because it is a _self_
26
+ relationship. Products are produced directly by a reaction. This
27
+ relationship is introduced by the BEL Compiler and may not be
28
+ used by statements in BEL documents.
29
+ DOC
28
30
 
29
31
  def self.short
30
32
  SHORT
@@ -16,13 +16,15 @@ module BELParser
16
16
 
17
17
  SHORT = :hasVariant
18
18
  LONG = :hasVariant
19
- DESCRIPTION = ' +p(A) hasVariant p(A, sub(G, 12, V))+ - This
20
- elationship links abundance terms modified by the
21
- substitution()+, +fusion()+, or +truncation()+
22
- unctions to the unmodified abundance term. This
23
- elationship is introduced by the BEL Compiler
24
- nd does not need to be used by statements in
25
- EL documents.'.freeze
19
+
20
+ DESCRIPTION = <<-DOC
21
+ HasVariant: +p(A) hasVariant p(A, sub(G, 12, V))+ -
22
+ This relationship links abundance terms modified by the
23
+ +substitution()+, +fusion()+, or +truncation()+ functions to
24
+ the unmodified abundance term. This relationship is introduced
25
+ by the BEL Compiler and does not need to be used by statements
26
+ in BEL documents.
27
+ DOC
26
28
 
27
29
  def self.short
28
30
  SHORT
@@ -18,16 +18,17 @@ module BELParser
18
18
 
19
19
  SHORT = :includes
20
20
  LONG = :includes
21
- DESCRIPTION = ' +compositeAbundance(A,B) includes A+ - This
22
- elationship links each individual abundance
23
- erm in a +compositeAbundance(<list>)+
24
- o the compositeAbundance. For example,
25
- compositeAbundance(A, B) includes A+ and
26
- compositeAbundance(A, B) includes B+. This
27
- elationship is direct because it is a _self_
28
- elationship. This relationship is introduced by
29
- he BEL Compiler and may not be used by statements
30
- n BEL documents.'.freeze
21
+
22
+ DESCRIPTION = <<-DOC
23
+ Includes: +compositeAbundance(A,B) includes A+ - This
24
+ relationship links each individual abundance term in a
25
+ +compositeAbundance(<list>)+ to the compositeAbundance. For
26
+ example, +compositeAbundance(A, B) includes A+ and
27
+ +compositeAbundance(A, B) includes B+. This relationship is
28
+ direct because it is a _self_ relationship. This relationship
29
+ is introduced by the BEL Compiler and may not be used by
30
+ statements in BEL documents.
31
+ DOC
31
32
 
32
33
  def self.short
33
34
  SHORT
@@ -20,18 +20,19 @@ module BELParser
20
20
 
21
21
  SHORT = :'->'
22
22
  LONG = :increases
23
- DESCRIPTION = ' +A -> B+ - For terms A and B, +A increases B
24
- r A -> B+ indicates that increases in A have been
25
- bserved to cause increases in B. +A increases
26
- + also represents cases where decreases in A
27
- ave been observed to cause decreases in B, for
28
- xample, in recording the results of gene deletion
29
- r other inhibition experiments. A is a BEL Term
30
- nd B is either a BEL Term or a BEL Statement. The
31
- elationship does not indicate that the changes
32
- n A are either necessary for changes in B, nor
33
- oes it indicate that changes in A are sufficient
34
- o cause changes in B.'.freeze
23
+
24
+ DESCRIPTION = <<-DOC
25
+ Increases: +A -> B+ - For terms A and B, +A increases B or
26
+ A -> B+ indicates that increases in A have been observed to
27
+ cause increases in B. +A increases B+ also represents cases
28
+ where decreases in A have been observed to cause decreases in B,
29
+ for example, in recording the results of gene deletion or other
30
+ inhibition experiments. A is a BEL Term and B is either a BEL
31
+ Term or a BEL Statement. The relationship does not indicate
32
+ that the changes in A are either necessary for changes in B,
33
+ nor does it indicate that changes in A are sufficient to cause
34
+ changes in B.
35
+ DOC
35
36
 
36
37
  def self.short
37
38
  SHORT
@@ -17,14 +17,16 @@ module BELParser
17
17
 
18
18
  SHORT = :isA
19
19
  LONG = :isA
20
- DESCRIPTION = ' +A isA B+ - For terms A and B, +A isA B+
21
- ndicates that A is a subset of B. All terms in BEL
22
- epresent classes, but given that classes implicitly
23
- ave instances, one can also interpret +A isA B+ to
24
- ean that any instance of A must also be an instance
25
- f B. This relationship can be used to represent
26
- O and MeSH hierarchies: +pathology(MESH:Psoriasis)
27
- sA pathology(MESH:"Skin Diseases")+'.freeze
20
+
21
+ DESCRIPTION = <<-DOC
22
+ IsA: +A isA B+ - For terms A and B, +A isA B+ indicates
23
+ that A is a subset of B. All terms in BEL represent classes,
24
+ but given that classes implicitly have instances, one can
25
+ also interpret +A isA B+ to mean that any instance of A must
26
+ also be an instance of B. This relationship can be used to
27
+ represent GO and MeSH hierarchies: +pathology(MESH:Psoriasis)
28
+ isA pathology(MESH:"Skin Diseases")+
29
+ DOC
28
30
 
29
31
  def self.short
30
32
  SHORT
@@ -16,13 +16,15 @@ module BELParser
16
16
 
17
17
  SHORT = :negativeCorrelation
18
18
  LONG = :negativeCorrelation
19
- DESCRIPTION = ' +A negativeCorrelation B+ - For terms A and B,
20
- A negativeCorrelation B+ indicates that changes
21
- n A and B have been observed to be negatively
22
- orrelated. The order of the subject and object does
23
- ot affect the interpretation of the statement,
24
- hus B negativeCorrelation A is equivalent to A
25
- egativeCorrelation B.'.freeze
19
+
20
+ DESCRIPTION = <<-DOC
21
+ NegativeCorrelation: +A negativeCorrelation B+ - For terms
22
+ A and B, +A negativeCorrelation B+ indicates that changes in A
23
+ and B have been observed to be negatively correlated. The order
24
+ of the subject and object does not affect the interpretation
25
+ of the statement, thus B negativeCorrelation A is equivalent
26
+ to A negativeCorrelation B.
27
+ DOC
26
28
 
27
29
  def self.short
28
30
  SHORT
@@ -17,14 +17,16 @@ module BELParser
17
17
 
18
18
  SHORT = :orthologous
19
19
  LONG = :orthologous
20
- DESCRIPTION = ' +A orthologous B+ - For geneAbundance terms
21
- and B, +A orthologousTo B+ indicates that A
22
- nd B represent abundances of genes in different
23
- pecies which are sequence similar and which are
24
- herefore presumed to share a common ancestral
25
- ene. For example, +g(HGNC:AKT1) orthologousTo
26
- (MGI:AKT1)+ indicates that the mouse and human
27
- KT1 genes are orthologous.'.freeze
20
+
21
+ DESCRIPTION = <<-DOC
22
+ Orthologous: +A orthologous B+ - For geneAbundance terms A
23
+ and B, +A orthologousTo B+ indicates that A and B represent
24
+ abundances of genes in different species which are sequence
25
+ similar and which are therefore presumed to share a common
26
+ ancestral gene. For example, +g(HGNC:AKT1) orthologousTo
27
+ g(MGI:AKT1)+ indicates that the mouse and human AKT1 genes
28
+ are orthologous.
29
+ DOC
28
30
 
29
31
  def self.short
30
32
  SHORT
@@ -14,11 +14,13 @@ module BELParser
14
14
 
15
15
  SHORT = :positiveCorrelation
16
16
  LONG = :positiveCorrelation
17
- DESCRIPTION = ' +A positiveCorrelation B+ - For terms A and B,
18
- A positiveCorrelation B+ indicates that changes
19
- n A and B have been observed to be positively
20
- orrelated, thus B positiveCorrelation A is
21
- quivalent to A positiveCorrelation B.'.freeze
17
+
18
+ DESCRIPTION = <<-DOC
19
+ PositiveCorrelation: +A positiveCorrelation B+ - For terms
20
+ A and B, +A positiveCorrelation B+ indicates that changes in
21
+ A and B have been observed to be positively correlated, thus B
22
+ positiveCorrelation A is equivalent to A positiveCorrelation B.
23
+ DOC
22
24
 
23
25
  def self.short
24
26
  SHORT
@@ -15,12 +15,14 @@ module BELParser
15
15
 
16
16
  SHORT = :prognosticBiomarkerFor
17
17
  LONG = :prognosticBiomarkerFor
18
- DESCRIPTION = ' +A prognosticBiomarkerFor P+ - For term A
19
- nd process term P, +A prognosticBiomarkerFor P+
20
- ndicates that changes in or detection of A is used
21
- n some way to be a prognostic biomarker for the
22
- ubsequent development of pathology or biological
23
- rocess P.'.freeze
18
+
19
+ DESCRIPTION = <<-DOC
20
+ PrognosticBiomarkerFor: +A prognosticBiomarkerFor P+ -
21
+ For term A and process term P, +A prognosticBiomarkerFor P+
22
+ indicates that changes in or detection of A is used in some
23
+ way to be a prognostic biomarker for the subsequent development
24
+ of pathology or biological process P.
25
+ DOC
24
26
 
25
27
  def self.short
26
28
  SHORT
@@ -17,15 +17,16 @@ module BELParser
17
17
 
18
18
  SHORT = :rateLimitingStepOf
19
19
  LONG = :rateLimitingStepOf
20
- DESCRIPTION = ' +A rateLimitingStepOf B+ - For process,
21
- ctivity, or transformation term A and process
22
- erm B, +A rateLimitingStepOf B+ indicates
23
- A subProcessOf B+ and +A -> B+. For example,
24
- he catalytic activity of HMG CoA reductase is a
25
- ate-limiting step for cholesterol biosynthesis:
26
- pre> <code> cat(p(HGNC:HMGCR)) rateLimitingStepOf\
27
- p(GO:"cholesterol biosynthetic process") </code>
28
- /pre>'.freeze
20
+
21
+ DESCRIPTION = <<-DOC
22
+ RateLimitingStepOf: +A rateLimitingStepOf B+ - For process,
23
+ activity, or transformation term A and process term B, +A
24
+ rateLimitingStepOf B+ indicates +A subProcessOf B+ and +A ->
25
+ B+. For example, the catalytic activity of HMG CoA reductase
26
+ is a rate-limiting step for cholesterol biosynthesis: <pre>
27
+ <code> cat(p(HGNC:HMGCR)) rateLimitingStepOf\ bp(GO:"cholesterol
28
+ biosynthetic process") </code> </pre>
29
+ DOC
29
30
 
30
31
  def self.short
31
32
  SHORT
@@ -17,14 +17,16 @@ module BELParser
17
17
 
18
18
  SHORT = :reactantIn
19
19
  LONG = :reactantIn
20
- DESCRIPTION = ' +A reactantIn reaction(reactants(A),
21
- roducts(B))+ - This relationship links abundance
22
- erms from the +reactants(<list>)+ in a reaction
23
- o the reaction. This is a direct relationship
24
- ecause it is a _self_ relationship. Reactants are
25
- onsumed directly by a reaction. This relationship
26
- s introduced by the BEL Compiler and may not be
27
- sed by statements in BEL documents.'.freeze
20
+
21
+ DESCRIPTION = <<-DOC
22
+ ReactantIn: +A reactantIn reaction(reactants(A),
23
+ products(B))+ - This relationship links abundance
24
+ terms from the +reactants(<list>)+ in a reaction to the
25
+ reaction. This is a direct relationship because it is a
26
+ _self_ relationship. Reactants are consumed directly by a
27
+ reaction. This relationship is introduced by the BEL Compiler
28
+ and may not be used by statements in BEL documents.
29
+ DOC
28
30
 
29
31
  def self.short
30
32
  SHORT
@@ -16,14 +16,15 @@ module BELParser
16
16
 
17
17
  SHORT = :reg
18
18
  LONG = :regulates
19
- DESCRIPTION = '+A regulates B+ - For terms A and B, A regulates
20
- or A reg B indicate that A is reported to
21
- ave an effect on B, but information is missing
22
- bout whether A increases B or A decreases
23
- . This relationship provides more information
24
- han association, because the upstream entity
25
- source term) and downstream entity (target term)
26
- an be assigned.'.freeze
19
+
20
+ DESCRIPTION = <<-DOC
21
+ Regulates: +A regulates B+ - For terms A and B, A regulates
22
+ B or A reg B indicate that A is reported to have an effect on
23
+ B, but information is missing about whether A increases B or
24
+ A decreases B. This relationship provides more information
25
+ than association, because the upstream entity (source term)
26
+ and downstream entity (target term) can be assigned.
27
+ DOC
27
28
 
28
29
  def self.short
29
30
  SHORT
@@ -20,18 +20,19 @@ module BELParser
20
20
 
21
21
  SHORT = :subProcessOf
22
22
  LONG = :subProcessOf
23
- DESCRIPTION = ' +A subProcessOf B+ - For process, activity,
24
- r transformation term A and process term B,
25
- A subProcessOf B+ indicates that instances
26
- f process B, by default, include one or more
27
- nstances of A in their composition. For example,
28
- he reduction of HMG-CoA to mevalonate is a
29
- ubprocess of cholesterol biosynthesis: <pre> <code>
30
- xn(reactants(a(CHEBI:"(S)-3-hydroxy-3-methylglutaryl-CoA"),\
31
- (CHEBI:NADPH), a(CHEBI:hydron)),
32
- roducts(a(CHEBI:Mevalonate),\ a(CHEBI:"CoA-SH"),
33
- (CHEBI:"NADP+"))) subProcessOf bp(GO:"cholesterol\
34
- iosynthetic process") </code> </pre>'.freeze
23
+
24
+ DESCRIPTION = <<-DOC
25
+ SubProcessOf: +A subProcessOf B+ - For process, activity, or
26
+ transformation term A and process term B, +A subProcessOf B+
27
+ indicates that instances of process B, by default, include
28
+ one or more instances of A in their composition. For
29
+ example, the reduction of HMG-CoA to mevalonate is
30
+ a subprocess of cholesterol biosynthesis: <pre> <code>
31
+ rxn(reactants(a(CHEBI:"(S)-3-hydroxy-3-methylglutaryl-CoA"),\
32
+ a(CHEBI:NADPH), a(CHEBI:hydron)), products(a(CHEBI:Mevalonate),\
33
+ a(CHEBI:"CoA-SH"), a(CHEBI:"NADP+"))) subProcessOf
34
+ bp(GO:"cholesterol\ biosynthetic process") </code> </pre>
35
+ DOC
35
36
 
36
37
  def self.short
37
38
  SHORT
@@ -15,13 +15,14 @@ module BELParser
15
15
 
16
16
  SHORT = :':>'
17
17
  LONG = :transcribedTo
18
- DESCRIPTION = ' +G :> R+ - For rnaAbundance term R and
19
- eneAbundance term G, +G transcribedTo R+ or +G :>
20
- + indicates that members of R are produced by
21
- he transcription of members of G. For example:
22
- g(HGNC:AKT1) :> r(HGNC:AKT1)+ indicates that
23
- he human AKT1 RNA is transcribed from the human
24
- KT1 gene.'.freeze
18
+
19
+ DESCRIPTION = <<-DOC
20
+ TranscribedTo: +G :> R+ - For rnaAbundance term R and
21
+ geneAbundance term G, +G transcribedTo R+ or +G :> R+ indicates
22
+ that members of R are produced by the transcription of members
23
+ of G. For example: +g(HGNC:AKT1) :> r(HGNC:AKT1)+ indicates
24
+ that the human AKT1 RNA is transcribed from the human AKT1 gene.
25
+ DOC
25
26
 
26
27
  def self.short
27
28
  SHORT
@@ -16,13 +16,15 @@ module BELParser
16
16
 
17
17
  SHORT = :>>
18
18
  LONG = :translatedTo
19
- DESCRIPTION = ' +R >> P+ - For rnaAbundance term R and
20
- roteinAbundance term P, +R translatedTo P+ or
21
- R >> P+ indicates that members of P are produced
22
- y the translation of members of R. For example:
23
- r(HGNC:AKT1) >> p(HGNC:AKT1)+ indicates that
24
- KT1 protein is produced by translation of AKT1
25
- NA.'.freeze
19
+
20
+ DESCRIPTION = <<-DOC
21
+ TranslatedTo: +R >> P+ - For rnaAbundance term R and
22
+ proteinAbundance term P, +R translatedTo P+ or +R >> P+
23
+ indicates that members of P are produced by the translation
24
+ of members of R. For example: +r(HGNC:AKT1) >> p(HGNC:AKT1)+
25
+ indicates that AKT1 protein is produced by translation of
26
+ AKT1 RNA.
27
+ DOC
26
28
 
27
29
  def self.short
28
30
  SHORT
@@ -17,15 +17,16 @@ module BELParser
17
17
 
18
18
  SHORT = :translocates
19
19
  LONG = :translocates
20
- DESCRIPTION = ' +translocation(A, ns1:v1, ns2:v2) translocates
21
- + - This relationship links the abundance term
22
- n a +translocation()+ to the translocation. This
23
- elationship is direct because it is a _self_
24
- elationship. The translocated abundance
25
- s directly acted on by the translocation
26
- rocess. This relationship is introduced by the
27
- EL Compiler and may not be used by statements in
28
- EL documents.'.freeze
20
+
21
+ DESCRIPTION = <<-DOC
22
+ Translocates: +translocation(A, ns1:v1, ns2:v2) translocates
23
+ A+ - This relationship links the abundance term in a
24
+ +translocation()+ to the translocation. This relationship is
25
+ direct because it is a _self_ relationship. The translocated
26
+ abundance is directly acted on by the translocation
27
+ process. This relationship is introduced by the BEL Compiler
28
+ and may not be used by statements in BEL documents.
29
+ DOC
29
30
 
30
31
  def self.short
31
32
  SHORT
@@ -0,0 +1,20 @@
1
+ module BELParser
2
+ # Adds a levenshtein implementation based on which ruby engine is used.
3
+ module Levenshtein
4
+
5
+ unless self.methods.include?(:distance)
6
+
7
+ if RUBY_ENGINE =~ /^jruby/i
8
+ require 'levenshtein'
9
+ define_singleton_method(:distance) do |string1, string2|
10
+ ::Levenshtein.distance(string1, string2)
11
+ end
12
+ else
13
+ require "damerau-levenshtein"
14
+ define_singleton_method(:distance) do |string1, string2|
15
+ ::DamerauLevenshtein.distance(string1, string2)
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end