def test_get_structure_engine_default(self): ms = magma.MagmaSession(':memory:', 'My description') se = ms.get_structure_engine() self.assertIsInstance(se, magma.StructureEngine) self.assertFalse(hasattr(se, 'pubchem_engine'))
def test_get_structure_engine_custom(self): ms = magma.MagmaSession(':memory:', 'My description') args = { 'pubchem_names': True, } se = ms.get_structure_engine(**args) self.assertIsInstance(se, magma.StructureEngine) self.assertIsInstance(se.pubchem_engine, magma.PubChemEngine)
def test_get_ms_data_engine_default(self): ms = magma.MagmaSession(':memory:', u'My description') se = ms.get_ms_data_engine() self.assertIsInstance(se, magma.MsDataEngine) rundata = ms.db_session.query(Run).one() self.assertDictContainsSubset({ 'ionisation_mode': 1, 'abs_peak_cutoff': 1000, 'max_ms_level': 10, 'mz_precision':5.0, 'precursor_mz_precision':0.005 }, rundata.__dict__)
def test_get_ms_data_engine_custom(self): ms = magma.MagmaSession(':memory:', 'My description') args = { 'ionisation_mode': -1, 'abs_peak_cutoff': 10001, 'max_ms_level': 101, 'mz_precision': 0.01, 'precursor_mz_precision': 0.05 } se = ms.get_ms_data_engine(**args) self.assertIsInstance(se, magma.MsDataEngine) rundata = ms.db_session.query(Run).one() self.assertDictContainsSubset(args, rundata.__dict__)
def test_get_annotate_engine_default(self): ms = magma.MagmaSession(':memory:', u'My description') ms.get_ms_data_engine() se = ms.get_annotate_engine() self.assertIsInstance(se, magma.AnnotateEngine) rundata = ms.db_session.query(Run).one() self.assertDictContainsSubset({ 'skip_fragmentation':False, 'max_broken_bonds':3, 'ms_intensity_cutoff':1e6, 'msms_intensity_cutoff':5, 'use_all_peaks':False }, rundata.__dict__)
def test_construct_with_existing_db(self): # create db with run description import tempfile, os dbfile = tempfile.NamedTemporaryFile(delete=False) engine = create_engine('sqlite:///' + dbfile.name) Base.metadata.create_all(engine) session = sessionmaker(bind=engine)() session.add(Run(description='My first description')) session.commit() dbfile.close() ms = magma.MagmaSession(dbfile.name, 'My second description') rundata = ms.db_session.query(Run).one() # first description is not overwritten self.assertEqual(rundata.description, 'My first description') os.remove(dbfile.name)
choices=['GNPS', 'MSP']) ap.add_argument('experiment_id', help="Experiment ID", type=int) ap.add_argument('magma_db', help="(Non-)existing magma database", type=str) ap.add_argument('spectra_path', help="path to spectra", type=str) return ap # MAIN import glob args = arg_parser().parse_args(sys.argv[1:]) # if magma_db exists it is reused, skipping the parts that create and run the magma job db_exists = os.path.isfile(args.magma_db) if not db_exists: magma_session = magma.MagmaSession(args.magma_db, 'ms2lda_dataset', 'debug') ms_data_engine = magma_session.get_ms_data_engine( ionisation_mode=args.mode, abs_peak_cutoff=0, mz_precision=20, mz_precision_abs=0.005) struct_engine = magma_session.get_structure_engine(pubchem_names=False) annotate_engine = magma_session.get_annotate_engine( ms_intensity_cutoff=0, msms_intensity_cutoff=0) if os.path.isdir(args.spectra_path): files = glob.glob(args.spectra_path + '/*') else: files = [args.spectra_path] loader = loaders[args.loader]() with stdout2stderr():
def get_magma_session(self, db, description="", log='warn'): return magma.MagmaSession(db, description, log)
def test_construct_with_new_db(self): ms = magma.MagmaSession(':memory:', 'My description') self.assertIsInstance(ms, magma.MagmaSession) rundata = ms.db_session.query(Run).one() self.assertEqual(rundata.description, 'My description')