예제 #1
0
    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)
예제 #2
0
    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)