def test_1_theoretical_ion_space_step(self):
     print("test_1_theoretical_ion_space_step")
     ms_digest = MSDigestParameters.parse(self.protein_prospector_file)
     theo_ions = entry_point.generate_theoretical_ion_space(
         self.ms1_matching_output_file, self.glycosylation_sites_file,
         ms_digest.constant_modifications, ms_digest.variable_modifications,
         ms_digest.enzyme, self.num_procs)
     self.assertTrue(os.path.exists(theo_ions))
     self.theoretical_ion_space_file = theo_ions
     theoretical_ions = SqliteDict(theo_ions, tablename="theoretical_search_space")
     sequence_set = theoretical_ions.itervalues()
     peptide_sequences = [
         sequence.Sequence(s["Seq_with_mod"]) for s in sequence_set]
     peptide_mods = set()
     for seq in peptide_sequences:
         for resid, mod in seq:
             peptide_mods.update((m.rule for m in mod))
     print(peptide_mods)
class FindingsDatabase(object):
    def __init__(self, db_file):
        self._findings_db = SqliteDict(db_file,
                                       tablename="findings",
                                       autocommit=True,
                                       decode=legacy_decode)

    def close(self):
        self._findings_db.close()

    def get_findings(self, finding_filter) -> Iterable[Finding]:
        for result in self._findings_db.itervalues():
            if finding_filter(result):
                yield result

    def create(self, commit, secret):
        finding = Finding(commit, secret)
        self._findings_db[finding.id] = finding
        return finding

    def update(self, finding):
        self._findings_db[finding.id] = finding
Beispiel #3
0
class Cache(object):
    def __init__(self, **kwargs):
        self.name = kwargs.get('name', DEFAULT_DATABASE_NAME)
        self._db = SqliteDict('./%s.sqlite' % self.name,
                              encode=cache_encode,
                              decode=cache_decode,
                              autocommit=True)
        logger.info('name=%s size=%s', self.name, len(self._db))

    def close(self):
        self._db.close()

    def __del__(self):
        pass  # self.close()

    def __iter__(self):
        return self._db.__iter__()

    def iteritems(self):
        return self._db.iteritems()

    def iterkeys(self):
        return self._db.iterkeys()

    def itervalues(self):
        return self._db.itervalues()

    def items(self):
        return self.iteritems()

    def __getitem__(self, key):
        return self._db.__getitem__(key)

    def get(self, key, default=None):
        try:
            return self.__getitem__(key)
        except KeyError:
            return default

    def __setitem__(self, key, value):
        return self._db.__setitem__(key, value)

    def set(self, key, value):
        return self.__setitem__(key, value)

    def __len__(self):
        return len(self._db)

    def __contains__(self, key):
        return key in self._db

    def __delitem__(self, key):
        if key in self._db:
            del self._db[key]

    def list(self, limit=None):
        logger.info('list')
        keys = []
        for key in self:
            keys.append(key)
            if limit is not None and len(keys) == limit: break
        return keys