def add_to_record(self, record: Record) -> None: # track multi-CDS modules to avoid duplication added_modules = set() for cds, result in self.cds_results.items(): for module in result.modules: if module in added_modules: continue added_modules.add(module) domains: List[AntismashDomain] = [] for component in module: if component.locus == cds.get_name(): domain = result.domain_features[component.domain] else: other_cds_results = self.cds_results[ record.get_cds_by_name(component.locus)] domain = other_cds_results.domain_features[ component.domain] domains.append(domain) mod_type = ModuleFeature.types.UNKNOWN if module.is_nrps(): mod_type = ModuleFeature.types.NRPS elif module.is_pks(): mod_type = ModuleFeature.types.PKS feature = ModuleFeature(domains, mod_type, complete=module.is_complete(), starter=module.is_starter_module(), final=module.is_termination_module(), iterative=module.is_iterative()) record.add_module(feature)
def add_to_record(self, record: Record) -> None: for result in self.cds_results.values(): for module in result.modules: domains = [result.domain_features[component.domain] for component in module] mod_type = ModuleFeature.types.UNKNOWN if module.is_nrps(): mod_type = ModuleFeature.types.NRPS elif module.is_pks(): mod_type = ModuleFeature.types.PKS feature = ModuleFeature(domains, mod_type, complete=module.is_complete(), starter=module.is_starter_module(), final=module.is_termination_module(), iterative=module.is_iterative()) record.add_module(feature)