iT邦幫忙

第 11 屆 iT 邦幫忙鐵人賽

DAY 5
0
自我挑戰組

猶豫就會敗北,果斷就會白給|園藝 boy 的生物資訊冒險記趣,跟上學術潮流不走冤望路 feat. RNA-Sick系列 第 5

RNA-Sick@Day5 > 原來是純文字編輯器啊,我還以為是整合式開發環境呢|準備一個喜歡的打字所在 feat. Atom

英雄需要披風,搞資訊的人需要一個自己喜歡的純文字編輯環境

有一幕令我印象十分深刻,非常用功的專題生把該搜集的序列都搜集好,要上傳到線上分析平台的網站卻一直失敗,原來因為他的副檔名不是 .fasta 而是 .docx。檔案打開,好幾頁的 Times New Roman 襯線非等寬字體核苷酸代號 ATCG,滿頁序列文,一把辛酸淚。

用 Word 或 Excel 整理序列沒有錯,只是比較累而已。你酸澀的眼睛值得更好的工具。

用開源的 Atom 加速各種開發與文字編輯

每個作業系統都有預設的純文字編輯器,像是記事本或TextEdit,最簡單的程式開發就是用記事本打點程式碼,由終端機輸入指令執行該程式碼檔案,執行失敗再回到純文字編輯器修改除錯。把上述功能整合在一起就是整合式開發環境 (IDE, Integrated development environment),而 Atom 就是一款可以逐步自行改造 (hackable) 添加外掛的純文字編輯器,加上喜歡的外掛不只可以變成 IDE,還可以進行 markdown 寫作預覽,甚至是數位藝術 live coding 介面

來體驗下 Atom 的魅力吧

基本安裝

A hackable text editor for the 21st Century

Atom 由 Github 開發,來到主頁面看到章魚貓代表你來對了,下方就會自動出現適合的作業系統安裝檔案。windows 版本的話,下載後雙擊執行,可以看著各種貨物裝載到火箭中,一轉眼的時間就安裝完成;mac 的話則是直接解壓縮後拖曳到 Applications 區,在 finder 中右鍵 open。

安裝外掛

外掛分成套件 (Packages)跟佈景主題 (themes),前者可以替文字編輯器增加各種功能,後者則能更改文字編輯器的外觀配色。

由上方選單開啟 Preferences 面板後,選擇來到 Install 標籤,就可以輸入想要安裝的套件名稱啦!以下便來推薦個生資入門好套件:Hydrogen & Minimap!

Hydrogen 之卷

輸入 Hydrogen,直接 Install,或是點及該卡片查看套件說明頁面。

Hydrogen 可以把 Atom 變成 jupyter notebook 一樣使用,只要使用 #%% 就可以將程式碼區分成不同的 cell,不同的快捷鍵讓開發者選擇一次只執行一個 cell 中的內容或是全部執行。

且讓我以上一回中計算圓周率的例子說明 Hydrogen 的好用~

上圖中可見 jupyter notebook 一格一格的 cell,而 Atom 中的 Hydrogen 就是在純文字的環境中用 #%% 來當作 cell 的分隔。將上一回的程式碼貼到 Atom 中,並儲存為 .py 檔案。第一次執行會稍微停頓一下,出現藍色框框代表沒問題啦~

Jupyter notebook 會自動儲存,但是檔案格式是 ipynb。Atom 編輯完畢的檔案一樣可以存成 .py 的純程式碼檔案。在 Mac 上按下 option+command+enter 就可以執行當前 cell 的程式碼。顯示結果的空間還有附上一個供複製的按鈕,十分方便!

在 Hydrogen 中也可以寫 Markdown 數學式

#%%
from IPython.display import display, Markdown, Latex
Markdown('$\pi = $$\sum_{k=0}^{\infty}$$[{1}/{16^k}(4/(8k+1)-2/(8k+4)-1/(8k+5)-1/(8k+6))]$')
#%%

引入相關函式庫,並稍微修改數學表達式就可以~

綜上所述的方便性,我會推薦 Atom + Hydrogen 作為各位勇者生資入門的第一件披風!

小地圖 (minimap) 之卷

如果是不寫程式的場景,單純要整理有些雜亂的序列檔案的格式,也可以安裝 atom 的 minimap 套件。編輯空間的右方會出現小地圖,也就是整份文件形狀的縮影,寫程式的時候可以掌握進展與結構,手動整理資料的時候也不會在序列之海中迷路。Minimap 搭配上 Atom 內建的搜尋全選取代功能,就可以快速將文字調整成所需要的格式!

如果找到更多實用的、獵奇的、或是天才般的 Atom 套件,請記得告訴我!

參考資料及延伸閱讀

A hackable text editor for the 21st Century

Take your computing experience to the next level.

minimap

Python pi calculation?

關於作者

謝晨 (Chen Hsieh),臺大園藝暨景觀學系研究所碩士。讀碩士前的興趣是懷著寫點程式妄圖解決農業問題的夢想參加比賽,拿了幾個黑客松與 Open Data 創新應用競賽的獎,卻都沒有勇氣將項目經營下去;研究所期間的興趣轉換成讀學術期刊的出刊電子報。靠著這些興趣當選 107 學年的臺大優秀青年,畢業後卻成了無業的實驗室居民。現在在農場旁的研究館辦公室寫點東西,希望可以跟世界分享生物資訊與園藝的樂趣!

感謝選擇匿名的朋友協助校閱初稿與提供意見,也敬請各位讀者不吝指教!

E-mail

Facebook

Twitter

Linkedin

RNA-Sick.me


上一篇
RNA-Sick@Day4 > 我們凡事求一個圓|第一次執行 Python 腳本就來算圓周率吧 feat. Jupyter Notebook
下一篇
RNA-Sick@Day6 > 我相信自由自在,我詳細希望|下載 NCBI 上的原始序列 feat. SRA Toolkit (上)
系列文
猶豫就會敗北,果斷就會白給|園藝 boy 的生物資訊冒險記趣,跟上學術潮流不走冤望路 feat. RNA-Sick30

尚未有邦友留言

立即登入留言