docs: def fcs(self, path, features, filtered=True, override=False):
          """Export the data of an RT-DC dataset to an .fcs file
  
          Parameters
          ----------
          mm: instance of dclab.RTDCBase
              The dataset that will be exported.
          path: str
              Path to a .tsv file. The ending .tsv is added automatically.
          features: list of str
              The features in the resulting .tsv file. These are strings
              that are defined in `dclab.definitions.scalar_feature_names`,
              e.g. "area_cvx", "deform", "frame", "fl1_max", "aspect".
          filtered: bool
              If set to `True`, only the filtered data (index in ds._filter)
              are used.
          override: bool
              If set to `True`, an existing file ``path`` will be overridden.
              If set to `False`, raises `OSError` if ``path`` exists.
  
          Notes
          -----
          Due to incompatibility with the .fcs file format, all events with
          NaN-valued features are not exported.
          """
          features = [c.lower() for c in features]
          ds = self.rtdc_ds
  
          path = pathlib.Path(path)
          # Make sure that path ends with .fcs
          if path.suffix != ".fcs":
              path = path.with_name(path.name + ".fcs")
          # Check if file already exist
          if not override and path.exists():
              raise OSError("File already exists: {}\n".format(
                  str(path).encode("ascii", "ignore")) +
                  "Please use the `override=True` option.")
          # Check that features are in dfn.scalar_feature_names
          for c in features:
              if c not in dfn.scalar_feature_names:
                  msg = "Unknown or unsupported feature name: {}".format(c)
                  raise ValueError(msg)
  
          # Collect the header
          chn_names = [dfn.feature_name2label[c] for c in features]
  
          # Collect the data
          if filtered:
              data = [ds[c][ds._filter] for c in features]
          else:
              data = [ds[c] for c in features]
  
          data = np.array(data).transpose()
          fcswrite.write_fcs(filename=str(path),
                             chn_names=chn_names,
                             data=data)