Source code for micom.db

"""Build a database of organism metabolic models."""

import pandas as pd
import os
from os import path
from zipfile import ZipFile

[docs]def load_manifest(folder): """Get the manifest from a model DB.""" mpath = path.join(folder, "manifest.csv") if not path.exists(mpath): raise ValueError( "No manifest found. `%s` does not look like a valid " "model database." % folder ) manifest = pd.read_csv(path.join(folder, "manifest.csv")) if "file" not in manifest.columns: raise ValueError("Invalid manifest for model database :(") manifest.file = [path.join(folder, f) for f in manifest.file] return manifest
[docs]def load_zip_model_db(artifact, extract_path): """Prepare a model database for use.""" if not path.exists(extract_path): os.mkdir(extract_path) with ZipFile(artifact) as zf: zf.extractall(extract_path) manifest = load_manifest(extract_path) manifest["file"] = [path.join(extract_path, f) for f in manifest.file] return manifest