def convert_sample(self, sample_entity: Entity) -> Sample: sample = Sample( accession=sample_entity.get_accession('BioSamples'), name=self.named_attribute(sample_entity, 'sample_title'), domain=self.named_attribute(sample_entity, 'domain', self.domain), ncbi_taxon_id=self.named_attribute(sample_entity, 'tax_id'), species=self.named_attribute(sample_entity, 'scientific_name')) sample._append_organism_attribute() for name, value in sample_entity.attributes.items(): if name not in REMOVE_KEYS: sample.attributes.append( Attribute(name=name.replace('_', ' '), value=value, unit=self.unit_map.get(name, None))) return sample
def add_alias(self, spec: dict, entity: Entity): accession = entity.get_accession(f'ENA_{self.ena_type}') if accession: spec['@accession'] = ['', fixed_attribute, accession] else: spec['@alias'] = ['', fixed_attribute, entity.identifier.index]
def update_links_in_submission(self, submission: Submission, study: Entity) -> dict: study_accession = study.get_accession('BioStudies') biostudies_submission = self.get_submission_by_accession(study_accession).json links_section = self.__get_links_section_from_submission(biostudies_submission) self.__update_links_section(links_section, study, submission) return biostudies_submission
def __add_accession(study: Entity, submission_payload: dict): study_accession: str = study.get_accession('BioStudies') if study_accession: submission_payload['accno'] = study_accession return submission_payload