cytoscape-automation icon indicating copy to clipboard operation
cytoscape-automation copied to clipboard

ipython example does not work with modern citoscape?

Open Kreijstal opened this issue 6 months ago • 0 comments

https://github.com/cytoscape/cytoscape-automation/blob/c938ab4dd06602e1c2075969e7ab6007bc9a7f4d/for-scripters/Python/Overview-of-py4cytoscape.ipynb#L284

I am using

{'apiVersion': 'v1',
 'cytoscapeVersion': '3.10.2',
 'automationAPIVersion': '1.9.0',
 'py4cytoscapeVersion': '1.9.0'}

and on that line I get the following error:

---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
[~/scoop/apps/msys2/2023-01-27/tmp/ipykernel_22224/3096295504.py](http://localhost:8888/lab/tree/~/scoop/apps/msys2/2023-01-27/tmp/ipykernel_22224/3096295504.py) in ?()
     1 from py4cytoscape import gen_node_color_map
     2 from py4cytoscape import gen_edge_arrow_map
----> 3 p4c.set_node_color_mapping(**gen_node_color_map('group', mapping_type='d', style_name=style_name)) #'d' means 'discrete' mapping
     4 p4c.set_edge_target_arrow_shape_mapping(**gen_edge_arrow_map('interaction', style_name=style_name))

[~/scoop/apps/msys2/2023-01-27/mingw64/lib/python3.11/site-packages/py4cytoscape/py4cytoscape_logger.py](http://localhost:8888/lab/tree/~/scoop/apps/msys2/2023-01-27/mingw64/lib/python3.11/site-packages/py4cytoscape/py4cytoscape_logger.py) in ?(*args, **kwargs)
   131             return log_return(func, value)
   132         except Exception as e:
   133             log_exception(func, e)
   134         finally:
--> 135             log_finally()

[~/scoop/apps/msys2/2023-01-27/mingw64/lib/python3.11/site-packages/py4cytoscape/py4cytoscape_logger.py](http://localhost:8888/lab/tree/~/scoop/apps/msys2/2023-01-27/mingw64/lib/python3.11/site-packages/py4cytoscape/py4cytoscape_logger.py) in ?(*args, **kwargs)
   131             return log_return(func, value)
   132         except Exception as e:
   133             log_exception(func, e)
   134         finally:
--> 135             log_finally()

[~/scoop/apps/msys2/2023-01-27/mingw64/lib/python3.11/site-packages/py4cytoscape/style_auto_mappings.py](http://localhost:8888/lab/tree/~/scoop/apps/msys2/2023-01-27/mingw64/lib/python3.11/site-packages/py4cytoscape/style_auto_mappings.py) in ?(table_column, palette, mapping_type, default_color, style_name, network, base_url)
   801 
   802     See Also:
   803         `Value Generators <https://py4cytoscape.readthedocs.io/en/0.0.9/concepts.html#value-generators>`_ in the Concepts section in the py4cytoscape User Manual.
   804     """
--> 805     return _gen_color_map('node', table_column, palette, mapping_type, default_color, style_name, network, base_url)

~/scoop/apps/msys2/2023-01-27/mingw64/lib/python3.11/site-packages/py4cytoscape/style_auto_mappings.py in ?(table, table_column, palette, mapping_type, default_value, style_name, network, base_url)
  1446         else:
  1447             raise CyError(f'Palette dictionary does not contain entry for "{mapping_type}" mapping')
  1448 
  1449     if mapping_type == 'd':
-> 1450         return _gen_d_color_map(table, table_column, palette, default_value, style_name, network, base_url)
  1451     else:
  1452         return _gen_c_color_map(table, table_column, palette, default_value, style_name, network, base_url)

[~/scoop/apps/msys2/2023-01-27/mingw64/lib/python3.11/site-packages/py4cytoscape/style_auto_mappings.py](http://localhost:8888/lab/tree/~/scoop/apps/msys2/2023-01-27/mingw64/lib/python3.11/site-packages/py4cytoscape/style_auto_mappings.py) in ?(table, table_column, palette, default_value, style_name, network, base_url)
  1468 
  1469     if 'qualitative' not in palette_type:
  1470         narrate(f'Warning: {palette_func_name} is not a qualitative palette and may give poor results for a discrete mapping.')
  1471 
-> 1472     return _map_values(table, table_column, palette_func, 'colors', 'default_color', default_value, style_name, network, base_url)

[~/scoop/apps/msys2/2023-01-27/mingw64/lib/python3.11/site-packages/py4cytoscape/style_auto_mappings.py](http://localhost:8888/lab/tree/~/scoop/apps/msys2/2023-01-27/mingw64/lib/python3.11/site-packages/py4cytoscape/style_auto_mappings.py) in ?(table, table_column, scheme_func, value_name, default_name, default_value, style_name, network, base_url)
  1589             # df_values rows aren't left in a predictable order, so that means the color assignments will vary from
  1590             # run to run. To make this consistent and testable, we sort all values within the same frequency count.
  1591             # To do this, we turn the frequency series into a dataframe then sort first on frequency count and then
  1592             # on value.
-> 1593             df_freq = df_freq.to_frame().rename_axis('index').sort_values(by=[table_column, 'index'],
  1594                                                                           ascending=[True, True])
  1595 
  1596         # Create function to map from DataFrame type to Python type ... this is necessary because if

[~/scoop/apps/msys2/2023-01-27/mingw64/lib/python3.11/site-packages/pandas/core/frame.py](http://localhost:8888/lab/tree/~/scoop/apps/msys2/2023-01-27/mingw64/lib/python3.11/site-packages/pandas/core/frame.py) in ?(self, by, axis, ascending, inplace, kind, na_position, ignore_index, key)
  7168                 f"Length of ascending ({len(ascending)})"  # type: ignore[arg-type]
  7169                 f" != length of by ({len(by)})"
  7170             )
  7171         if len(by) > 1:
-> 7172             keys = [self._get_label_or_level_values(x, axis=axis) for x in by]
  7173 
  7174             # need to rewrap columns in Series to apply key function
  7175             if key is not None:

[~/scoop/apps/msys2/2023-01-27/mingw64/lib/python3.11/site-packages/pandas/core/frame.py](http://localhost:8888/lab/tree/~/scoop/apps/msys2/2023-01-27/mingw64/lib/python3.11/site-packages/pandas/core/frame.py) in ?(.0)
-> 7172         ...     key=lambda x: np.argsort(index_natsorted(df["time"]))

[~/scoop/apps/msys2/2023-01-27/mingw64/lib/python3.11/site-packages/pandas/core/generic.py](http://localhost:8888/lab/tree/~/scoop/apps/msys2/2023-01-27/mingw64/lib/python3.11/site-packages/pandas/core/generic.py) in ?(self, key, axis)
  1907             values = self.xs(key, axis=other_axes[0])._values
  1908         elif self._is_level_reference(key, axis=axis):
  1909             values = self.axes[axis].get_level_values(key)._values
  1910         else:
-> 1911             raise KeyError(key)
  1912 
  1913         # Check for duplicates
  1914         if values.ndim > 1:

KeyError: 'group'

Kreijstal avatar Aug 14 '24 09:08 Kreijstal