如果要做對應徵生物資訊職缺有幫助的 side project
我認為有幾個方向可以考慮
Workflow
建立一套分析流程,使用 python 或 workflow language (Nextflow or Snakemake)
example1: nf-core community 中的nf-core/mag
開發者們以 nf-core 提供的 nextflow template,開發各種 workflow
當然不一定要使用 workflow language,單純使用程式語言開發也可以
只要能將整個專案架構做的有條有理就行了
example2: DFAST是以 python 開發 prokayte annotation workflow
每個工具或分析環節都模組化,讓使用者方便以 command-line 選擇參數和需要的步驟
Package
寫一個 python package,上傳到 pypi,讓別人用pip install
就能使用
不需要寫一個像 workflow 這麼大規模的
可以針對特定領域寫一個 toolkit 包裝成 package
example: 親緣分析相關的ete3
打包python套件上傳PyPI
GUI
做一個圖形化界面,web (Dash, streamlit) 或桌面應用程式(wxPython, pyQt)都行
可以展現出對前端或視覺化的技能
如果做到很複雜的話就是做到跟 SaaS 一樣
可以分成三個部分 api
, fronted
, database
api 從 fronted 接收到 request 之後執行分析,database 儲存 api 和 fronted 需要的資料
example: orthovenn2
orthovenn2 是個註解同源基因的 web tool
作者有提供 docker image 讓使用者可以將服務架設在自己主機
Algorithm
像是 sequence alignment 演算法就有百百種
自己也可以試著開發解決某個問題的演算法
但演算法開發對於生物出生的人來說實在有道高牆存在
雖然我沒有真的開發出來,
我之前是試著修改 mash 使用的 minimizer sketch 和 jaccard similarity
如果 LICENSE 是可以讓你修改並發佈的原始碼的話可以試試看
Pull request
其實 side project 做到後來會感受到除非自己是大神或寫的專案有發表
不然就只是做爽的,根本不會有人用你的工具
還不如去那些 Star 很多的專案,看可以增加功能或是修復 bug
作者 merge 你的 commit 的話以後跟面試官提你在這個專案有貢獻對於應徵還比較有幫助
你的知名度也會寄生在作者下曝光