綜述 | 開源及其在醫學信息領域的應用

一、什麼是開源

“開源(open source)”這個詞,指的是某個事物被設計爲可以公開訪問的,因此人們可以修改並分享[1]。
這個詞最初是起源於軟件開發中,指的是一種開發軟件的特殊形式。但到了今天,“開源”已經泛指一組概念——就是我們稱之爲的“開源的方式”。這些概念包括開源項目、產品,或是自發倡導並歡迎開放變化、協作參與、快速原型、公開透明、精英體制以及面向社區開發的原則。

二、主要開源協議和託管平臺

2.1 主流開源協議[3],[4]

2.1.1 GNU General Public License(GPL)

GPL是開源界幾乎最常用的協議,它保證了所有開發者的權利,同時爲使用者提供了足夠的複製,分發,修改的權利。
其基本內容如下:
 可自由複製
你可以將軟件複製到你的電腦,你客戶的電腦,或者任何地方。複製份數沒有任何限制。
 可自由分發
在你的網站提供下載,拷貝到U盤送人,或者將源代碼打印出來從窗戶扔出去(環保起見,請別這樣做)。
 可以用來盈利
你可以在分發軟件的時候收費,但你必須在收費前向你的客戶提供該軟件的 GNU GPL 許可協議,以便讓他們知道,他們可以從別的渠道免費得到這份軟件,以及你收費的理由。
 可自由修改
如果你想添加或刪除某個功能,沒問題,如果你想在別的項目中使用部分代碼,也沒問題,唯一的要求是,使用了這段代碼的項目也必須使用 GPL 協議。

若使用該協議,在發佈的時候,需要明確提供源代碼和二進制文件,且必須在源代碼中包含相應信息,包括協議本身。

2.1.2 GNU Lesser General Public License(LGPL)

LGPL是GPL的變種,用於支持類庫使用,也是GPL爲了得到更多的商用軟件開發商的支持而提出的。與GPL的最大不同是,LGPL允許商業軟件通過類庫引用(link)方式使用LGPL類庫而不需要開源商業軟件的代碼。這使得采用LGPL協議的開源代碼可以被商業軟件作爲類庫引用併發布和銷售。
因此LGPL協議的開源代碼很適合作爲第三方類庫被商業軟件引用,但不適合希望以LGPL協議代碼爲基礎,通過修改和衍生的方式做二次開發的商業軟件採用。

2.1.3 Mozilla Public License(MPL)

MPL被稱爲弱開源約束授權,它允許免費重發布、免費修改,但要求修改後的代碼版權歸軟件的發起者。
這種授權維護了商業軟件的利益,它要求基於這種軟件的修改無償貢獻版權給該軟件。
這樣,圍繞該軟件的所有代碼得版權都集中在發起開發人得手中。
但MPL是允許修改,無償使用的。
MPL軟件對鏈接沒有要求。(要求假如你修改了一個基於MPL協議的源代碼,則必須列入或公開你所做的修改,假如其他源代碼不是基於MPL則不需要公開其源代碼)
2.1.4 MIT License
MIT協議的特點如下:
 非版權
 項目作品適合商業用途。
 被許可方可以修改項目。
 被許可方必須提供引用說明。
 被許可方可以根據不同條款重新發布衍生作品
 被許可方不必將其衍生作品和源代碼一起發佈。
它對重複使用的限制極少,可以輕鬆地與其他許可證關聯。

2.1.5 BSD License

BSD許可證有三個版本,分爲4句版,3句版和2句版。這三種版本在理念上與MIT協議高度接近。
其特點如下:
 非版權。
 項目作品適合商業用途。
 被許可方可以修改工作。
 被許可方必須提供引用說明。
 被許可方可以根據不同條款重新發布衍生作品。
 被許可方不必將其衍生作品和源代碼一起發佈。
 被許可方不得使用原作者名稱或商標來爲衍生作品背書(3句版和4句版BSD)
 被許可方必須在提及此項目功能或用途的所有廣告材料中致謝項目原作者(4句版BSD)
如果想保護自己的產品或品牌名稱,可以使用該協議。

2.1.6 總結

以上爲常見的幾種開源協議,對於協議的更爲具體的選擇可以參考下圖:
在這裏插入圖片描述

2.2 主流託管平臺

2.2.1 Github

最爲著名的開源項目聚集地,到目前爲止 Github 彙集了全球 2100 萬程序員,5600 萬代碼倉庫,11 萬 7 千個企業。可以創建很多公開倉庫,不過私有倉庫是收費的。

2.2.2 Gitlab

比較適合企業的託管平臺,也可以個人使用,能夠創建免費的私有倉庫。

2.2.3 BitBucket

同時支持Git和Mercurial這兩個版本控制軟件。免費的私有倉庫,支持5人以內的合作開發。

2.2.4 CSDN code

國內最大編程社區的代碼託管平臺,一大特色是和CSDN 的博客實現連接,在博客中可以方便地引用平臺上的代碼,在博客中寫入的代碼也可以自動保存到平臺上。

三、醫學圖像信息知名開源軟件

3.1 SPM(statistical parametric mapping)

SPM是專門爲腦功能成像數據分析而設計的一個通用軟件包。這個軟件的最終輸出是統計參數圖像,它對所有成像數據的每一個像素點都分別計算,得到包含有每個像素點參數值的圖像。這個參數圖像是許多單次掃描圖像所包含信息的壓縮,這樣有利於我們讀取和理解。它的主要貢獻在於解決了不同圖像數據間(CT,MRI等)的比較問題。

3.2 FSL(FMRIB Software Library)

FSL是一組用於MRI,FMRI,DTI圖像數據分析的軟件工具合集,由牛津大學FMRIB Analysis Group創立,集成了許多用於MRI,FMRI圖像分析的工具。

3.3 ITK

ITK是開源的、跨平臺的系統,它爲開發者提供全面的用於圖像分析的軟件工具。ITK開發時採用遠端的編碼技術,使得它能夠採用前沿的算法,來實現多維度,多模態數據的存儲編碼和分割。

3.4 VTK(Visualization Tool Kit)

VTK是一套開源的用於3D計算機圖形學,圖像處理和可視化的軟件系統。它包含有C++類庫和一些易理解的Tcl/Tk、Java、Python接口層。

四、結果與綜述

開源意味着自由的訪問、修改和分享,在軟件開發領域即爲代碼的共享,二次開發和利用。
雖然開源核心在於自由分享,但仍然需要一些協議來保護軟件開發者的知識產權,而且協議是多種多樣的,可以根據開發者的需求自由選取。有了協議後,就需要遵守和監督,於是促生了一系列的開源託管平臺,開發者可以在這些託管平臺上上傳自己的代碼,選擇需要的開源協議,而平臺則負責多位開發者的協調和開源協議的有效性。
在醫學圖像領域,特別是在醫學圖像信息領域也有大量的開源的身影,因爲醫學圖像的特殊性,需要大量專業的軟件來幫助醫生分析,於是誕生了許多處理CT、MRI圖像的開源軟件。
開源能夠很大程度上促進整個行業的發展,誕生了許多偉大的作品(Linux等),接納開源,擁抱自由

五、參考文獻

[1] https://opensource.com/resources/what-open-source
[2] https://ocselected.org/open-source-guide/legal/
[3] https://blog.csdn.net/xiaoxiao133/article/details/83049959#LGPL_21
[4] https://www.zhihu.com/question/19568896
[5] https://www.cnblogs.com/oc-bowen/p/6676794.html
[6] https://blog.csdn.net/wobujianni/article/details/40758727

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章