综述 | 开源及其在医学信息领域的应用

一、什么是开源

“开源(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

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值