1、 本科毕业论文 (科研训练、毕业设计 ) 题 目: 核磁共振仪器控制软件开发 谱图数据处理软件包 姓 名: 学 院:软件学院 系:软件工程 专 业:软件工程 年 级: 学 号: 指导教师(校内): 职称: 指导教师(校内): 职称: 年 月 摘要 核磁共振仪器控制软件开发 谱图数据处理软件包 摘要 核磁共振是一种物理 现象, 已经作为一种分析手段广泛应用于物理、化学生物等领域,并在 1973 年用于医学临床检测。 NMR(Nuclear Magnetic Resonance)技术即核磁共振谱技术,是将核磁共振现象应用于分子结构测定的一项技术,对于有机分子结构的测定来说,核磁共振谱扮演了非常重要
2、的角色,核磁共振谱、紫外光谱、红外光谱和质谱一起被有机化学家们称为 “四大名谱 ”。 现在 生产 用于核磁共振谱分析的仪器主要有两家: Bruker 和 Varian。在国内,还没有相应的仪器出现,因此开发核磁共振仪器 不仅 会促进国内核磁共振技术的发展, 而 且 可以填补国家在这一 领域 的空白。 本文主要讨论了核磁共振仪器中一维数据处理的各种算法 以及谱图显示 ,并讨论各种算法的 原理和开发方法 。 谱图数据处理软件包是以 Java 为平台, 用 Eclipse 来开发的 ; 同时作者 使用 RCP( Rich Client Platform)技术 开发 一套 以谱图数据处理软件包为依托的
3、软件系统 , 并且 利用 Draw2D来显示谱图数据处理包的处理结果 。 该 软件 系统有界面美观、操作简单等特点。 关键字 核磁共振 NMR 谱图数据处 理 RCP Abstract Software development of NMR instrument Spectra data processing software package Abstract Nuclear Magnetic Resonance is a physical phenomenon, and is used as an analytical tool widely in physical, chemical an
4、d biological fields, and in 1973 for medicine testing. NMR that is NMR technology, is the phenomenon of nuclear magnetic resonance in molecular structure determination of a technology, for organic molecular structure determination, NMR plays a very important role. NMR, UV, IR and mass spectrometry t
5、ogether with organic chemist are known as the “four spectrum.“ Now there are two companies which produce the instrument: Bruker and Varian. There is no corresponding equipment in our country. Therefore, developing the NMR instrument will promote domestic technology, and fill the gaps in this field.
6、Spectra data processing software package is based on Java platform and Eclipse as a tool using RCP (Rich Client Platform) technology to develop a software system based on the spectra data processing software package, and use Draw2d show the processed results. The software interface is beautiful, and
7、 operates easily and so on. Keyword NMR spectra data processing RCP 目录 目录 引言 . 1 第 一 章 绪论 . 2 1.1 核磁共振技术基本原理 . 2 1.2 软件开发工具 . 2 1.2.1 Eclipse 开发工具 . 2 1.2.2 RCP 程序开发 . 3 1.2.3 Draw2d 简介 . 4 1.3 项目背景简介 . 5 第 二 章 软件系统需求说明 . 6 2.1 软件目标 . 6 2.2 输入和输出需求 . 6 2.3 数据处理分析需求 . 7 2.4 软件系统的流程图 . 7 2.5 出错处理 . 9
8、2.6 软件 开发约束条件 . 9 第 三 章 软件系统概要设计 . 10 3.1 软件系统总体设计思想 . 10 3.2 运行环境 . 10 3.3 软件系统的模块划分 . 10 3.3.1.I/O 模块 . 11 3.3.2.界面模块 . 12 3.3.3.数据处理模块 . 12 3.3.4 数据分析模块 . 13 3.3.5 谱图显示模块 . 13 3.3.6 系统总模块图 . 14 3.4 子模块数据流图 . 15 目录 第 四 章 软件系统详细设计 . 16 4.1 界面设计 . 16 4.2 数据处理分析模块 . 19 4.2.1 傅立叶变换 . 19 4.2.2 相位校正 . 2
9、1 4.2.3 基线校正 . 29 4.2.4 寻峰 . 31 4.2.5 峰拟合 . 32 4.2.6 峰积分 . 33 4.3 谱图显示 . 33 4.4 命令解析 . 38 第 五 章 软件系统 测试及运行结果 . 40 总结 . 45 致谢 语 . 47 参考文献 . 48 Contents Contents Introduction . 1 Chapter 1 Prolegomenon . 2 1.1 Basic Principle Of NMR . 2 1.2 Software Development Tools. 2 1.2.1 Eclipse . 2 1.2.2 RCP Pro
10、gramming . 3 1.2.3 Draw2d Introduction . 4 1.3 Brief Introduction to Project Background. 5 Chapter 2 Software System Requirement . 6 2.1 The Goal Of Software System . 6 2.2 The Demand Of Input And Output . 6 2.3 Data Processing Demand . 7 2.4 The Flow Chart Of Software System. 7 2.5 Error Handling.
11、9 2.6 The Restriction Of Software Development. 9 Chapter 3 Preliminary Design Of Software System . 10 3.1 The General Design Principle Of Software System.10 3.2 Runtime Environment .10 3.3 The First Partition Of Software System .10 3.3.1. I/O Module . 11 3.3.2. Interface Module.12 3.3.3. Data Proces
12、sing Module .12 3.3.4 Data Analyse Module .13 3.3.5 Spectrum Display Module .13 3.3.6 The Whole Partition Of Software System .14 Contents 3.4 The Data Flow Chart Of Submodule .15 Chapter 4 Detailed Design Of Software System . 16 4.1 Interface Design .16 4.2 Data Process And Analyse Module .19 4.2.1
13、Fourie Transform .19 4.2.2 Phase Correction.21 4.2.3 Baseline Correction.29 4.2.4 Peak Finding .31 4.2.5 Peak Fitting .32 4.2.6 Peak Integral .33 4.3 Spectrum Display .33 4.4 Command parse .38 Chapter 5 The Testing And Result Of Software System. 40 Summary . 45 Acknowledgement . 47 References. 48引言
14、第 1 页 共 49 页 引言 核磁共振的方法与技术作为分析物质的手段,由于其可深入物质内部而不破坏样品,并具有迅速、准确、分辨率高等优点而得以迅速发展和广泛应用,已经从物理学渗透到化学、生物、地质、医疗以及材料等学科,在科研和生产中发挥了巨大作用。在国内,核磁共振技术 起步 比发达国家晚,发展 也 较为缓慢。 核磁共振技术需要一整套完整的硬件和软件, 到目前为止, 国内 还没有相应的仪器和软件出现,使用的仪器和软件都是从国外进口的。这不仅消耗了大量的国家外汇储备, 也给实验人员带来不便 。因此开发出一套 自己的 核磁共振仪器必定会促进核磁共振技术的发展 , 并促进 其他 相关学科的发展。 核
15、磁共振谱图数据处理是核磁共振技术中一个 非常 关键的环节,对分析结果产生重要的影响。 可惜的是,现在有关这一 领域 的论文都比较零散,都只是 讨 论了其中的某一方面,甚至有些算法只能适合于某 些 谱图。 作者 参考了大量的论文和文献,综合了一维谱图数据处理算法,希望对以后的仪器 控制软件 开发能起到一定的作用。 作者 用 java 语言开发了一维谱图数据处理的各种算法,并形成一个软件包。该软件包不仅仅实现了核磁共振技术 一维数据处理的 算法,同时也改进了 部分 算法,提高算法的效率。之所以用 java 语言来开发,主要 是考虑到 java 语言具有跨平台性,在 Linux 和 Windows
16、操作系统都能很好的运行。 作者 同时开发出一套软件系统, 该软件系统以该谱图数据处理软件包 为依托,具有良好的用户界面和易操作的特点 。 本文以开发的软件系统为背景逐步介绍核磁共振技术 算法 。 本文的 总体 结构以输入 处理 分析 输出为主线。 在输入模块里,主要 介绍核磁共振数据 FID( Free Induction Decay自由感应衰减)读取和显示 ; 在处理模块主要 介绍 FID 数据处理的一系列算法 ,这些算法有傅立叶变换、相位校正、基线校正 ; 在分析模块主要介绍了寻峰、峰 拟合、峰积分等算法 ;输出模块主要介绍数据 处理结果的显示 及操作 。 为了更好的理解该软件系统 和一些
17、核磁共振技术 ,本文会在 绪论 部分介绍 核磁共振技术原理和 软件 开发 使用的 技术 。 为了能够验证该软件系统的正确性,作者把开发的软件系统的处理结果跟 Varian 公司开发的软件系统进行比较,同时笔者也把处理结果跟现在国外一家公司生产的核磁共振谱图数据处理软件进行比较,从验证的结果 可 以看出,笔者开发的软件的处理结果正确,而且处理的方式方法比较灵活,开发的软件包可作为商业用途;但也有一些不足的地方,比如效率 比较低 核磁共振仪器控制软件开发 第 2 页 共 49 页 第 一 章 绪论 1.1 核磁共振技术基本原理 原子核有自旋运动, 在恒定的磁场中, 自旋的原子核将绕外加磁场作回旋转
18、动, 叫进动 (precession)。进动有一定的频率, 它与所加磁场的强度成正比。如 果 在此基础上再加一个固定频率的电磁波, 并调节外加磁场的强度, 使进动频率与电磁波频率相同。这时原子核进动与电磁波产生共振, 叫核磁共振。核磁共振时, 原子核吸收电磁波的能量, 仪器 记录下的吸收曲线就是核磁共振谱 (NMR-spectrum)。由于不同分子中原子核的化学环境不同, 将会有不同的共振频率, 产生不同的共振谱。 根据 这种波谱即可判断该原子在分子中所处的位置及相对数目, 用以进行定量分析及分子量的测定, 并对有机化合物进行结构分析。 1.2 软件开发工具 1.2.1 Eclipse 开发工
19、具 Eclipse 是基于 Java 的整合型可扩展开发平台, 它是一个开放的源代码,类似于NetBeans、 Sun ONE Studio 和 Borland JBuilder 等开发工具, 也是目前最著名的开源项目之一, IBM 在最近几年里也一直在大力支持该项目的发展,目标是将其做成用以替代 IBM Visual Age for Java(简称 IVJ)的 下一代 IDE 开发环境,并于 2001 年 11 月宣布投入 四 千万美元到该项目的研发。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境 。 它主要由 Eclipse 项目、 Eclipse 工具项目和 Ecl
20、ipse 技术项目三个项目组成,具体包括四个部分组成 -Eclipse Platform、 JDT、 CDT 和 PDE。 JDT 支持 Java 开发、 CDT 支持 C 开发、 PDE 用来支持插件开发, Eclipse Platform 则是一个开放的可扩展 IDE,提供了一个通用的开发平台 。 Eclipse 开发软件平台界面如图 1-1 所 示: 第一章 绪论 第 3 页 共 49 页 图 1-1 Eclipse 界面 1.2.2 RCP 程序开发 在 Eclipse 平台的发展过程中,倡导的是插件的思想 1,2 。可以说,插件是 Eclipse 平台的核心内容,但所有的这些插件的运
21、行都要依赖于 Eclipse 平台。但当程序员开发桌面的应用 程序 时,往往想摆脱对 Eclipse IDE 的依赖,而是希望使用最小的运行环境来运行系统。所以在 Eclipse 3.0 以后的版本中逐步地将插件的运行从 Eclipse 平台中剥离出来,从而 形成了RCP。简单地说, RCP( Rich Client Platform) 系统本质上是 Eclipse 的插件,但运行时却能够脱离 Eclipse 平台而独立运行。这就使得 RCP 的应用更加灵活和广泛。 在 Eclipse 中,虽然插件都是以同等的方式创建起来的,但是某些插件比其他的插件更重要。正如上图的 Workbench 和 Workspace 是 Eclipse 平台的两个必备的插件,他们提供了大多数插件的扩展点。 如果在 Eclipse 工程中只包含有 Workbench 和 Workspace 这两个插件,那么这个工程导出后的运行程序就是一个空的应用程序,它可以独立于 Eclipse 而存在。