# linear-comparative-view

Auto-generated from exported functions tagged `#api` in the source. See
[imports and re-exports](https://jbrowse.org/jb2/docs/developer_guides/imports_and_reexports) for how to
import these from a plugin.

## buildSplitViewFromPath

A breakpoint split view over the loci a reconstructed path visits.

ONE PANEL PER SEGMENT, not per chromosome. The segments are already in the
order the reads cross them, so a path that leaves chr9 and comes back to it
inverted gets two chr9 panels rather than one that quietly merges the two
visits — which is the case a hand-built import form gets wrong, since a person
filling in rows types each chromosome once.

The launching view's tracks are carried onto every panel, alignments tracks
included, because the reads leaving one panel and arriving in the next are the
whole content of this view type.

One panel per segment is also one fetch per segment, and nothing bounds a
path's segment count, so **this throws above MAX_SPLIT_PANELS
segments**. Truncating instead would draw a prefix of a path under the whole
path's name, which is the failure the strip's own gap squeeze exists to
avoid, and returning a snapshot the caller has to measure is a rule to
remember rather than one the code holds. The in-tree picker never reaches the
throw — it disables the option and offers synteny, which has no such limit.

```js
// type signature
({ candidate, tracks, windowSize, }: { candidate: DerivativeCandidate; tracks: TrackSnapshot[]; windowSize?: number | undefined; }) => SplitViewFromPathSpec
```

[Source code](https://github.com/GMOD/jbrowse-components/blob/main/plugins/linear-comparative-view/src/LinearDerivativeVsRef/buildSplitViewFromPath.ts)

