Nextflow|怎麼從運行中的腳本取回參數?
在執行腳本前,Nextflow 會讀取設置檔 (configuration files) 中的參數,將之代入腳本的對應位置後再執行程式。這項特性有助於使用者管理複雜流程的輸入值與環境設定,也將具體數值從流程邏輯抽離,讓開發者專注於流程的梳理與串接。
然而,隨著流程腳本改版,設置檔的內容也可能跟著改變,是否有方法能記錄執行流程時使用的設置檔,以利往後重現分析或追蹤歷次設定?
在這篇文中,我首先介紹了 nextflow 導入參數的方式,再陳述取回參數的可行策略,並附上這些策略的最簡範例供參考。
Nextflow|背景執行 workflow 的方法
一般而言,若想要背景執行 linux 指令,可在指令末端添加 &
,或是透過 ctrl + z
配合 bg %n
將執行中的指令挪到背景執行。然而,nextflow 腳本卻不適用這種做法(version >= 21.10.6),指令挪到背景後會陷入停止狀態。
1 | $ nextflow run workflow.nf & |
一旦陷入停止狀態,會變得異常難清,要用 kill %n && fg
才能一次清掉(參考論壇的討論)。
LeetCode 筆記|217. Contains Duplicate
Given an integer array
nums
, returntrue
if any value appears at least twice in the array, and returnfalse
if every element is distinct.
(給定一整數陣列,判斷其中是否含重複的數字。)
Example:
Input: nums = [1,2,3,1]
Output: true
很久很久以前,自然用什麼盛裝生命?
1953年,在試管裡的雷鳴閃電與水氣蒸騰之後,米勒與尤里成功在模擬的早期地球環境中合成胺基酸,開啟了研究生命起源的先河。
隨著多種有機質在實驗室合成或於隕石中發現,研究人員逐漸了解生命的物質來源。然而,散落各處的有機質需要彼此接觸才有機會引發生化反應。在早期環境中,有什麼物質能夠形成容器,匯集生命形成所需的反應物?
All-Species Living Tree Project (LTP) 物種資訊的訂正和維護
All-Species Living Tree Project (LTP)1 旨在維護所有已知古菌和細菌 type strain 的 16S rRNA 基因序列,並基於這些序列,建立古菌和細菌的譜系樹。
LTP 主要由四個單位參與
- LPSN 提供分類與命名資訊 (https://www.bacterio.net/)
- ARB 支援譜系樹建立與分類 (http://www.arb-home.de/)
- Ribocon 則負責資料庫的管理 (https://www.ribocon.com/)
- SILVA 則提供序列資料庫、計算資源與網頁介面 (https://www.arb-silva.de/)
(自 2020 年起,LTP 的遷出 SILVA,獨立為一個網頁:https://imedea.uib-csic.es/mmg/ltp/)
LTP 的資料常用於 16S rRNA 基因增幅序列的物種註解,而基於其收錄序列所構建的譜系樹,也能作為 Phylogenetic placement 的基礎2。
另外,由於 LTP與 RDP training set 都只收錄了 type strain 的序列資料,所以相較於透過序列預測建立的資料庫,LTP 的序列資料較為可靠,能避免在物種註釋時,要在分類錯誤之外面臨資料庫錯誤的問題。
儘管 LTP 已是人工維護且品質好的資料庫,但目前版本 ( LTP_01_2022) 的部分物種資訊仍有誤騰的狀況。在官方修正這些問題之前,資料庫的使用者得自己訂正這些錯誤。
寫論文的糟糕和美好經驗
我對論文寫作的第一印象是「寫論文很難,要花很長的時間才能完成,而且從準備到發表過程中會受到大量的批判,一路過關斬將才有機會嶄露頭角」。
所以每當開啟 word 檔開始打字的時候,都有起步的焦慮感:覺得自己還沒準備好,想要把文獻回顧完全,研究結果做到滴水不漏才有辦法動筆。
這種印象部分奠基於碩士論文寫作經驗,當時往往盯著螢幕許久沒有任何想法,最後歸因於自己文獻回顧不夠完整或是研究做得不夠完善。
我意識到阻礙我進展的是對於完美論文的期待,我期待論文能夠達到讓我感到愉悅和成就感的標準。
然而,人們總是無法在初稿時達到滿意的程度吧?而且論文需要於修改中逐漸精緻,沒辦法一蹴可幾,我的期待反過來成為我的壓力。
為了舒緩這種壓力和焦慮,我轉而把精力投注在文獻回顧或改進研究內容。雖然多做準備能暫時減緩我的焦慮和踏實感,但這只是將自己的壓力和負擔延後,之後將面對更多的時間、資源和要求的壓力。
Nextflow|程式碼區塊的跳脫符號 (escape characters)
本文介紹程式碼定義變項的符號與 nextflow 內建語法衝突時,有哪些選項可以解決之。
如何下載和安裝 RDP classifier
RDP classifier 是基於 Naive Bayes 的物種分類器,常用於註解 16S rRNA 基因序列的分類資訊。除了使用內建的 RDP 資料庫以外,RDP classifier 也允許使用自訂資料庫來訓練分類器。除了內建的 RDP database,也支援以其他資料庫來訓練分類器。
目前,RDP classifier 的核心演算法已被整合到 Mothur 和 DADA2 等流程的副程式庫,所以只要有安裝這些流程軟體,即使沒有安裝 RDP classifier,也能以相同的演算法註解物種資訊。然而,若想要依據自訂或最新的資料庫註解序列,或是使用 copy number 校正等功能,仍有獨立使用 RDP classifier 的必要。
本文將介紹三種下載和安裝 RDP classifier 的方式。
R/Rstudio console 的指令長度限制
TL:DR:輸入 R/Rstudio console 的指令之容量上限為 4095 bytes。若超出上限,console 會忽略超出的部分,顯示 + 提醒使用者補完剩餘指令。