Module: RGFA::FieldValidator Private
- Included in:
- String
- Defined in:
- lib/rgfa/field_validator.rb
Overview
This module is part of a private API. You should avoid using this module if possible, as it may be removed or be changed in the future.
Methods to validate the string representations of the GFA fields data
Constant Summary collapse
- DATASTRING_VALIDATION_REGEXP =
This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.
Validation regular expressions, derived from the GFA specification
{ :A => /^[!-~]$/, # Printable character :i => /^[-+]?[0-9]+$/, # Signed integer :f => /^[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?$/, # Single-precision floating number :Z => /^[ !-~]+$/, # Printable string, including space :J => /^[ !-~]+$/, # JSON, excluding new-line and tab characters :H => /^[0-9A-F]+$/, # Byte array in the Hex format :B => /^[cCsSiIf](,[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?)+$/, # Integer or numeric array :lbl => /^[!-)+-<>-~][!-~]*$/, # segment/path label :orn => /^\+|-$/, # segment orientation :lbs => /^[!-)+-<>-~][!-~]*[+-](,[!-)+-<>-~][!-~]*[+-])+$/, # multiple labels with orientations, comma-sep :seq => /^\*$|^[A-Za-z=.]+$/, # nucleotide sequence :pos => /^[0-9]*$/, # positive integer :cig => /^(\*|(([0-9]+[MIDNSHPX=])+))$/, # CIGAR string :cgs => /^(\*|(([0-9]+[MIDNSHPX=])+))(,(\*|(([0-9]+[MIDNSHPX=])+)))*$/, # multiple CIGARs, comma-sep :cmt => /.*/, # content of comment line, everything is allowed }
Instance Method Summary collapse
-
#validate_gfa_field!(datatype, fieldname = nil) ⇒ void
private
Validates the string according to the provided datatype.
-
#validate_segment_name! ⇒ void
private
Validates segment names, to check that they do not contain + or - followed by comma.
Instance Method Details
#validate_gfa_field!(datatype, fieldname = nil) ⇒ void
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
This method returns an undefined value.
Validates the string according to the provided datatype
40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/rgfa/field_validator.rb', line 40 def validate_gfa_field!(datatype, fieldname=nil) regexp = DATASTRING_VALIDATION_REGEXP[datatype] raise RGFA::FieldParser::UnknownDatatypeError if regexp.nil? if (regexp !~ self) fieldname ||= "Value" raise RGFA::FieldParser::FormatError, "Wrong format for field #{fieldname}: \n"+ "Content: #{self.inspect}\n"+ "Datatype: #{datatype}\n"+ "Expected regex: #{regexp}\n" end end |
#validate_segment_name! ⇒ void
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
This method returns an undefined value.
Validates segment names, to check that they do not contain + or - followed by comma
58 59 60 61 62 63 64 |
# File 'lib/rgfa/field_validator.rb', line 58 def validate_segment_name! if self =~ /.*[+-],.*/ raise RGFA::FieldParser::FormatError, "Segment names are not allowed to contain +/- followed by comma "+ "(found: #{self})" end end |