问题


源码下载的 LEfSe,或者使用 conda install -c bioconda lefse 安装完成后,执行分析出现报错:

$ lefse-format_input.py hmp_aerobiosis_small.txt hmp_aerobiosis_small.in -c 1 -s 2 -u 3 -o 1000000

$ run_lefse.py hmp_aerobiosis_small.in hmp_aerobiosis_small.res
Number of significantly discriminative features: 51 ( 131 ) before internal wilcoxon
Number of discriminative features with abs LDA score > 2.0 : 51

$ lefse-plot_res.py hmp_aerobiosis_small.res hmp_aerobiosis_small.png
Traceback (most recent call last):
  File "/Bio/Bioinfo/Pipeline/SoftWare/Anaconda2/bin/lefse-plot_res.py", line 177, in <module>
    else: plot_histo_hor(params['output_file'],params,data,len(data['cls']) == 2,params['report_features'])
  File "/Bio/Bioinfo/Pipeline/SoftWare/Anaconda2/bin/lefse-plot_res.py", line 70, in plot_histo_hor
    ax = fig.add_subplot(111,frame_on=False,axis_bgcolor=params['back_color'])
  File "/Bio/Bioinfo/Pipeline/SoftWare/Anaconda2/lib/python2.7/site-packages/matplotlib/figure.py", line 1239, in add_subplot
    a = subplot_class_factory(projection_class)(self, *args, **kwargs)
  File "/Bio/Bioinfo/Pipeline/SoftWare/Anaconda2/lib/python2.7/site-packages/matplotlib/axes/_subplots.py", line 77, in __init__
    self._axes_class.__init__(self, fig, self.figbox, **kwargs)
  File "/Bio/Bioinfo/Pipeline/SoftWare/Anaconda2/lib/python2.7/site-packages/matplotlib/axes/_base.py", line 539, in __init__
    self.update(kwargs)
  File "/Bio/Bioinfo/Pipeline/SoftWare/Anaconda2/lib/python2.7/site-packages/matplotlib/artist.py", line 888, in update
    for k, v in props.items()]
  File "/Bio/Bioinfo/Pipeline/SoftWare/Anaconda2/lib/python2.7/site-packages/matplotlib/artist.py", line 881, in _update_property
    raise AttributeError('Unknown property %s' % k)
AttributeError: Unknown property axis_bgcolor


原因


出现报错主要原因是 matplotlib==2.2.0 起把部分功能函数移除了,我们需要回退 matplotlib 版本。


image


$ python
Python 2.7.15 |Anaconda custom (64-bit)| (default, May  1 2018, 23:32:55)
[GCC 7.2.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import matplotlib
>>> matplotlib.__version__
'2.2.2'
>>>


解决


$ pip install matplotlib==1.5  #注意不要用conda, 以免发生环境conflicts 


重新测试


$ wget http://huttenhower.sph.harvard.edu/webfm_send/129 -O hmp_aerobiosis_small.txt

$ format_input.py hmp_aerobiosis_small.txt hmp_aerobiosis_small.in -c 1 -s 2 -u 3 -o 1000000

$ run_lefse.py hmp_aerobiosis_small.in hmp_aerobiosis_small.res

$ plot_res.py hmp_aerobiosis_small.res hmp_aerobiosis_small.png


image


问题解决!