def create_feature_from_location(record: Record, location: FeatureLocation, counter: int = 1, label: Optional[str] = None) -> CDSFeature: """ Creates a CDS feature covering the provided location. Arguments: record: The Record the CDSFeature will belong to, used to generate the feature translation location: The FeatureLocation specifying the location of the CDSFeature counter: An integer to use to format a default label 'allorf' with, used only if label not provided label: The locus tag, protein id, and gene name to use for the new CDSFeature Returns: The CDSFeature created. """ if label is None: label = 'allorf%03d' % counter feature = CDSFeature( location, str(record.get_aa_translation_from_location(location)), locus_tag=label, protein_id=label, gene=label) feature.created_by_antismash = True return feature
def create_feature_from_location(record: Record, location: FeatureLocation, label: Optional[str] = None) -> CDSFeature: """ Creates a CDS feature covering the provided location. Arguments: record: The Record the CDSFeature will belong to, used to generate the feature translation location: The FeatureLocation specifying the location of the CDSFeature label: The locus tag, protein id, and gene name to use for the new CDSFeature Returns: The CDSFeature created. """ if label is None: digits = len(str(len(record))) label = 'allorf_{start:0{digits}}_{end:0{digits}}'.format( digits=digits, start=(location.start + 1), end=location.end ) feature = CDSFeature(location, str(record.get_aa_translation_from_location(location)), locus_tag=label, protein_id=label, gene=label) feature.created_by_antismash = True return feature