Coverage for Bio.GenBank.utils: 44%

# Coverage for Bio.GenBank.utils : 44%

## 16 statements 7 run 9 missing 0 excluded

Hot-keys on this page

r m x p toggle line displays

j k next/prev highlighted chunk

0 (zero) top of page

1 (one) first highlighted chunk

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | # This code is part of the Biopython distribution and governed by its # license. Please see the LICENSE file that should have been included # as part of this package. # """Useful utilities for helping in parsing GenBank files. """ class FeatureValueCleaner(object): """Provide specialized capabilities for cleaning up values in features. This class is designed to provide a mechanism to clean up and process values in the key/value pairs of GenBank features. This is useful because in cases like: /translation="MED YDPWNLRFQSKYKSRDA" you'll end up with a value with \012s and spaces in it like: "MED\012 YDPWEL..." which you probably don't want. This cleaning needs to be done on a case by case basis since it is impossible to interpret whether you should be concatenating everything (as in translations), or combining things with spaces (as might be the case with /notes). """ keys_to_process = ["translation"] def __init__(self, to_process = keys_to_process): """Initialize with the keys we should deal with. """ self._to_process = to_process def clean_value(self, key_name, value): """Clean the specified value and return it. If the value is not specified to be dealt with, the original value will be returned. """ if key_name in self._to_process: try: cleaner = getattr(self, "_clean_%s" % key_name) value = cleaner(value) except AttributeError: raise AssertionError("No function to clean key: %s" % key_name) return value def _clean_translation(self, value): """Concatenate a translation value to one long protein string. """ translation_parts = value.split() return "".join(translation_parts)