parser

package
v0.1.0-alpha.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 12, 2026 License: MIT Imports: 6 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetAttributeValue

func GetAttributeValue(attributes []Attribute, tag string) string

GetAttributeValue finds an attribute by tag name

func ParseTime

func ParseTime(dateStr string) time.Time

ParseTime converts SRA date strings to time.Time

Types

type AbundanceMeasurement

type AbundanceMeasurement struct {
	Processing ProcessingType `xml:"PROCESSING"`
}

AbundanceMeasurement represents abundance measurement analysis

type Action

type Action struct {
	Add      *AddAction      `xml:"ADD"`
	Modify   *ModifyAction   `xml:"MODIFY"`
	Suppress *SuppressAction `xml:"SUPPRESS"`
	Hold     *HoldAction     `xml:"HOLD"`
	Release  *ReleaseAction  `xml:"RELEASE"`
	Protect  *ProtectAction  `xml:"PROTECT"`
	Validate *ValidateAction `xml:"VALIDATE"`
}

Action represents a submission action

func (*Action) GetActionType

func (a *Action) GetActionType() string

GetActionType returns the type of action

type AddAction

type AddAction struct {
	Source string `xml:"source,attr"`
	Schema string `xml:"schema,attr,omitempty"`
}

AddAction represents an ADD action

type AlignmentDirectivesType

type AlignmentDirectivesType struct {
	// Add specific directives as needed
	Directives map[string]string
}

AlignmentDirectivesType represents alignment directives

type AlignmentProcessing

type AlignmentProcessing struct {
	Pipeline   PipelineType             `xml:"PIPELINE"`
	Directives *AlignmentDirectivesType `xml:"DIRECTIVES"`
}

AlignmentProcessing represents alignment-specific processing

type Analysis

type Analysis struct {
	XMLName xml.Name `xml:"ANALYSIS"`

	// Attributes from NameGroup
	Alias          string `xml:"alias,attr,omitempty"`
	CenterName     string `xml:"center_name,attr,omitempty"`
	BrokerName     string `xml:"broker_name,attr,omitempty"`
	Accession      string `xml:"accession,attr,omitempty"`
	AnalysisCenter string `xml:"analysis_center,attr,omitempty"`
	AnalysisDate   string `xml:"analysis_date,attr,omitempty"`

	// Elements
	Identifiers        *Identifiers        `xml:"IDENTIFIERS"`
	Title              string              `xml:"TITLE"`
	StudyRef           StudyRef            `xml:"STUDY_REF"`
	Description        string              `xml:"DESCRIPTION"`
	AnalysisType       AnalysisType        `xml:"ANALYSIS_TYPE"`
	Targets            *AnalysisTargets    `xml:"TARGETS"`
	DataBlocks         []AnalysisDataBlock `xml:"DATA_BLOCK"`
	AnalysisLinks      *AnalysisLinks      `xml:"ANALYSIS_LINKS"`
	AnalysisAttributes *AnalysisAttributes `xml:"ANALYSIS_ATTRIBUTES"`
}

Analysis represents a complete SRA analysis record

func (*Analysis) GetTargetAccessions

func (a *Analysis) GetTargetAccessions() []string

GetTargetAccessions returns all target accessions

func (*Analysis) HasMultipleDataBlocks

func (a *Analysis) HasMultipleDataBlocks() bool

HasMultipleDataBlocks checks if analysis has multiple data blocks

type AnalysisAttributes

type AnalysisAttributes struct {
	Attributes []Attribute `xml:"ANALYSIS_ATTRIBUTE"`
}

AnalysisAttributes contains custom attributes

type AnalysisDataBlock

type AnalysisDataBlock struct {
	Name   string         `xml:"name,attr,omitempty"`
	Serial int            `xml:"serial,attr,omitempty"`
	Member string         `xml:"member,attr,omitempty"`
	Files  []AnalysisFile `xml:"FILES>FILE"`
}

AnalysisDataBlock represents a data block in analysis

type AnalysisFile

type AnalysisFile struct {
	Filename       string `xml:"filename,attr"`
	FileType       string `xml:"filetype,attr"`
	ChecksumMethod string `xml:"checksum_method,attr"`
	Checksum       string `xml:"checksum,attr"`
}

AnalysisFile represents a file in analysis data block

type AnalysisLinks struct {
	Links []Link `xml:"ANALYSIS_LINK"`
}

AnalysisLinks contains external links

type AnalysisSet

type AnalysisSet struct {
	XMLName  xml.Name   `xml:"ANALYSIS_SET"`
	Analyses []Analysis `xml:"ANALYSIS"`
}

AnalysisSet represents a collection of analyses

type AnalysisTarget

type AnalysisTarget struct {
	SraObjectType string       `xml:"sra_object_type,attr,omitempty"`
	RefName       string       `xml:"refname,attr,omitempty"`
	RefCenter     string       `xml:"refcenter,attr,omitempty"`
	Accession     string       `xml:"accession,attr,omitempty"`
	Identifiers   *Identifiers `xml:"IDENTIFIERS"`
}

AnalysisTarget represents a single analysis target

type AnalysisTargets

type AnalysisTargets struct {
	Targets []AnalysisTarget `xml:"TARGET"`
}

AnalysisTargets represents analysis targets

type AnalysisType

type AnalysisType struct {
	DeNovoAssembly       *DeNovoAssembly       `xml:"DE_NOVO_ASSEMBLY"`
	ReferenceAlignment   *ReferenceAlignment   `xml:"REFERENCE_ALIGNMENT"`
	SequenceAnnotation   *SequenceAnnotation   `xml:"SEQUENCE_ANNOTATION"`
	AbundanceMeasurement *AbundanceMeasurement `xml:"ABUNDANCE_MEASUREMENT"`
}

AnalysisType represents the type of analysis

func (*AnalysisType) GetAnalysisTypeName

func (a *AnalysisType) GetAnalysisTypeName() string

GetAnalysisTypeName returns the name of the analysis type

type Assembly

type Assembly struct {
	Standard *StandardAssembly `xml:"STANDARD"`
	Custom   *CustomAssembly   `xml:"CUSTOM"`
}

Assembly represents assembly reference

type Attribute

type Attribute struct {
	Tag   string `xml:"TAG"`
	Value string `xml:"VALUE"`
	Units string `xml:"UNITS,omitempty"`
}

Attribute represents a tag-value pair with optional units

type Contact

type Contact struct {
	Name           string `xml:"name,attr,omitempty"`
	InformOnStatus string `xml:"inform_on_status,attr,omitempty"`
	InformOnError  string `xml:"inform_on_error,attr,omitempty"`
}

Contact represents a submission contact

type CustomAssembly

type CustomAssembly struct {
	Description     string `xml:"DESCRIPTION"`
	ReferenceSource []Link `xml:"REFERENCE_SOURCE"`
}

CustomAssembly represents custom reference assembly

type DataBlock

type DataBlock struct {
	Files []RunFile `xml:"FILES>FILE"`
}

DataBlock contains file information

type DeNovoAssembly

type DeNovoAssembly struct {
	Processing ProcessingType `xml:"PROCESSING"`
}

DeNovoAssembly represents de novo assembly analysis

type Design

type Design struct {
	DesignDescription string            `xml:"DESIGN_DESCRIPTION"`
	SampleDescriptor  SampleDescriptor  `xml:"SAMPLE_DESCRIPTOR"`
	LibraryDescriptor LibraryDescriptor `xml:"LIBRARY_DESCRIPTOR"`
	SpotDescriptor    *SpotDescriptor   `xml:"SPOT_DESCRIPTOR"`
}

Design contains experiment design information

type Experiment

type Experiment struct {
	XMLName xml.Name `xml:"EXPERIMENT"`

	// Attributes from NameGroup
	Alias      string `xml:"alias,attr,omitempty"`
	CenterName string `xml:"center_name,attr,omitempty"`
	BrokerName string `xml:"broker_name,attr,omitempty"`
	Accession  string `xml:"accession,attr,omitempty"`

	// Elements
	Identifiers          *Identifiers          `xml:"IDENTIFIERS"`
	Title                string                `xml:"TITLE"`
	StudyRef             StudyRef              `xml:"STUDY_REF"`
	Design               Design                `xml:"DESIGN"`
	Platform             Platform              `xml:"PLATFORM"`
	ExperimentLinks      *ExperimentLinks      `xml:"EXPERIMENT_LINKS"`
	ExperimentAttributes *ExperimentAttributes `xml:"EXPERIMENT_ATTRIBUTES"`
}

Experiment represents a complete SRA experiment record

type ExperimentAttributes

type ExperimentAttributes struct {
	Attributes []Attribute `xml:"EXPERIMENT_ATTRIBUTE"`
}

ExperimentAttributes contains custom attributes

type ExperimentLinks struct {
	Links []Link `xml:"EXPERIMENT_LINK"`
}

ExperimentLinks contains external links

type ExperimentPackage

type ExperimentPackage struct {
	Accession string `xml:"accession,attr"`
	Title     string `xml:"EXPERIMENT>TITLE"`
	Study     struct {
		Accession string `xml:"accession,attr"`
	} `xml:"EXPERIMENT>STUDY_REF"`
	Design struct {
		SampleDescriptor struct {
			Accession string `xml:"accession,attr"`
		} `xml:"SAMPLE_DESCRIPTOR"`
	} `xml:"EXPERIMENT>DESIGN"`
	Platform struct {
		InstrumentModel string `xml:",innerxml"`
	} `xml:"EXPERIMENT>PLATFORM"`
	Library struct {
		Strategy  string `xml:"LIBRARY_STRATEGY"`
		Source    string `xml:"LIBRARY_SOURCE"`
		Selection string `xml:"LIBRARY_SELECTION"`
	} `xml:"EXPERIMENT>DESIGN>LIBRARY_DESCRIPTOR"`
}

ExperimentPackage represents an experiment from SRA XML

type ExperimentRef

type ExperimentRef struct {
	Identifiers *Identifiers `xml:"IDENTIFIERS"`
	RefName     string       `xml:"refname,attr,omitempty"`
	RefCenter   string       `xml:"refcenter,attr,omitempty"`
	Accession   string       `xml:"accession,attr,omitempty"`
}

ExperimentRef references the parent experiment

type ExperimentSet

type ExperimentSet struct {
	XMLName     xml.Name     `xml:"EXPERIMENT_SET"`
	Experiments []Experiment `xml:"EXPERIMENT"`
}

ExperimentSet represents a collection of experiments

type HoldAction

type HoldAction struct {
	Target        string `xml:"target,attr,omitempty"`
	HoldUntilDate string `xml:"HoldUntilDate,attr,omitempty"`
}

HoldAction represents a HOLD action

type Identifier

type Identifier struct {
	Label string `xml:"label,attr,omitempty"`
	Value string `xml:",chardata"`
}

Identifier represents a simple identifier

type Identifiers

type Identifiers struct {
	PrimaryID    *Identifier   `xml:"PRIMARY_ID"`
	SecondaryIDs []Identifier  `xml:"SECONDARY_ID"`
	ExternalIDs  []QualifiedID `xml:"EXTERNAL_ID"`
	SubmitterIDs []QualifiedID `xml:"SUBMITTER_ID"`
	UUIDs        []Identifier  `xml:"UUID"`
}

Identifiers contains record identifiers

type LibraryDescriptor

type LibraryDescriptor struct {
	LibraryName                 string        `xml:"LIBRARY_NAME"`
	LibraryStrategy             string        `xml:"LIBRARY_STRATEGY"`
	LibrarySource               string        `xml:"LIBRARY_SOURCE"`
	LibrarySelection            string        `xml:"LIBRARY_SELECTION"`
	LibraryLayout               LibraryLayout `xml:"LIBRARY_LAYOUT"`
	TargetedLoci                *TargetedLoci `xml:"TARGETED_LOCI"`
	LibraryConstructionProtocol string        `xml:"LIBRARY_CONSTRUCTION_PROTOCOL"`
}

LibraryDescriptor contains library preparation details

type LibraryLayout

type LibraryLayout struct {
	Single *struct{}   `xml:"SINGLE"`
	Paired *PairedInfo `xml:"PAIRED"`
}

LibraryLayout specifies single or paired reads

func (*LibraryLayout) IsPaired

func (l *LibraryLayout) IsPaired() bool

IsPaired checks if the library layout is paired-end

type Link struct {
	URLLink  *URLLink `xml:"URL_LINK"`
	XRefLink *XRef    `xml:"XREF_LINK"`
}

Link represents an external link

type Locus

type Locus struct {
	LocusName   string `xml:"locus_name,attr"`
	Description string `xml:"description,attr,omitempty"`
	ProbeSet    *XRef  `xml:"PROBE_SET"`
}

Locus represents a targeted locus

type ModifyAction

type ModifyAction struct {
	Source string `xml:"source,attr"`
	Schema string `xml:"schema,attr,omitempty"`
}

ModifyAction represents a MODIFY action

type PairedInfo

type PairedInfo struct {
	NominalLength int     `xml:"NOMINAL_LENGTH,attr,omitempty"`
	NominalSdev   float64 `xml:"NOMINAL_SDEV,attr,omitempty"`
}

PairedInfo contains paired-end library information

type PipelineType

type PipelineType struct {
	Programs []ProgramType `xml:"PIPE_SECTION>PROGRAM"`
}

PipelineType represents pipeline information

type Platform

type Platform struct {
	Illumina         *PlatformDetails `xml:"ILLUMINA"`
	IonTorrent       *PlatformDetails `xml:"ION_TORRENT"`
	PacBio           *PlatformDetails `xml:"PACBIO_SMRT"`
	OxfordNanopore   *PlatformDetails `xml:"OXFORD_NANOPORE"`
	LS454            *PlatformDetails `xml:"LS454"`
	Solid            *PlatformDetails `xml:"ABI_SOLID"`
	Helicos          *PlatformDetails `xml:"HELICOS"`
	CompleteGenomics *PlatformDetails `xml:"COMPLETE_GENOMICS"`
	Capillary        *PlatformDetails `xml:"CAPILLARY"`
}

Platform contains sequencing platform information

func (*Platform) GetInstrumentModel

func (p *Platform) GetInstrumentModel() string

GetInstrumentModel extracts the instrument model from the Platform struct

func (*Platform) GetPlatformName

func (p *Platform) GetPlatformName() string

GetPlatformName extracts the platform name from the Platform struct

type PlatformDetails

type PlatformDetails struct {
	InstrumentModel string `xml:"INSTRUMENT_MODEL"`
}

PlatformDetails contains platform-specific information

type Pool

type Pool struct {
	DefaultMember *PoolMember  `xml:"DEFAULT_MEMBER"`
	Members       []PoolMember `xml:"MEMBER"`
}

Pool represents pooled samples

type PoolMember

type PoolMember struct {
	RefName    string      `xml:"refname,attr,omitempty"`
	RefCenter  string      `xml:"refcenter,attr,omitempty"`
	Accession  string      `xml:"accession,attr,omitempty"`
	MemberName string      `xml:"member_name,attr,omitempty"`
	Proportion float32     `xml:"proportion,attr,omitempty"`
	ReadLabels []ReadLabel `xml:"READ_LABEL"`
}

PoolMember represents a member of a sample pool

type ProcessingType

type ProcessingType struct {
	Pipeline PipelineType `xml:"PIPELINE"`
}

ProcessingType represents processing information

type ProgramType

type ProgramType struct {
	Name    string `xml:"name,attr"`
	Version string `xml:"version,attr,omitempty"`
}

ProgramType represents a program in the pipeline

type ProtectAction

type ProtectAction struct {
}

ProtectAction represents a PROTECT action

type QualifiedID

type QualifiedID struct {
	Namespace string `xml:"namespace,attr"`
	Label     string `xml:"label,attr,omitempty"`
	Value     string `xml:",chardata"`
}

QualifiedID represents an identifier with namespace

type ReadLabel

type ReadLabel struct {
	ReadGroupTag string `xml:"read_group_tag,attr"`
	Value        string `xml:",chardata"`
}

ReadLabel for pool members

type ReadSpec

type ReadSpec struct {
	ReadIndex  int    `xml:"READ_INDEX"`
	ReadClass  string `xml:"READ_CLASS"`
	ReadType   string `xml:"READ_TYPE"`
	BaseCoord  int    `xml:"BASE_COORD"`
	ReadLength int    `xml:"READ_LENGTH,omitempty"`
}

ReadSpec defines read specifications

type ReferenceAlignment

type ReferenceAlignment struct {
	Assembly   Assembly            `xml:"ASSEMBLY"`
	RunLabels  *RunLabels          `xml:"RUN_LABELS"`
	SeqLabels  *SeqLabels          `xml:"SEQ_LABELS"`
	Processing AlignmentProcessing `xml:"PROCESSING"`
}

ReferenceAlignment represents reference alignment analysis

type RelatedStudies

type RelatedStudies struct {
	RelatedStudy []RelatedStudy `xml:"RELATED_STUDY"`
}

RelatedStudies contains links to related studies

type RelatedStudy

type RelatedStudy struct {
	RelatedLink XRef `xml:"RELATED_LINK"`
	IsPrimary   bool `xml:"IS_PRIMARY"`
}

RelatedStudy represents a single related study

type ReleaseAction

type ReleaseAction struct {
	Target string `xml:"target,attr,omitempty"`
}

ReleaseAction represents a RELEASE action

type Run

type Run struct {
	XMLName xml.Name `xml:"RUN"`

	// Attributes from NameGroup
	Alias      string `xml:"alias,attr,omitempty"`
	CenterName string `xml:"center_name,attr,omitempty"`
	BrokerName string `xml:"broker_name,attr,omitempty"`
	Accession  string `xml:"accession,attr,omitempty"`
	RunCenter  string `xml:"run_center,attr,omitempty"`
	RunDate    string `xml:"run_date,attr,omitempty"`

	// Elements
	Identifiers   *Identifiers   `xml:"IDENTIFIERS"`
	Title         string         `xml:"TITLE"`
	ExperimentRef ExperimentRef  `xml:"EXPERIMENT_REF"`
	DataBlock     *DataBlock     `xml:"DATA_BLOCK"`
	RunLinks      *RunLinks      `xml:"RUN_LINKS"`
	RunAttributes *RunAttributes `xml:"RUN_ATTRIBUTES"`
	Statistics    *RunStatistics `xml:"Statistics"`
}

Run represents a complete SRA run record

type RunAttributes

type RunAttributes struct {
	Attributes []Attribute `xml:"RUN_ATTRIBUTE"`
}

RunAttributes contains custom attributes

type RunFile

type RunFile struct {
	Filename            string `xml:"filename,attr"`
	FileType            string `xml:"filetype,attr"`
	ChecksumMethod      string `xml:"checksum_method,attr,omitempty"`
	Checksum            string `xml:"checksum,attr,omitempty"`
	UnencryptedChecksum string `xml:"unencrypted_checksum,attr,omitempty"`
}

RunFile represents a data file for the run

type RunLabel

type RunLabel struct {
	RefName        string `xml:"refname,attr,omitempty"`
	RefCenter      string `xml:"refcenter,attr,omitempty"`
	Accession      string `xml:"accession,attr,omitempty"`
	DataBlockName  string `xml:"data_block_name,attr,omitempty"`
	ReadGroupLabel string `xml:"read_group_label,attr,omitempty"`
}

RunLabel represents a run label mapping

type RunLabels

type RunLabels struct {
	Runs []RunLabel `xml:"RUN"`
}

RunLabels maps run labels to archive runs

type RunLinks struct {
	Links []Link `xml:"RUN_LINK"`
}

RunLinks contains external links

type RunSet

type RunSet struct {
	XMLName xml.Name `xml:"RUN_SET"`
	Runs    []Run    `xml:"RUN"`
}

RunSet represents a collection of runs

type RunStatistics

type RunStatistics struct {
	TotalSpots int64  `xml:"total_spots,attr"`
	TotalBases int64  `xml:"total_bases,attr"`
	TotalSize  int64  `xml:"total_size,attr,omitempty"`
	LoadDone   bool   `xml:"load_done,attr,omitempty"`
	Published  string `xml:"published,attr,omitempty"`
}

RunStatistics contains run statistics

type Sample

type Sample struct {
	XMLName xml.Name `xml:"SAMPLE"`

	// Attributes from NameGroup
	Alias      string `xml:"alias,attr,omitempty"`
	CenterName string `xml:"center_name,attr,omitempty"`
	BrokerName string `xml:"broker_name,attr,omitempty"`
	Accession  string `xml:"accession,attr,omitempty"`

	// Elements
	Identifiers      *Identifiers      `xml:"IDENTIFIERS"`
	Title            string            `xml:"TITLE"`
	SampleName       SampleName        `xml:"SAMPLE_NAME"`
	Description      string            `xml:"DESCRIPTION"`
	SampleLinks      *SampleLinks      `xml:"SAMPLE_LINKS"`
	SampleAttributes *SampleAttributes `xml:"SAMPLE_ATTRIBUTES"`
}

Sample represents a complete SRA sample record

type SampleAttributes

type SampleAttributes struct {
	Attributes []Attribute `xml:"SAMPLE_ATTRIBUTE"`
}

SampleAttributes contains custom attributes

type SampleDescriptor

type SampleDescriptor struct {
	Identifiers *Identifiers `xml:"IDENTIFIERS"`
	Pool        *Pool        `xml:"POOL"`
	RefName     string       `xml:"refname,attr,omitempty"`
	RefCenter   string       `xml:"refcenter,attr,omitempty"`
	Accession   string       `xml:"accession,attr,omitempty"`
}

SampleDescriptor references the sample

type SampleLinks struct {
	Links []Link `xml:"SAMPLE_LINK"`
}

SampleLinks contains external links

type SampleName

type SampleName struct {
	DisplayName    string `xml:"display_name,attr,omitempty"`
	TaxonID        int    `xml:"TAXON_ID"`
	ScientificName string `xml:"SCIENTIFIC_NAME"`
	CommonName     string `xml:"COMMON_NAME"`
}

SampleName contains taxonomic information

type SamplePackage

type SamplePackage struct {
	Accession   string `xml:"accession,attr"`
	Description string `xml:"SAMPLE>DESCRIPTION"`
	SampleName  struct {
		ScientificName string `xml:"SCIENTIFIC_NAME"`
		TaxonID        int    `xml:"TAXON_ID"`
	} `xml:"SAMPLE>SAMPLE_NAME"`
	Attributes []struct {
		Tag   string `xml:"TAG"`
		Value string `xml:"VALUE"`
	} `xml:"SAMPLE>SAMPLE_ATTRIBUTES>SAMPLE_ATTRIBUTE"`
}

SamplePackage represents a sample from SRA XML

type SampleSet

type SampleSet struct {
	XMLName xml.Name `xml:"SAMPLE_SET"`
	Samples []Sample `xml:"SAMPLE"`
}

SampleSet represents a collection of samples

type SeqLabel

type SeqLabel struct {
	Accession     string `xml:"accession,attr"`
	GI            int    `xml:"gi,attr,omitempty"`
	DataBlockName string `xml:"data_block_name,attr,omitempty"`
	SeqLabel      string `xml:"seq_label,attr,omitempty"`
}

SeqLabel represents a sequence label mapping

type SeqLabels

type SeqLabels struct {
	Sequences []SeqLabel `xml:"SEQUENCE"`
}

SeqLabels maps sequence labels to reference sequences

type SequenceAnnotation

type SequenceAnnotation struct {
	Processing ProcessingType `xml:"PROCESSING"`
}

SequenceAnnotation represents sequence annotation analysis

type SpotDecodeSpec

type SpotDecodeSpec struct {
	SpotLength int        `xml:"SPOT_LENGTH"`
	ReadSpecs  []ReadSpec `xml:"READ_SPEC"`
}

SpotDecodeSpec contains spot decoding specification

type SpotDescriptor

type SpotDescriptor struct {
	SpotDecodeSpec *SpotDecodeSpec `xml:"SPOT_DECODE_SPEC"`
}

SpotDescriptor for decoding reads

type StandardAssembly

type StandardAssembly struct {
	ShortName string `xml:"short_name,attr,omitempty"`
	Names     []XRef `xml:"NAME"`
}

StandardAssembly represents standard reference assembly

type Study

type Study struct {
	XMLName xml.Name `xml:"STUDY"`

	// Attributes from NameGroup
	Alias      string `xml:"alias,attr,omitempty"`
	CenterName string `xml:"center_name,attr,omitempty"`
	BrokerName string `xml:"broker_name,attr,omitempty"`
	Accession  string `xml:"accession,attr,omitempty"`

	// Elements
	Identifiers     *Identifiers     `xml:"IDENTIFIERS"`
	Descriptor      StudyDescriptor  `xml:"DESCRIPTOR"`
	StudyLinks      *StudyLinks      `xml:"STUDY_LINKS"`
	StudyAttributes *StudyAttributes `xml:"STUDY_ATTRIBUTES"`
}

Study represents a complete SRA study record matching XSD schema

type StudyAttributes

type StudyAttributes struct {
	Attributes []Attribute `xml:"STUDY_ATTRIBUTE"`
}

StudyAttributes contains custom attributes

type StudyDescriptor

type StudyDescriptor struct {
	StudyTitle        string          `xml:"STUDY_TITLE"`
	StudyType         *StudyType      `xml:"STUDY_TYPE"`
	StudyAbstract     string          `xml:"STUDY_ABSTRACT"`
	CenterProjectName string          `xml:"CENTER_PROJECT_NAME"`
	RelatedStudies    *RelatedStudies `xml:"RELATED_STUDIES"`
	StudyDescription  string          `xml:"STUDY_DESCRIPTION"`
}

StudyDescriptor contains study metadata

type StudyLinks struct {
	Links []Link `xml:"STUDY_LINK"`
}

StudyLinks contains external links for the study

type StudyPackage

type StudyPackage struct {
	Accession  string `xml:"accession,attr"`
	Descriptor struct {
		StudyTitle    string `xml:"STUDY_TITLE"`
		StudyAbstract string `xml:"STUDY_ABSTRACT"`
		StudyType     struct {
			ExistingStudyType string `xml:"existing_study_type,attr"`
		} `xml:"STUDY_TYPE"`
	} `xml:"STUDY>DESCRIPTOR"`
}

StudyPackage represents a study from SRA XML

type StudyRef

type StudyRef struct {
	Identifiers *Identifiers `xml:"IDENTIFIERS"`
	RefName     string       `xml:"refname,attr,omitempty"`
	RefCenter   string       `xml:"refcenter,attr,omitempty"`
	Accession   string       `xml:"accession,attr,omitempty"`
}

StudyRef references the parent study

type StudySet

type StudySet struct {
	XMLName xml.Name `xml:"STUDY_SET"`
	Studies []Study  `xml:"STUDY"`
}

StudySet represents a collection of studies

type StudyType

type StudyType struct {
	ExistingStudyType string `xml:"existing_study_type,attr"`
	NewStudyType      string `xml:"new_study_type,attr,omitempty"`
}

StudyType defines the type of study

type Submission

type Submission struct {
	XMLName xml.Name `xml:"SUBMISSION"`

	// Attributes from NameGroup
	Alias             string `xml:"alias,attr,omitempty"`
	CenterName        string `xml:"center_name,attr,omitempty"`
	BrokerName        string `xml:"broker_name,attr,omitempty"`
	Accession         string `xml:"accession,attr,omitempty"`
	SubmissionDate    string `xml:"submission_date,attr,omitempty"`
	SubmissionComment string `xml:"submission_comment,attr,omitempty"`
	LabName           string `xml:"lab_name,attr,omitempty"`

	// Elements
	Identifiers          *Identifiers          `xml:"IDENTIFIERS"`
	Title                string                `xml:"TITLE"`
	Contacts             *SubmissionContacts   `xml:"CONTACTS"`
	Actions              *SubmissionActions    `xml:"ACTIONS"`
	SubmissionLinks      *SubmissionLinks      `xml:"SUBMISSION_LINKS"`
	SubmissionAttributes *SubmissionAttributes `xml:"SUBMISSION_ATTRIBUTES"`
}

Submission represents a complete SRA submission record

type SubmissionActions

type SubmissionActions struct {
	Actions []Action `xml:"ACTION"`
}

SubmissionActions contains submission actions

type SubmissionAttributes

type SubmissionAttributes struct {
	Attributes []Attribute `xml:"SUBMISSION_ATTRIBUTE"`
}

SubmissionAttributes contains custom attributes

type SubmissionContacts

type SubmissionContacts struct {
	Contacts []Contact `xml:"CONTACT"`
}

SubmissionContacts contains submission contacts

type SubmissionLinks struct {
	Links []Link `xml:"SUBMISSION_LINK"`
}

SubmissionLinks contains external links

type SubmissionSet

type SubmissionSet struct {
	XMLName     xml.Name     `xml:"SUBMISSION_SET"`
	Submissions []Submission `xml:"SUBMISSION"`
}

SubmissionSet represents a collection of submissions

type SuppressAction

type SuppressAction struct {
	Target string `xml:"target,attr"`
}

SuppressAction represents a SUPPRESS action

type TargetedLoci

type TargetedLoci struct {
	Loci []Locus `xml:"LOCUS"`
}

TargetedLoci for targeted sequencing

type URLLink struct {
	Label string `xml:"LABEL"`
	URL   string `xml:"URL"`
}

URLLink represents a URL link

type ValidateAction

type ValidateAction struct {
}

ValidateAction represents a VALIDATE action

type XMLParser

type XMLParser struct {
	// contains filtered or unexported fields
}

XMLParser handles streaming XML parsing of SRA metadata

func NewXMLParser

func NewXMLParser(reader io.Reader) *XMLParser

NewXMLParser creates a new XML parser

func (*XMLParser) Parse

func (p *XMLParser) Parse() (<-chan interface{}, <-chan error)

Parse streams through XML and returns parsed entities

type XRef

type XRef struct {
	DB    string `xml:"DB"`
	ID    string `xml:"ID"`
	Label string `xml:"LABEL,omitempty"`
}

XRef represents a cross-reference

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL