在 GitHub 上編輯此頁面

Google Summer of Code

簡介

過去幾年,與 Biopython 相關的 GSoC 專案已在 開放生物資訊基金會 (OBF)國家演化綜合中心 (NESCent) 的指導下成功運行。

請閱讀這些組織的 GSoC 頁面以及 主要的 Google Summer of Code 頁面,以了解有關該計畫的更多詳細資訊。

目前專案提案

請參閱 開放生物資訊基金會 (OBF) GSoC 維基頁面OBF GSoC 頁面,這是我們通常的指導組織。

任何關於 Biopython 的專案想法都可以發佈在 http://obf.github.io/GSoC/ideas/(透過 GitHub 發送 pull request 來更新 https://github.com/OBF/GSoC/blob/gh-pages/00_ideas.md)。

我們鼓勵潛在的學生和指導者加入 BioPython 郵件列表,並積極參與開發這些專案想法,無論是提交自己的想法還是為改進現有想法做出貢獻。

過去的指導者

通常,每個 BioPython 提案都會指派一位或多位指導者。儘管如此,我們鼓勵潛在的學生/指導者透過 郵件列表 提供他們自己的提案想法。因此,沒有一個「可用」的指導者列表,因為這高度取決於每年提出的專案。

過去的指導者包括

過去已接受的專案

2014 (OBF)

索引與延遲載入序列剖析器

學生 Evan Parker (部落格)

理由 Bio.SeqIO 的索引功能可讓您按需剖析來存取大型檔案(或磁碟上的檔案集合)中的任何序列,並作為 SeqRecord 物件。當您有許多小型到中型的序列/基因組時,這效果很好。但是,這對於大型基因組或染色體並不理想,因為可能只需要一個子區域。延遲載入剖析器會延遲讀取記錄,直到被請求。例如,如果請求區域 record[3000:4000],則只需要將那些 1000 個鹼基從磁碟載入到記憶體中,以及該區域中的任何特徵。這就是 Biopython 的 BioSQL 介面運作的方式。tabix 和 samtools 等工具已展示了高效的坐標索引,這在這裡可能會很有用。

除了透過索引用於隨機存取之外,延遲載入剖析器也可以在迭代檔案時使用。這可以潛在地加速僅使用一部分資料的任務。例如,如果從 GenBank 計算基因組集合的 GC 含量,則使用 Bio.SeqIO.parse(…) 目前會不必要地載入和剖析所有註釋和特徵。延遲剖析器只會剖析序列資訊。

方法和目標 有用的功能包括

難度和所需的技能 困難。熟悉 Biopython 現有的序列剖析至關重要。了解大型檔案的索引非常重要。

可能的指導者 Wibowo Arindrarto, Peter Cock, 歡迎其他指導者

2013 (NESCent)

今年,開放生物資訊基金會未被競爭激烈的 GSoC 計畫接受。Biopython 改為在 NEScent 下參與。

密碼子比對和分析

學生 Zheng Ruan (部落格)

理由 密碼子比對是對核苷酸序列進行比對,其中三核苷酸直接對應於轉譯蛋白質產物中的胺基酸。這帶有重要的資訊,可用於多種分析,特別是選擇壓力的分析。此專案擴展了 Biopython 以支援此資料類型和這些分析。

方法和目標 有用的功能包括

難度和所需的技能 中等,取決於雄心。熟悉 Biopython 現有的比對類別和函數,或 BioPerl、BioJava 或 BioRuby 中的等效類別和函數(例如)會有所幫助。了解密碼子比對的實際用途,或至少對分子生物學有基本的了解非常重要。其中涉及一些基本的數學,基本上是閱讀一些方程式並將它們轉換為程式碼。一本有用的書是 Ziheng Yang 的計算分子演化

指導者 Eric Talevich, Peter Cock

Bio.Phylo:填補空白

學生 Yanbo Ye (部落格)

理由 雖然 Biopython 中的 Phylo 模組支援 I/O 和基本樹狀操作,但仍有一些重要的元件尚未實作,以更好地支援系統發生工作流程。

方法和目標 這個「想法」有意保持開放式 - 一些潛在有用的功能是

難度和所需的技能 中等到進階的 Python 程式設計技能 - 這些實作的效率合理很重要,但我們的目標並不是與這些演算法的最快獨立實作競爭。了解系統發生方法至關重要;作為參考,您可能需要 Joe Felsenstein 的推斷系統發生。樹狀圖視覺化是使用 matplotlib 完成的。

指導者 Mark Holder, Jeet Sukumaran, Eric Talevich

2012 (OBF)

SearchIO

學生 Wibowo Arindrarto (部落格)

理由 Biopython 具有用於剖析和寫入各種序列檔案格式 (SeqIO)、多序列比對 (AlignIO)、系統發生樹狀圖 (Phylo) 和圖案 (Bio.Motif) 的通用 API。一個明顯的遺漏是類似於 BioPerl 的 SearchIO 的東西。此提案的目標是開發一個易於使用的 Python 介面,其樣式與 SeqIO、AlignIO 等相同,但用於成對搜尋結果。這將旨在涵蓋 EMBOSS muscle 和 water、BLAST XML、BLAST 表格、HMMER、Bill Pearson 的 FASTA 比對等等。

方法 許多處理這些檔案格式的低階剖析程式碼已經存在於 Biopython 中,並且許多 SeqIO 和 AlignIO 模組是連結的並共用程式碼,當使用成對比對檔案格式時,類似的連結適用於建議的 SearchIO 模組。但是,SearchIO 也將支援成對搜尋結果,其中成對序列比對本身不可用(例如,預設的 BLAST 表格輸出)。這項工作的一個關鍵方面是設計一個反映此情況的成對搜尋結果物件階層,可能有一個子類別從成對搜尋結果和現有的 MultipleSequenceAlignment 物件繼承。除了基於迭代器的剖析和寫入框架的初始挑戰之外,為了處理大型資料集,最好使用類似於 Bio.SeqIO.index 和 index_db 功能的隨機存取。

挑戰 此專案將涵蓋來自主要生物資訊工具的一系列重要檔案格式,因此將需要熟悉執行這些工具,並了解其輸出及其含義。檔案格式之間的相互轉換是其中的一部分。

難度和所需的技能 中等/困難,取決於嘗試的目標數量。學生需要精通 Python 並了解 BioPython 程式碼庫。列出的所有命令列工具的使用經驗將是明顯的優勢,使用 BioPerl 的 SearchIO 的第一手經驗也是如此。您還需要了解或學習 git 版本控制系統。

指導者 Peter Cock

基因組變異的表示和操作

學生 Lenna Peterson (部落格)

理由 對基因組變異進行計算分析需要能夠可靠地溝通和操作變異。此專案的目標是在 BioPython 中提供設施,以表示序列變異物件、將它們轉換為常見的人類和檔案表示形式以及從它們轉換,並對它們提供常見的操作。

方法和目標

難度和所需的技能 容易到中等,取決於嘗試的目標數量。學生需要具備以下大多數或所有方面的技能:基本分子生物學(基因組、轉錄體、蛋白質)、基因組變異、Python、BioPython、Perl、BioPerl、NCBI Eutilities 和/或 Ensembl API。具有電腦語法經驗非常理想。您還需要了解或學習 git 版本控制系統。

導師 Reece Hart

Brad Chapman

James Casbon

2011 (OBF)

生物分子介面分析

學生 Mikael Trellet

研究動機 在殘基水平分析蛋白質-蛋白質複合物介面的基本原理,可以產生關於整體結合過程的重要資訊。這些資訊可以廣泛應用於結合親和力研究、介面設計和酶學等領域。為了利用這些資訊,需要能夠系統且自動分析蛋白質結構的工具,或提供實現此目標的方法。Protorop (http://www.bioinformatics.sussex.ac.uk/protorp/) 就是這樣一個工具的例子,而自其發佈以來,該伺服器的高引用次數證明了它的重要性。然而,作為一個網路伺服器,Protorop 不適合大規模分析,而且社群必須依賴其維護者來保持服務的可用性。另一方面,Biopython 的結構生物學模組 Bio.PDB 提供了理想的解析機制和程式化結構,可以開發用於介面分析的離線、開源函式庫。這樣的函式庫可以很容易地用於蛋白質-蛋白質介面的大規模分析,例如在 CAPRI 實驗評估或基準統計中。如果時間允許,將這個模組擴展到處理蛋白質-DNA 或蛋白質-RNA 複合物也是合理的,因為 Biopython 已經支援核酸。

方法和目標

難度和所需技能 簡單/中等。具備 BioPython 的 Bio.PDB 模組的工作知識。一般結構生物學和相關檔案格式 (PDB) 的知識。

導師 João Rodrigues

Eric Talevich

Mocapy++ 的 Python 橋接器

學生 Michele Silva

研究動機 發現生物分子的結構是生物學中最大的問題之一。給定一個氨基酸或鹼基序列,其三維結構是什麼?生物分子結構預測的一種方法是建構機率模型。貝氏網路是一個機率模型,由一組變數及其聯合機率分佈組成,以有向無環圖表示。動態貝氏網路是一個貝氏網路,表示變數的序列。這些序列可以是時間序列或符號序列,例如蛋白質序列。方向統計主要關注平面或三維空間中的單位向量觀測值。樣本空間通常是一個圓或一個球體。必須有特殊的方向方法來考慮樣本空間的結構。圖形模型和方向統計的結合允許開發生物分子結構的機率模型。透過使用具有方向輸出的動態貝氏網路,可以構建關於序列和結構的聯合機率分佈。生物分子結構可以用幾何上自然且連續的空間表示。Mocapy++ 是一個開源工具包,用於使用動態貝氏網路進行推斷和學習,並提供對方向統計的支持。Mocapy++ 非常適合構建生物分子結構的機率模型;它已被用於開發原子細節的蛋白質和 RNA 結構模型。Mocapy++ 用於多篇高影響力的出版物,並將成為即將發佈的分子建模軟體包 Phaistos 的核心。這個專案的目標是開發一個非常有用的 Mocapy++ Python 介面,並將該介面與 Biopython 專案整合。透過 Bio.PDB 模組,Biopython 為資料探勘生物分子結構資料庫提供了出色的功能。整合 Mocapy++ 和 Biopython 將允許使用從資料庫提取的資料來訓練機率模型。將 Mocapy++ 與 Biopython 整合將為研究人員創建一個強大的工具包,以快速實施和測試新想法、嘗試各種方法並完善他們的方法。它將為生物分子結構預測、設計和模擬領域提供強有力的支援。

方法與目標 Mocapy++ 是一個用於訓練和使用貝氏網路的機器學習工具包。它已被用於開發生物分子結構的機率模型。這個專案的目標是開發一個 Mocapy++ 的 Python 介面,並將其與 Biopython 整合。這將允許使用從資料庫提取的資料來訓練機率模型。將 Mocapy++ 與 Biopython 整合將為蛋白質結構預測、設計和模擬領域提供強有力的支援。

導師 Eric Talevich

Thomas Hamelryck

MocapyExt

學生 Justinas V. Daugmaudis

研究動機 BioPython 是生物資訊學和計算生物學中非常受歡迎的函式庫。Mocapy++ 是一個用於動態貝氏網路 (DBN) 中參數學習和推論的機器學習工具包,它編碼一個領域中隨機變數之間的機率關係。Mocapy++ 可在 GNU 通用公共許可證 (GPL) 下從 SourceForge 免費取得。該函式庫支援各種 DBN 架構和機率分佈,包括來自方向統計的分佈。值得注意的是,球體上的肯特分佈和環面上的二元 von Mises 分佈,已被證明在制定蛋白質和 RNA 結構的機率模型中很有用。這樣一個非常有用的強大函式庫,已在 TorusDBN、Basilisk、FB5HMM 等專案中成功使用,是長期努力的成果。最初的 Mocapy 實作可以追溯到 2004 年,從那時起,該函式庫已在 C++ 中重寫。然而,C++ 是一種靜態類型和編譯的程式設計語言,不利於快速原型設計。因此,目前 Mocapy++ 沒有動態載入自訂節點類型的功能,而用於插入不需要修改和重新編譯函式庫的新節點類型的機制是令人感興趣的。這樣一個外掛介面將透過允許快速實施和測試新的機率分佈來輔助快速原型設計,這反過來可以大大縮短開發時間和精力;使用者將有權擴展 Mocapy++,而無需修改和隨後的重新編譯。認識到這一需求,T. Hamelryck 提出了這個專案(以下稱為 MocapyEXT),旨在改進目前的 Mocapy++ 節點類型擴展機制。

方法與目標 MocapyEXT 專案主要是一項工程工作,目的是為 Mocapy++ 帶來一個透明的 Python 外掛介面,其中內建和動態載入的節點類型可以統一的方式使用。此外,使用者可以修改外部實作和動態載入的節點,並且這些變更不需要重新編譯客戶端程式,也不需要重新編譯隨附的 Mocapy++ 函式庫。這將有助於快速原型設計、簡化現有程式碼的調整,並在對現有 Mocapy++ 介面進行最少變更的同時,提高軟體互通性,從而促進平穩地接受 MocapyEXT 引入的變更。

導師 Eric Talevich

Thomas Hamelryck

2010 (OBF)

改進 Bio.PDB

學生 João Rodrigues

研究動機 Biopython 是生物資訊學和計算生物學中非常受歡迎的函式庫。其 Bio.PDB 模組最初由 Thomas Hamelryck 開發,對於結構生物學家來說是一個簡單而強大的工具。雖然它提供了可靠的 PDB 解析器功能,並且允許對巨分子進行多項計算(鄰居搜尋、RMS),但它仍然缺少許多研究人員日常工作中使用的功能。在結構中探測二硫鍵並相應地添加極性氫原子是可以在 Bio.PDB 中加入的兩個例子,因為該模組具有巧妙的結構和良好的整體組織。社群也會非常感謝諸如鏈去除和殘基重命名(以考慮不同的現有名稱)和重新編號等修飾操作。可以為 Bio.PDB 改進的另一個方面是巨分子模擬中重量級軟體(例如 MODELLER、GROMACS、AutoDock、HADDOCK)的平穩整合/互動層。有人可能會認為最簡單的解決方案是為這些軟體包的函數和例程編碼掛鉤。然而,諸如最近開發的 edPDB 或更完整的 Biskit 函式庫等專案,我認為,使得這些介面工作變得多餘。相反,我認為將這些軟體的輸入/輸出格式包含在 Biopython 的 SeqIO 和 AlignIO 模組中更有利。這與為模型驗證/結構檢查服務/軟體建立介面一起,將允許 Biopython 用作模擬前後的工具。最終,這將為將其納入結構建模、分子動力學和對接模擬的管道和工作流程鋪平道路。

導師 Eric Talevich

Peter Cock

Diana Jaunzeikare

2009 (NESCent)

這是 Biopython 首次參與 GSoC,我們在 NESCent 的 GSoC 2013 專案 的旗幟下進行。

PhyloXML

研究動機 PhyloXML 是一種用於系統發生樹的 XML 格式,旨在允許儲存關於樹本身(例如分支長度和多個支援值)以及分類學和基因組註釋等資料的資訊。以標準格式連接這些演化資訊是比較基因組學的關鍵。

在 2008 年的程式碼夏季活動中建立了一個 phyloXML 的 Bioperl 驅動程式;這個專案旨在為受歡迎的 Biopython 軟體包建立類似的模組。

導師 Brad Chapman

Christian Zmasek

Biopython 的生物地理系統發生學

研究動機 我開發了 Bio.Geography,這是生物資訊學程式設計工具包 Biopython 的一個新模組。Bio.Geography 擴展了 Biopython 從線上資料庫存取基因和蛋白質序列的傳統功能,允許自動搜尋、下載和解析來自 GBIF 的地理位置記錄,GBIF 是全球自然歷史收藏品標本資訊的權威聚合器。這將啟用對演化生物地理學的分析,這些分析需要系統發生樹末端物種所居住的區域,特別是對於需要處理數千條標本出現記錄的大規模分析。該模組還將促進諸如物種繪圖、生態位建模、博物館記錄的錯誤檢查和監測範圍變化等應用。

導師 Brad Chapman

Stephen Smith

David Kidd