Module: EBICheck::Utils

Defined in:
lib/ebi_check/utils.rb

Constant Summary collapse

XPATH_STUDY_TITLE =

Study XPaths

'//STUDY_TITLE'
XPATH_STUDY_DESCRIPTION =
'//STUDY_DESCRIPTION'
XPATH_CENTER_PROJECT_NAME =
'//CENTER_PROJECT_NAME'
XPATH_STUDY_ABSTRACT =
'//STUDY_ABSTRACT'
XPATH_EXISTING_STUDY_TYPE =
'//STUDY_TYPE/@existing_study_type'
XPATH_NEW_STUDY_TYPE =
'//STUDY_TYPE/@new_study_type'
XPATH_SCIENTIFIC_NAME =

Sample XPaths

'//SAMPLE/SAMPLE_NAME/SCIENTIFIC_NAME'
XPATH_COMMON_NAME =
'//SAMPLE/SAMPLE_NAME/COMMON_NAME'
XPATH_SAMPLE_TITLE =
'//SAMPLE/TITLE'
XPATH_SAMPLE_ATTRIBUTE =
'//SAMPLE/SAMPLE_ATTRIBUTES/SAMPLE_ATTRIBUTE'
XPATH_TAXON_ID =
'//SAMPLE/SAMPLE_NAME/TAXON_ID'
XPATH_VALUE =
'VALUE'
XPATH_TAG =
'TAG'

Class Method Summary collapse

Class Method Details

.extract_sample_fields(xml) ⇒ Hash

Extracts sample fields from the provided XML string.

Parameters:

  • xml (String)

    The sample XML data.

Returns:

  • (Hash)

    A hash containing the extracted sample fields.



58
59
60
61
62
63
# File 'lib/ebi_check/utils.rb', line 58

def extract_sample_fields(xml)
  doc = Nokogiri::XML(xml)
  result = extract_sample_basic_fields(doc)
  result.merge!(extract_sample_attributes_fields(doc))
  result
end

.extract_study_fields(xml) ⇒ Hash

Extracts study fields from the provided XML string.

Parameters:

  • xml (String)

    The study XML data.

Returns:

  • (Hash)

    A hash containing the extracted study fields.



43
44
45
46
47
48
49
50
51
52
53
# File 'lib/ebi_check/utils.rb', line 43

def extract_study_fields(xml)
  doc = Nokogiri::XML(xml)
  {
    title: doc.at_xpath(XPATH_STUDY_TITLE)&.text,
    description: doc.at_xpath(XPATH_STUDY_DESCRIPTION)&.text,
    project_name: doc.at_xpath(XPATH_CENTER_PROJECT_NAME)&.text,
    abstract: doc.at_xpath(XPATH_STUDY_ABSTRACT)&.text,
    existing_study_type: doc.at_xpath(XPATH_EXISTING_STUDY_TYPE)&.text,
    new_study_type: doc.at_xpath(XPATH_NEW_STUDY_TYPE)&.text
  }
end