def annotate_domains(self, record: Record, cds: CDSFeature) -> None: """ Adds domain annotations to CDSFeatures and creates ModularDomain features for all domains found """ if not self.domain_hmms: return cds.nrps_pks.type = self.type # generate domain features self.domain_features = generate_domain_features(cds, self.domain_hmms) ks_sub = iter(self.ks_subtypes) for domain, domain_feature in self.domain_features.items(): if domain.hit_id == "PKS_KS": sub = next(ks_sub) else: sub = "" record.add_antismash_domain(domain_feature) # update the CDS' NRPS_PKS qualifier cds.nrps_pks.add_domain(domain, domain_feature.get_name(), sub) # construct CDSMotif features if not self.motif_hmms: return motif_features = generate_motif_features(cds, self.motif_hmms) for motif in motif_features: record.add_cds_motif(motif) cds.motifs.extend(motif_features)
def annotate_domains(self, record: Record, cds: CDSFeature) -> None: """ Adds domain annotations to CDSFeatures and creates AntismashDomain features for all domains found """ if not self.domain_hmms: return cds.nrps_pks.type = self.type # generate AntismashDomain features domain_features = generate_domain_features(record, cds, self.domain_hmms) for domain, domain_feature in domain_features.items(): record.add_antismash_domain(domain_feature) # update the CDS' NRPS_PKS qualifier cds.nrps_pks.add_domain(domain, domain_feature.get_name()) # construct CDSMotif features if not self.motif_hmms: return motif_features = generate_motif_features(record, cds, self.motif_hmms) for motif in motif_features: record.add_cds_motif(motif) cds.motifs.extend(motif_features)