chapmanb / bcbb

Incubator for useful bioinformatics code, primarily in Python and R
http://bcbio.wordpress.com
603 stars 243 forks source link

Error in GFFParser: TypeError: SeqFeature.__init__() got an unexpected keyword argument 'strand' #138

Closed victorlin closed 6 months ago

victorlin commented 7 months ago

The feature in question was deprecated in Biopython 1.80 and removed in 1.82.

This was caught by a test in one of my repos after the recent release of Biopython 1.82, which is effectively incompatible with BCBio.GFF.GFFParser. Error message snippet:

Traceback (most recent call last):
  File "/home/runner/work/augur/augur/augur/__init__.py", line 66, in run
    return args.__command__.run(args)
  File "/home/runner/work/augur/augur/augur/translate.py", line 405, in run
    features = load_features(args.reference_sequence, genes)
  File "/home/runner/work/augur/augur/augur/utils.py", line 174, in load_features
    return _read_gff(reference, feature_names)
  File "/home/runner/work/augur/augur/augur/utils.py", line 277, in _read_gff
    gff_entries = list(GFF.parse(in_handle, limit_info={'gff_type': valid_types}))
  File "/home/runner/miniconda3/envs/test/lib/python3.10/site-packages/BCBio/GFF/GFFParser.py", line 793, in parse
    for rec in parser.parse_in_parts(gff_files, base_dict, limit_info,
  File "/home/runner/miniconda3/envs/test/lib/python3.10/site-packages/BCBio/GFF/GFFParser.py", line 337, in parse_in_parts
    cur_dict = self._results_to_features(cur_dict, results)
  File "/home/runner/miniconda3/envs/test/lib/python3.10/site-packages/BCBio/GFF/GFFParser.py", line 376, in _results_to_features
    base = self._add_parent_child_features(base, results.get('parent', []),
  File "/home/runner/miniconda3/envs/test/lib/python3.10/site-packages/BCBio/GFF/GFFParser.py", line 462, in _add_parent_child_features
    cur_parent, base = self._add_toplevel_feature(base, cur_parent_dict)
  File "/home/runner/miniconda3/envs/test/lib/python3.10/site-packages/BCBio/GFF/GFFParser.py", line 582, in _add_toplevel_feature
    new_feature = self._get_feature(feature_dict)
  File "/home/runner/miniconda3/envs/test/lib/python3.10/site-packages/BCBio/GFF/GFFParser.py", line 591, in _get_feature
    new_feature = SeqFeature.SeqFeature(location, feature_dict['type'],
TypeError: SeqFeature.__init__() got an unexpected keyword argument 'strand'

Workaround

Install biopython<=1.81

victorlin commented 6 months ago

Closed by https://github.com/chapmanb/bcbb/commit/eec72c3faca1e5e9e4e48dbf46d396a9045baa3b.