From e45deec461bc0f4ca2966dfb2ff18bfd016dc59f Mon Sep 17 00:00:00 2001 From: dcheng <102439573+dcheng2022@users.noreply.github.com> Date: Tue, 27 Aug 2024 14:43:26 -0500 Subject: [PATCH] add commit ref to MOFid and MOFkey --- Python/id_constructor.py | 7 ++++--- Python/run_mofid.py | 8 +++++--- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/Python/id_constructor.py b/Python/id_constructor.py index 05962d28..ff58b743 100644 --- a/Python/id_constructor.py +++ b/Python/id_constructor.py @@ -142,7 +142,7 @@ def extract_topology(mof_path): return 'MISMATCH' return first_net -def assemble_mofid(fragments, topology, cat = None, mof_name='NAME_GOES_HERE'): +def assemble_mofid(fragments, topology, cat = None, mof_name='NAME_GOES_HERE', commit_ref = "NO_REF"): # Assemble the MOFid string from its components mofid = '.'.join(fragments) + ' ' mofid = mofid + 'MOFid-v1' + '.' @@ -155,12 +155,13 @@ def assemble_mofid(fragments, topology, cat = None, mof_name='NAME_GOES_HERE'): mofid = mofid + 'NA' if mofid.startswith(' '): # Null linkers. Make .smi compatible mofid = '*' + mofid + 'no_mof' + mofid = mofid + '.' + commit_ref mofid = mofid + ';' + mof_name return mofid -def assemble_mofkey(base_mofkey, base_topology): +def assemble_mofkey(base_mofkey, base_topology, commit_ref="NO_REF"): # Add a topology to an existing MOFkey - return base_mofkey.replace('MOFkey-v1', 'MOFkey-v1.' + base_topology) + return base_mofkey.replace('MOFkey-v1', 'MOFkey-v1.' + base_topology + '.' + commit_ref) def parse_mofid(mofid): # Deconstruct a MOFid string into its pieces diff --git a/Python/run_mofid.py b/Python/run_mofid.py index 607444d1..3a126daf 100644 --- a/Python/run_mofid.py +++ b/Python/run_mofid.py @@ -34,17 +34,19 @@ def cif2mofid(cif_path,output_path=DEFAULT_OUTPUT_PATH): mof_name = os.path.splitext(os.path.basename(cif_path))[0] mofkey = base_mofkey + with open('.git/ORIG_HEAD', mode='r') as f: + commit_ref = f.read()[:8] if topology != 'NA': base_topology = topology.split(',')[0] - mofkey = assemble_mofkey(mofkey, base_topology) + mofkey = assemble_mofkey(mofkey, base_topology, commit_ref=commit_ref) all_fragments = [] all_fragments.extend(node_fragments) all_fragments.extend(linker_fragments) all_fragments.sort() - mofid = assemble_mofid(all_fragments, topology, cat, - mof_name=mof_name) + mofid = assemble_mofid(all_fragments, topology, cat=cat, + mof_name=mof_name, commit_ref=commit_ref) parsed = parse_mofid(mofid) identifiers = {