# BasicFeatureFilter

Auto-generated from the config schema in the source — see the [config guide](https://jbrowse.org/jb2/docs/config_guide) for concepts. Provided by the `canvas` plugin. [View source](https://github.com/GMOD/jbrowse-components/blob/main/plugins/canvas/src/LinearBasicDisplay/basicFeatureFilterConfigSchema.ts).

The tests `LinearBasicDisplay` applies to the features it fetched, its
`filter`: the jexl `expressions` every display's feature filter takes, and
the gene-like features as a category.

## Example usage

```js
{ type: 'LinearBasicDisplay', filter: { genes: 'only' } }
```

## Related links

- **Base config:** [FeatureFilter](../featurefilter)

## Config slots

A setting written to it names members one by one: a member left out stays as it is, and `null` resets one. Slot types (`fileLocation`, `frozen`, ...) are explained in the [config slot types reference](https://jbrowse.org/jb2/docs/config_guides/slot_types). Slots a base configuration contributes are listed here too, so this table is the whole surface.

| Slot | Description |
| --- | --- |
| **genes**<br>[`maybeStringEnum`](https://jbrowse.org/jb2/docs/config_guides/slot_types#the-maybe-types) (only, exclude) | `only`, `exclude`, or unset for unfiltered: the gene-like top-level features, which are every gene, transcript and RNA type, the `transcriptTypes` and `containerTypes`, and a top-level CDS. "Filter by... → Genes" sets it. |
| <span class="slot-group">Inherited from [FeatureFilter](../featurefilter) | <span class="slot-group-count">1 slot |
| **expressions**<br>[`expressionArray`](https://jbrowse.org/jb2/docs/config_guides/slot_types#expressionarray) = <code>[]</code> | The features the display admits: a feature is drawn when every expression holds. Each entry is a `jexl:` expression over `feature`. The "Filter by..." dialog and "Edit plot..." edit this list, and "Clear all filters" returns it to what the track's config declares. |

