---
# System prepended metadata

title: SeedMap改進

---

- [講解 slide](https://docs.google.com/presentation/d/1KP6YqR_JbGLKTnr6sHulFbm_hQKTINPVuHGFmmqLvO4/edit?usp=sharing)
- 跑程式
    - [REAL](http://gitlab.centrilliontech.com.tw:10088/johnson/REAL)
    - [overlap_evaluation](http://gitlab.centrilliontech.com.tw:10088/johnson/overlap_evaluation)
    - [dot_plot_visualize](http://gitlab.centrilliontech.com.tw:10088/johnson/dot_plot_visualize)
- 目前希望能解決速度過慢的問題
    - 確認是否是因 cache miss 造成效能低落，並參考 minimap2 如何解決，（個人讀文獻時，印象中 DALIGNER 也有針對 cache miss 做效能改進）
        - [Minimap](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4937194/)
        - [Minimap2_1](https://academic.oup.com/bioinformatics/article/34/18/3094/4994778?login=false)
        - [Minimap2_2](https://academic.oup.com/bioinformatics/article/37/23/4572/6384570?login=false)
    - 如果想要針對現有 code 進行改進，可以改動 `SeedMap.hpp`
        - 很多結構沒有封裝好，目前整併在 `basic_structures.hpp`
            - Seed_map.hpp > `ReadOffset` 
            - 建議使用的 IDE 可以全專案搜尋變數
        - e.g.
            - `seed_map.hpp` > `get_offsets`
                - 重複複製可能導致效能低下？
- 驗證：
    - 可能因為過濾因素而導致準確度些微差距，可以用 evaluation 裡面的 shell script 驗證
        - ecoli baseline:
```
ovlen, #pos, true_pos, #false_pos
300, 177739,168673,7092
800, 168485,166411,6650
1300, 159131,158263,4303
1800, 149783,149084,3466
2300, 134227,133613,2544
2800, 117109,116552,1650
3300, 103576,103069,1112
3800, 91870,91400,670
4300, 81656,81224,179
4800, 72953,72570,74
5300, 65149,64813,1
5800, 58280,57980,0

ovlen, sens, prec, f1sc
300, 0.949, 0.9597, 0.9543
800, 0.9877, 0.9616, 0.9745
1300, 0.9945, 0.9735, 0.9839
1800, 0.9953, 0.9773, 0.9862
2300, 0.9954, 0.9813, 0.9883
2800, 0.9952, 0.986, 0.9906
3300, 0.9951, 0.9893, 0.9922
3800, 0.9949, 0.9927, 0.9938
4300, 0.9947, 0.9978, 0.9963
4800, 0.9948, 0.999, 0.9969
5300, 0.9948, 1, 0.9974
5800, 0.9949, 1, 0.9974
```
            