Ejemplo n.º 1
0
 def test_commit_intermediate_results(self):
     src = ecmdb.Ecmdb(cache_dirname=self.cache_dirname,
                       download_backups=False,
                       load_content=False,
                       verbose=True,
                       max_entries=5,
                       commit_intermediate_results=True)
     src.load_content()
Ejemplo n.º 2
0
    def test_download_all(self):
        src = ecmdb.Ecmdb(download_backups=False,
                          load_content=True,
                          clear_content=True,
                          clear_requests_cache=False,
                          verbose=True)
        src.upload_backups()

        session = src.session
        self.assertGreater(session.query(ecmdb.Compound).count(), 3500)
Ejemplo n.º 3
0
 def setUpClass(cls):
     cls.cache_dirname = tempfile.mkdtemp()
     src = ecmdb.Ecmdb(cache_dirname=cls.cache_dirname,
                       download_backups=False,
                       load_content=False,
                       verbose=True,
                       max_entries=12)
     src.load_content()
     src.session.close()
     src.engine.dispose()
Ejemplo n.º 4
0
    def build_ecmdb(self):
        """
        Collects ECMDB.sqlite file and integrates its data into the common ORM

        """

        ecmDB = ecmdb.Ecmdb(
            cache_dirname=self.cache_dirname, verbose=self.verbose)
        ecm_ses = ecmDB.session
        ecmdb_compound = ecm_ses.query(ecmdb.Compound).all()

        max_entries = self.max_entries

        if self.load_entire_small_dbs:
            max_entries = float('inf')

        entries = 0
        for metabolite in ecmdb_compound:
            if entries < max_entries:
                concentration = metabolite.concentrations
                ref = metabolite.cross_references
                compart = metabolite.compartments
                syn = metabolite.synonyms
                metadata = self.get_or_create_object(
                    models.Metadata, name=metabolite.name)
                tax = self.session.query(
                    models.Taxon).filter_by(ncbi_id=562).first()
                metadata.taxon.append(tax) if tax else metadata.taxon.append(
                    self.get_or_create_object(models.Taxon, ncbi_id=562))
                metadata.resource = [self.get_or_create_object(
                    models.Resource, namespace=docs.namespace, _id=docs.id) for docs in ref]
                metadata.cell_compartment = [self.get_or_create_object(
                    models.CellCompartment, name=areas.name) for areas in compart]
                metadata.synonym = [self.get_or_create_object(
                    models.Synonym, name=syns.name) for syns in syn]
                self.property.structure = self.get_or_create_object(models.Structure, type='Structure', name=metabolite.name,
                                                                    _value_inchi=metabolite.structure,
                                                                    _structure_formula_connectivity=metabolite._structure_formula_connectivity, _metadata=metadata)
                self.entity.metabolite = self.get_or_create_object(models.Metabolite, type='Metabolite', name=metabolite.name,
                                                                 metabolite_name=metabolite.name, description=metabolite.description, comment=metabolite.comment, structure=self.property.structure,
                                                                 _metadata=metadata)
                index = 0 if concentration else -1
                if index == -1:
                    continue
                for rows in concentration:
                    new_metadata = self.get_or_create_object(
                        models.Metadata, name=metabolite.name + ' Concentration ' + str(index))
                    new_metadata.taxon = metadata.taxon
                    new_metadata.cell_compartment = metadata.cell_compartment
                    new_metadata.synonym = metadata.synonym
                    new_metadata.cell_line.append(
                        self.get_or_create_object(models.CellLine, name=rows.strain))
                    new_metadata.conditions.append(self.get_or_create_object(models.Conditions, growth_status=rows.growth_status,
                                                                             media=rows.media, temperature=rows.temperature, growth_system=rows.growth_system))
                    new_metadata.resource = [self.get_or_create_object(
                        models.Resource, namespace=docs.namespace, _id=docs.id) for docs in rows.references]
                    self.property.concentration = self.get_or_create_object(models.Concentration, type='Concentration', name=metabolite.name + ' Concentration ' + str(index),
                                                                            value=rows.value, error=rows.error, units='uM', _metadata=new_metadata, metabolite=self.entity.metabolite)
                    index += 1
                entries += 1


        self.vprint('Comitting')
        self.session.commit()
Ejemplo n.º 5
0
 def setUp(self):
     self.src = ecmdb.Ecmdb(cache_dirname=self.cache_dirname,
                            download_backups=False,
                            load_content=False,
                            verbose=True,
                            max_entries=12)
Ejemplo n.º 6
0
 def setUpClass(cls):
     cls.cache_dirname = tempfile.mkdtemp()
     cls.src = ecmdb.Ecmdb(cache_dirname=cls.cache_dirname,
                           download_backups=True,
                           load_content=False,
                           verbose=True)
Ejemplo n.º 7
0
    def test_download_from_backup(self):
        src = ecmdb.Ecmdb(cache_dirname=self.cache_dirname)
        session = src.session

        self.assertGreater(session.query(ecmdb.Compound).count(), 3500)