Refgenie will write the genome configuration file automatically for any assets that you obtain using either `refgenie pull` or `refgenie build` -- but you can also take advantage of the refgenie system to manage your own custom assets in a few ways.

## Build a custom asset

The preferred option would be to script your asset building and then allow `refgenie` to manage it. In the next major version of `refgenie`, we intend to allow the `build` function to build arbitrary assets. So, all you would need to do is be able to provide a scripted recipe and you could use `refgenie` to build and manage those assets automatically. In the meantime, or if you have assets that you want managed but *can't* be scripted for some reason...

## Add custom assets

You can add additional assets with the `refgenie add` command. Just provide the genome, asset, and path *relative to the genome folder*. What this means is that you can exploit the refgenie system to manage and access your own assets. For example, say you have an hg38 annotation called *manual_annotation*, which you produced by hand. You can simply put that in your genomes folder (under `hg38/annotation_folder_dir`), and then add an entry to your genome configuration file:

```console
refgenie add hg38/manual_anno --path annotation_folder_dir
```

If you want to, you could also just edit the config file by hand by adding this kind of information:

```yaml
genomes:
  511fb1178275e7d529560d53b949dba40815f195623bce8e:
    aliases:
      - hg38
      - human
    assets:
      manual_anno:
        tags:
          default:
            asset_path: manual_anno
            asset_description: Manual annotations from project X
            seek_keys:
              anno1: anno1.txt
              anno2: anno2.txt
        default_tag: default
```

The refgenie-compatible genome digest can be determined this way:

```python
from refgenconf.seqcol import SeqColClient
digest, _ = SeqColClient({}).load_fasta("path/hg38.fa")
# digest -> 511fb1178275e7d529560d53b949dba40815f195623bce8e
```

Now, you can access this asset with `refgenie` the same way you do all other assets... `refgenie list` will include it, `refgenie seek -g gh38 -a manual_anno` will retrieve the path, and from within python, `RefGenConf.seek('hg38', 'manual_anno')` will also work. The advantage of doing this is that it lets you include *all* your genome-associated resources, including manual ones, within the same framework.
