Updating dataset databases¶
Setup¶
[6]:
import json, pprint
from metaspace import SMInstance
sm = SMInstance()
sm
[6]:
SMInstance(https://metaspace2020.eu/graphql)
[5]:
# This will prompt you to enter your API key and will save it to a config file.
# Note that API keys should be kept secret like passwords.
sm.save_login()
Update dataset¶
[11]:
def databases_as_tuples(database_details):
return [(db['name'], db['version']) for db in database_details]
Existing databases
[12]:
from pprint import pprint
dataset_id = '2017-05-17_19h49m04s'
dataset = sm.dataset(id=dataset_id)
pprint(databases_as_tuples(dataset.database_details))
[('HMDB', 'v4'),
('core_metabolome_v3', '2020-03-30'),
('ChEBI', '2016'),
('core_metabolome_v2', '2020-02-28')]
Specify list of new databases against which you want to analyze your dataset
[ ]:
# Available databases:
# Please notice that if you choose more than 3 databases the processing may take a while
# ("BraChemDB", "2018-01")
# ("ChEBI", "2018-01")
# ("HMDB", "v4")
# ("HMDB-cotton", "v4")
# ("HMDB-endogenous", "v4")
# ("LipidMaps", "2017-12-12")
# ("PAMDB", "v1.0")
# ("SwissLipids", "2018-02-02")
# ("core_metabolome_v3", "2020-03-30")
new_databases = [('ChEBI', '2018-01'), ('LipidMaps', '2017-12-12')]
Update the dataset
[ ]:
ds = sm.dataset(id=dataset_id)
sm.update_dataset_dbs(dataset_id, new_databases, ds.adducts)
Update all datasets in project¶
[ ]:
# "Whole body imaging, animal models" project
for ds in sm.dataset(project='a493c7b8-e27f-11e8-9d75-3bb2859d3748'):
databases = databases_as_tuples(ds.database_details)
print(ds.name, databases)
if ('core_metabolome_v3', '2020-03-30') not in databases:
databases.append(('core_metabolome_v3', '2020-03-30'))
sm.update_dataset_dbs(ds.id, databases, ds.adducts)