---
# System prepended metadata

title: 'sourmash + LINs meeting, 03/13/2023'
tags: [' lin', ' taxonomy', ' lins', sourmash, ' LIN', ' alluvial', ' sankey', ' sourmash taxonomy']

---

---
tags: sourmash, LIN, lin, lins, taxonomy, sourmash taxonomy, sankey, alluvial
---

sourmash + LINs meeting, 03/13/2023
===


## Feedback/concerns for sourmash + LINs:

#### Columns are ~good, and options were understandable


#### If no matches, gather does not produce any file as a result. 
- Can it produce a file? 
    - we could add this; see https://github.com/sourmash-bio/sourmash/issues/2357

#### Threshold option not immediately obvious
- Can we add a suggestion to try lowering the threshold if there are no matches?
- And/or maybe add `--threshold-bp` suggestion to prefetch/gather help message? e.g. maybe add:
    > "If you don't get any matches, you can try lowering the match threshold using `--threshold-bp`"

#### Gather's greedy selection is an issue when we're working with highly similar genomes w/ low abundance.
- What can we do about it?
    - At minimum, notify about equivalent matches from prefetch step?
    - other ideas: optionally do gather assignments at species/lingroup level if genomes are too similar?
- Can we add a "confidence threshold" column, which gives you some idea of how confident the call of this particular genome/lineage is?
    - not at present. Note to self & @ctb - think about YACHT confidence info?

#### Will `sourmashconsumR` work for LINs?
- not out of the box, ranks are hard-coded into each function for now. Modification may be possible.
- Python code options: 
    - I have code to produce a sankey diagram via plotly (modified from ctb original code). Could modify for LINs. 
    - [code](https://github.com/bluegenes/2021-benchmarking-dev/blob/main/figs/sourmash_sankey.py); example output:
        ![](https://hackmd.io/_uploads/HJIrdXpJ3.png)
    - The notebooks are too big to render on github, but you can see them/ run them by following the instructions [here](https://github.com/bluegenes/2021-benchmarking-dev)
    - plus side: plotly is interactive, and may be a good option for genomeRxiv website viz.
    - minus side: not as pretty/ needs work to be pretty + still flexible over the full range of datasets that it could be used with


### Tessa's suggestions for Parul:

1. Try using `--threshold-bp 0` when you don't get any matches
3. Try using higher resolution (lower scaled) databases. I would think `scaled=100` would solve most of the issues, but I went a little crazy and made a `scaled=5` version you can download [here](https://osf.io/ybt75/download). You'll need to re-sketch your samples at the higher resolution (lower scaled). However, you can do this at, say `scaled=5` and then use those (and this database) with higher scaled by adding the `--scaled xx` parameter to `prefetch` or `gather` (sourmash will downsample on the fly).
    - Scaled is primarily a tradeoff between size /memory /search time and specificity. I'd recommend trying to use the highest scaled that gives you good results. Definitely look at `scaled=100` and `scaled=10` as better options for long-term use (instead of `scaled=5` :).



### Reza/Parul: Testing genome classification

If you get a chance, it'd be great to try out the LIN genome classification too. It's in a separate PR. Testing instructions:

Download an environment file that points to this branch:
```
curl -JLO https://raw.githubusercontent.com/bluegenes/2023-demo-sourmash-LIN/main/genome-lin.yml
```
Create a virtual environment using this file:
```
conda env create -f genome-lin.yml
```
Activate that environment, which is named `tax-genome-lins`:

```
conda activate tax-genome-lins
```
make sure `--lins` is in the `--help` for `sourmash tax genome`:
```
sourmash tax genome --help
```

## Command to run

The command to run is this one: 

```
sourmash tax genome -g $gather_csv  -t $taxonomy_csv \
                        --lins --lingroup $lingroups_csv
```
Note that the gather file used here should be the result of running sourmash gather using a genome query, since `sourmash tax genome` tries to annotate the file to the best lineage produced by `sourmash gather`.


