Class: Dratools::AccessionResourceTypeClassifier
- Inherits:
-
Object
- Object
- Dratools::AccessionResourceTypeClassifier
- Defined in:
- lib/dratools/accession_resource_type_classifier.rb
Overview
accession の接頭辞から DDBJ resource API の type を判定する。
Constant Summary collapse
- RUN_PREFIXES =
/\A[DES]RR\d+\z/- EXPERIMENT_PREFIXES =
/\A[DES]RX\d+\z/- SAMPLE_PREFIXES =
/\A[DES]RS\d+\z/- STUDY_PREFIXES =
/\A[DES]RP\d+\z/- SUBMISSION_PREFIXES =
/\A[DES]RA\d+\z/- BIOPROJECT_PREFIXES =
/\APRJ(?:DA|DB|NA|EB)\d+\z/- BIOSAMPLE_PREFIXES =
/\ASAM(?:D|N|EA|EG)?\d+\z/- TYPE_BY_ACCESSION =
[ [RUN_PREFIXES, DdbjRecordFields::SRA_RUN_RESOURCE_TYPE], [EXPERIMENT_PREFIXES, DdbjRecordFields::SRA_EXPERIMENT_RESOURCE_TYPE], [SAMPLE_PREFIXES, DdbjRecordFields::SRA_SAMPLE_RESOURCE_TYPE], [STUDY_PREFIXES, DdbjRecordFields::SRA_STUDY_RESOURCE_TYPE], [SUBMISSION_PREFIXES, DdbjRecordFields::SRA_SUBMISSION_RESOURCE_TYPE], [BIOPROJECT_PREFIXES, DdbjRecordFields::BIOPROJECT_RESOURCE_TYPE], [BIOSAMPLE_PREFIXES, DdbjRecordFields::BIOSAMPLE_RESOURCE_TYPE] ].freeze
Instance Method Summary collapse
Instance Method Details
#resource_type_for(accession) ⇒ Object
27 28 29 30 31 32 |
# File 'lib/dratools/accession_resource_type_classifier.rb', line 27 def resource_type_for(accession) matching_rule = TYPE_BY_ACCESSION.find { |pattern, _resource_type| pattern.match?(accession) } raise UnsupportedAccessionError, "unsupported accession: #{accession}" unless matching_rule matching_rule.last end |