diff --git a/lib/galaxy/datatypes/molecules.py b/lib/galaxy/datatypes/molecules.py index b6100795bce7..b929eb488a22 100644 --- a/lib/galaxy/datatypes/molecules.py +++ b/lib/galaxy/datatypes/molecules.py @@ -10,7 +10,10 @@ Text, ) from galaxy.datatypes.metadata import MetadataElement -from galaxy.datatypes.protocols import DatasetProtocol +from galaxy.datatypes.protocols import ( + DatasetProtocol, + HasExtraFilesAndMetadata, +) from galaxy.datatypes.sniff import ( build_sniff_from_prefix, FilePrefix, @@ -628,7 +631,7 @@ class OBFS(Binary): """OpenBabel Fastsearch format (fs).""" file_ext = "obfs" - composite_type = "basic" + composite_type = "auto_primary_file" MetadataElement( name="base_name", @@ -651,6 +654,33 @@ def __init__(self, **kwd): self.add_composite_file("molecule.mol2", optional=True, is_binary=False, description="Molecule File") self.add_composite_file("molecule.cml", optional=True, is_binary=False, description="Molecule File") + def generate_primary_file(self, dataset: HasExtraFilesAndMetadata) -> str: + rval = ["OpenBabel Fastsearch Index

"] + rval.append("

This composite dataset is composed of the following files:

") + return "\n".join(rval) + + def regenerate_primary_file(self, dataset: DatasetProtocol) -> None: + efp = dataset.extra_files_path + flist = os.listdir(efp) + rval = [ + f"Files for Composite Dataset {dataset.name}

Composite {dataset.name} contains:

") + with open(dataset.get_file_name(), "w") as f: + f.write("\n".join(rval)) + def set_peek(self, dataset: DatasetProtocol, **kwd) -> None: """Set the peek and blurb text.""" if not dataset.dataset.purged: