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
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