# AssembliesMixin

Auto-generated from the @jbrowse/mobx-state-tree model in the source — see the [developer guide](https://jbrowse.org/jb2/docs/developer_guide/) for concepts. Built into JBrowse core. [View source](https://github.com/GMOD/jbrowse-components/blob/main/packages/app-core/src/Assemblies/AssembliesMixin.ts).

Adds `sessionAssemblies` (admin-aware, persisted-with-session assemblies) and
`temporaryAssemblies` (used for ad-hoc read-vs-ref style assemblies).

## Properties

| Member | Description |
| --- | --- |
| **sessionAssemblies**<br><code>sessionAssemblies: types.stripDefault( types.array(assemblyConfigSchemasType), [], )</code> |  |
| **temporaryAssemblies**<br><code>temporaryAssemblies: types.stripDefault( types.array(assemblyConfigSchemasType), [], )</code> |  |

## Getters

| Member | Description |
| --- | --- |
| **assemblies**<br><code>(ConfigNodeProps&lt;…&gt; &amp; ConfigNodeActions &amp; ConfigNodeBrand&lt;ConfigurationSchemaType&lt;…&gt;&gt;)[]</code> | sessionAssemblies plus jbrowse config assemblies. Does not include temporaryAssemblies; this is the list shown in the AssemblySelector dropdown. |
| **assemblyNames**<br><code>string[]</code> | names of the assemblies returned by the `assemblies` getter |

## Methods

| Member | Description |
| --- | --- |
| **findAssemblyConf**<br><code>(name: string) =&gt; (ConfigNodeProps&lt;…&gt; &amp; ConfigNodeActions &amp; ConfigNodeBrand&lt;ConfigurationSchemaType&lt;…&gt;&gt;) &#124; undefined</code> | The assembly config answering to `name`, as its name or one of its aliases, from any of the three arrays the assemblyManager draws on, or undefined.<br><br>One namespace, because `name` is the assembly config's MST identifier: a second config carrying a name one of the others already has doesn't fail at the add, it makes every `assembly.configuration` safeReference in the manager ambiguous, and MST then throws on every read of one — inside the manager's own autorun and inside `assemblyNameMap`, which takes the session down. So each add path checks all three, not just the array it pushes to. Aliases count too: a new assembly named `GRCh38` beside an `hg38` aliased `GRCh38` would leave `get('GRCh38')` to array order. |

## Actions

| Member | Description |
| --- | --- |
| **addSessionAssembly**<br><code>(conf: AnyConfiguration) =&gt; ConfigNodeProps&lt;…&gt; &amp; ConfigNodeActions &amp; ConfigNodeBrand&lt;ConfigurationSchemaType&lt;…&gt;&gt;</code> |  |
| **addAssembly**<br><code>(conf: AnyConfiguration) =&gt; void</code> |  |
| **removeAssembly**<br><code>(name: string) =&gt; void</code> |  |
| **removeSessionAssembly**<br><code>(assemblyName: string) =&gt; void</code> |  |
| **addTemporaryAssembly**<br><code>(conf: AnyConfiguration) =&gt; ConfigNodeProps&lt;…&gt; &amp; ConfigNodeActions &amp; ConfigNodeBrand&lt;ConfigurationSchemaType&lt;…&gt;&gt;</code> | used for read vs ref type assemblies. |
| **removeTemporaryAssembly**<br><code>(name: string) =&gt; void</code> |  |

