Skip to content
Snippets Groups Projects
Commit cde5b531 authored by Christopher Randolph Rhodes's avatar Christopher Randolph Rhodes
Browse files

Script converts absolute paths to relative ones in ilastik project files

parent bcf1efbe
No related branches found
No related tags found
2 merge requests!50Release 2024.06.03,!45Issue0037
from os.path import relpath
from pathlib import Path
import shutil
import h5py
def make_abspath_to_relpath(ilp_filename: str, my_root: Path, their_root: Path):
pa_ilp_old = my_root / ilp_filename
assert pa_ilp_old.exists()
pa_ilp_new = pa_ilp_old.parent / f'relpath_{pa_ilp_old.name}'
with h5py.File(shutil.copy(pa_ilp_old, pa_ilp_new), 'r+') as h5:
infos = h5['Input Data/infos']
for lane in infos.keys():
for role in infos[lane].keys():
if len(infos[lane][role]) == 0:
continue
pa_img_abs = Path(infos[lane][role]['filePath'][()].decode())
my_ilp_dir = (my_root / ilp_filename).parent
their_ilp_dir = (their_root / ilp_filename).parent
pa_img_rel = Path(relpath(pa_img_abs, their_ilp_dir))
if pa_img_rel.parts[-2].upper().endswith('.H5'):
assert (my_ilp_dir / Path(*pa_img_rel.parts[0:-1])).exists()
else:
assert (my_ilp_dir / pa_img_rel).exists()
del infos[lane][role]['filePath']
infos[lane][role]['filePath'] = str(pa_img_rel)
return pa_ilp_new
if __name__ == '__main__':
files = [
'01_ilastik_files/240301_LSM900_DNA_PC.ilp',
'01_ilastik_files/240320_LSM900_DNA_OC_new.ilp',
'01_ilastik_files/240301_LSM900_TM_PC.ilp',
'01_ilastik_files/240320_LSM900_TM_OC_new.ilp'
]
for f in files:
new_ilp = make_abspath_to_relpath(
f,
Path('w:/03_analysis/Trial3_LSM900'),
Path('/g/cuylen/01_Share/Filemaker/01_Experiments/Experiments_1100/1156/03_analysis/Trial3_LSM900')
)
print(f'Finished converting {new_ilp}')
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment