核磁共振仪器控制软件——谱图数据处理软件包开发-毕业论文_第1页
核磁共振仪器控制软件——谱图数据处理软件包开发-毕业论文_第2页
核磁共振仪器控制软件——谱图数据处理软件包开发-毕业论文_第3页
核磁共振仪器控制软件——谱图数据处理软件包开发-毕业论文_第4页
核磁共振仪器控制软件——谱图数据处理软件包开发-毕业论文_第5页
免费预览已结束,剩余53页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要核磁共振仪器控制软件 谱图数据处理软件包开发摘要 核磁共振仪器控制软件是对从超导核磁共振谱仪采集到的实验参数、波谱数据进行综合分析处理的软件。国外Bruker系列,Varian系列谱仪中都有提供配套的分析软件。为了在核磁共振研究方面赶上世界先进水平,填补我国核磁共振谱仪的空白,国家“985计划”将其作为一项重要课题,决定研制拥有自主知识产权的核磁共振谱仪及其处理分析软件。本文参考原Varian系列软件系统,针对所负责的数据处理模块,实现了一维谱图数据处理软件包的开发。该软件包通过读取核磁共振谱仪输出的fid格式数据文件,实现核磁共振实验中的基本算法,如傅立叶变换、相位校正、基线调整、寻峰、积分等。谱图显示不仅实现了数据的时时变化显示功能,而且可以直接对图形进行操作,如放大、缩小、拖放、手动寻峰、手动相位校正等。核磁共振仪器控制软件包采用Java语言编写,在开源社区Eclipse 3.2 下进行跨平台、插件式开发。运用RCP,SWT-Designer的界面设计思想,不仅使得Java下的界面开发不再是一个技术瓶颈,而且美观大方,极具人性化。运用GMF、EMF框架设计理念,让数据处理与图谱显示达到最完美的结合。关键词 核磁共振 谱图数据处理 傅立叶变化 Eclipse3.2 SWT/JFaceAbstractInstrument Controlled Software of NMR Development of the Spectra Data Processing SoftwareAbstract Instrument controlled software of NMR is a comprehensive analysis software that analyzes the experimental parameters and spectral data from the superconducting NMR spectrometer acquisition. Foreign Bruker series and Varian spectrometer series have supporting software. In order to catch up with the worlds advanced level of NMR studies and fill in the blank of Chinese NMR spectrometer, the national “985 Plan” regarded it as an important issue, decided to develop its own intellectual property NMR spectrometer and its processing software.In response to the charge of data processing, I reference to the original Varian system, read through the NMR spectrometer control output .fid format data files, achieve the basic algorithm of NMR experiments, such as Fourier transform, phase correction, baseline adjustment, searching peak ,Integral. Spectra indicated that some of the data processing to achieve the constantly changing display function can be carried out directly on the graphics operations, such as amplification, zoom out, drag and drop, manual searching peak, manual correction phase.Instrument controlled software of NMR is using the Java programming language in the open source community under Eclipse 3.2 cross-platform plug-in development. As using the RCP and the SWT-Designer interface design, Java not only makes the interface development is no longer a technical bottleneck, but pleasing to the eye and extremely humane; as using the framework design of GMF and EMF, data processing and map indicates achieve the perfect combination.Keywords NMR spectra data processing Fast Fourier Translate Eclipse 3.2 SWT/JFace目录目录引言1第一章 绪论21.1 项目开发背景21.2 对现有系统的分析31.3 整体设计目标41.4 NMR开发技术简介41.4.1 Eclipse开发平台41.4.2 SWT/JFace和Draw2d谱图设计61.4.3 RCP插件式界面设计81.4.4 GEF设计框架8第二章 NMR核磁共振软件包需求分析102.1 软件设计目标102.2 软件功能102.2.1 功能划分102.2.2 功能描述102.3 软件接口分析112.3.1 NMR界面112.3.2 运行环境122.3.3 异常处理122.4 NMR输入数据描述122.5 数据精度要求152.6 谱图显示处理流程152.7 开发限制条件16第三章 NMR仪器控制软件包概要设计173.1 基本设计思想173.2总体框架173.3 子模块功能详细说明193.3.1 界面框架模块193.3.2 数据处理分析模块223.3.3 IO模块233.3.4 谱图显示模块23第四章 NMR仪器控制软件包详细设计274.1 界面框架模块274.1.1 菜单工具栏设计274.1.2 Viewer视图设计284.1.3 状态提示设计304.1.4 命令解析机制304.2 数据输入模块314.3 数据处理分析模块324.3.1 傅立叶变换324.3.2 相位校正344.3.3 基线校正374.3.4 寻峰394.3.5 峰拟合404.3.6 峰积分404.4 谱图显示模块414.5 数据输出模块43第五章 NMR仪器控制软件包结果测试445.1 测试傅立叶变换445.2 测试自动相位校正455.3 测试基线校正465.4 测试寻峰475.5 测试峰积分485.6 测试结论48结束语49致谢50参考文献51ContentsContentsIntroduction1Charter 1 Prolegomenon 21.1 Project Development Background21.2 Analysis of The Existing System31.3 Overall Design Objectives41.4 NMR Development Kits41.4.1 Eclipse Development Platform41.4.2 Spectrum Design of SWT/JFace and Draw2d61.4.3 RCP Plug-in Interface Design81.4.4 GEF Design Framework8Charter 2 Requestment of NMR Software102.1 Software Design Goals102.2 Function of Software102.2.1 Division of Software102.2.2 Description of Software102.3 Analysis of Software Interface112.3.1 NMR Interface112.3.2 Operating Environment122.3.3 Exception Handing122.4 NMR Description of Input Data122.5 Data Accuracy152.6 Spectrogram Display Processing Flow152.7 Development Restrictions16Charter 3 Preliminarty Design of NMR Software173.1 Basic Design Idea173.2 Overall Framework173.3 Detail of Child Module193.3.1 Module of Interface Framework193.3.2 Module of Data Processing Analysis223.3.3 Module of IO233.3.4 Module of Spectra Display23Charter 4 Detailed Design of NMR Software274.1 Module of Interface Freamework274.1.1 Design of Menu bar and Tool bar274.1.2 Design of Viewer284.1.3 Design of Status304.1.4 Design of Cammand Analysis304.2 Module of Input Data 314.3 Mudule of Data Processing Analysis324.3.1 Fast Fourier Transform324.3.2 Phase Correction344.3.3 Baseline Correction374.3.4 Peak Finding394.3.5 Peak Fitting404.3.6 Peak Integral404.4 Module of Spectra Display414.5 Module of Output Data43Charter 5 Result Testing of NMR Software445.1 Testing of Fast Fourier Transform445.2 Testing of Automatic Phase Correction455.3 Testing of Baseline Correction465.4 Testing of Peak Finding475.5 Testing of Integral485.6 Testing Result48Conclusion49Acknowlegement50References51引言引言核磁共振技术,是将核磁共振现象应用于分子结构测定的一项技术,对于有机分子结构测定来说,核磁共振谱扮演了非常重要的角色。核磁共振谱、紫外线谱、红外线谱和质谱一起被有机化学家们称为“四大名谱”。本文以国家科技支撑项目“核磁共振仪器控制软件”的开发为背景,深入理解大型软件开发的思想,针对所负责的数据处理模块,实现谱图数据处理软件包的开发。首先,通过分析项目背景,在核磁共振软件包可行性研究的基础上,介绍了开发过程中需用到的软件工具及其相关技术说明。接下来,本文将严格按照软件工程思想的文档格式要求进行书写,主要包括:需求分析、概要设计、详细设计、结果测试等。需求分析深入描述了核磁共振软件包的功能和性能,确定了本软件要处理的FID数据域,理解了软件包“做什么”的本质。概要设计将核磁共振软件包划分成了界面框架模块、数据处理模块、IO模块、图谱显示模块,确定了模块间的相互关系,也确定了数据结构、文件结构、测试方法与策略。在概要设计后转入详细设计,它根据概要设计提供的文档,确定每个模块的算法和内部数据组织,并用各种表达工具进行清晰的描述。软件测试的过程其实是贯穿于核磁共振软件包开发的始终,此处的测试主要是针对运行结果,数据流进行测试。最后,在文末将对核磁共振项目开发前期工作过程及经验和教训等方面进行概括和总结,希望能为今后的项目提供重要的参考。由于毕业设计开发时间仓促,加上笔者水平有限,文中不足或错误之处在所难免,恳请大家批评指正。- 51 -第一章 绪论第一章 绪论1.1 项目开发背景核磁共振(NMR,Nuclear Magnetic Resonance),是处于静磁场中的原子核在另一交变磁场作用下发生的物理现象。并不是所有原子核都能产生这种现象,原子核能产生核磁共振现象是因为具有核自旋。原子核自旋产生磁矩,核磁矩处于静止外磁场中时产生进动核和能级分裂。在交变磁场作用下,自旋核会吸收特定频率的电磁波,从较低的能级跃迁到较高的能级。这种过程就是核磁共振。对于某一特定原子,在一定强度的外加磁场中,其原子核自旋进动的频率是固定不变的。通常人们所说的核磁共振指的就是利用核磁共振现象的此性质测定分子结构,人体内部结构信息的技术。核磁共振的方法与技术作为分析物质的手段,由于其可深入物质内部而不破坏样品,并且具有迅速、准确、分辨率高等优点而得以迅速发展和广泛应用,已经从物理学渗透到化学、生物、地质、医学以及材料等学科,在科研和生产中发挥了巨大作用。但是在中国,其应用主要在基础研究方面。加之我国核磁共振研究起步晚,至今核磁共振谱仪软硬件设施都是从国外进口,代价昂贵,企业和商业应用普及率不高。为了填补国内这一块的空缺,赶上世界先进水平,国家“985计划”将其作为一项重要的研究课题,决定研制拥有自主知识产权的核磁共振谱仪软硬件。厦门大学、武汉物理研究所和沈阳东软有限公司一起承接了此项目,厦门大学主要是负责核磁共振谱仪软件部分,而武汉物理研究所主要工作是核磁共振谱仪硬件开发,沈阳东软有限公司则负责核磁共振谱仪的成品及商业化。厦门大学软件学院和物理系合作,共同开发研制核磁共振谱仪软件,本着“取其精华,去其糟粕”的原则,力争通过借鉴比较国外软件,深入算法领域研究,研制出自主知识产权的优秀的核磁共振谱仪软件。1.2 对现有系统的分析核磁共振谱仪软件一般是与谱仪硬件配套发行使用的,现在比较流行的核磁共振分析软件有Bruker公司的topspin软件和Varian公司的VnmrJ软件。图1-1 VnmrJ软件界面图1-2 Bruker软件界面其实,国外的这两款软件是很多专家的结晶,功能已经相当强大。可是,随着社会的发展,用户需求的提高,它们的局限性也越来越明显。具体表现在以下几个方面:(1) 界面过于呆板,按钮多而杂,操作缺乏人性化。(2) 处理功能多,但是显示方式单一,没有经过好的规划整理。(3) 可处理的文件格式单一,不具备多方兼容性。(4) 综上所述,加之我国没有自主知识产权的核磁共振仪器控制软件,因此,开发工作迫在眉睫。1.3 整体设计目标核磁共振仪器控制软件开发整体设计目标是,根据国家科技支撑项目“核磁共振仪器控制软件”开发要求,此软件主要用于测定化学物质的分子结构。我们通过借鉴国外已有软件系统,力争在图谱显示、易操作性、兼容性、算法准确性等方面得到进一步发展。NMR仪器控制软件的设计要按照大型软件开发的思想,时时注意可扩展性、简单易读性、高效性等原则,要为软件开发过程中不断出现的新要求、新问题做出充分的准备。要实行过程控制,实时监督,不断安排进行检测。届时,此NMR谱图分析软件将有望与核磁共振谱仪一道在我国实现商业化,用于高校物理化学生物实验室、研究所等。1.4 NMR开发技术简介1.4.1 Eclipse开发平台Eclipse是一个开放源代码的,基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件构建开发环境。平台本身不会提供大量的最终用户功能,平台的价值在于它的促进作用:根据插件模型来快速开发继承功能部件,插件允许无限扩展,而且有着统一的外观,操作和系统资源管理。第一章 绪论图1-3 Eclipse 3.2 界面Eclipse提供了公共用户界面(UI)模型来使用工具。它被设计为在多个操作系统上运行,同时提供与每个底层操作系统的强大集成。插件可以为Eclipse可移植API设计程序,并在任何受支持的操作系统上不加改变地运行。Eclipse平台是围绕插件概念构建的。插件是向系统提供功能的代码和数据的结构化Bundle。功能可通过以下形式提供:代码库(带有公用API的Java类),平台扩展,甚至是文档。插件可定义扩展点,即经过严格定义,其他插件可在其中添加功能的位置。平台中的每个子系统本身是由一组实现某些关键功能的插件构建的。某些插件将可视功能添加至使用扩展模型的平台。其他插件提供可用于实现系统扩展的类库。Eclipse SDK(Software Developer Kit)包括基本平台及对插件开发特别有用的两个主要工具,Java开发工具(JDT)和插件开发者环境(PDE)。Java开发工具(JDT)实现功能完整的Java开发环境,插件开发者环境(PDE)添加了专门的工具以使插件和扩展的开发能够顺利进行。Eclipse平台体系结构如图1-4所示:核磁共振仪器控制软件图1-4 Eclipse平台体系结构1.4.2 SWT/JFace和Draw2d谱图设计SWT(SWT ,Standard Widget Toolkit)本身仅仅是Eclipse组织为了开发Eclipse IDE环境所编写的一组底层图形界面API。或许是无心插柳,或许是有意为之,迄今为止,SWT无论在性能上还是在外观上,都超越了Sun公司提供的AWT和Swing。SWT是一个库,它创建了Java版的本地主机操作系统GUI控件,将应用程序的数据模型与显示及更改它的GUI隔离开来,反映了主机操作系统的基本窗口小部件。所有SWT窗口组件都可以在org.eclipse.swt.widget或org.eclipse.swt.custom包中找到(一些Eclipse插件还在其他包中提供了定制的窗口组件)。JFace用来在SWT库顶部提供常见的应用程序用户界面功能。JFace并不试图“隐藏”SWT或者替换它的功能。它提供一些类和接口,以处理与使用SWT来对动态用户界面编程相关联的许多常见任务。SWT/JFace是Eclipse的基础,Eclipse的Workbench就是建立在SWT/JFace之上的,另外,JFace是在SWT之上开发的,它和SWT形成了一个交集,其中SWT提供最原始的组件,它们之间的简明关系如图1-5 所示:图1-5 SWT/JFace和Workbench的关系第一章 绪论JFace对SWT进行了扩展,把用户熟悉的一些组件进行了封装,在开发中用户可以尽可能地用JFace组件来开发自己的应用。JFace程序和SWT程序类似,只不过JFace把常用的功能进行了提炼,使用户不必太关心SWT的一些细节。Draw2d是基于SWT的轻量级组件系统。Draw2d的实例由SWT的组件,LightweightSystem和Draw2d的figures组成。SWT的组件是Draw2d的容器,figures是Draw2d中的图形,LightweightSystem是SWT和Draw2d的桥梁。IFigure可以是图形,也可以是容器。IFigure对象中能加入其他的IFigure对象,通过IFigure的组合生成Draw2d的图形。创建Draw2d的程序步骤一般如下:(1) 创建SWT的Canvas组件。(2) 添加LightweightSystem实例。(3) 添加IFigure实例。(4) 把IFigure实例加入到LightweightSystem中。图1-6 Draw2d与SWT关系图第一章 绪论1.4.3 RCP插件式界面设计RCP(RCP,Rich Client Platform)是Eclipse中为创建胖客户端程序而贡献的一种技术,它基于Eclipse插件架构,把Eclipse作为Java程序的宿主平台,在Eclipse的基础之上建立跨平台的Java应用,通过RCP技术开发出来的应用程序,可以与任何其他语言开发的本地程序相媲美。Eclipse作为RCP出现是在Eclipse 2.1版本发布时提出的。这一举动说明了Eclipse IDE本身是专业、漂亮、性能优良的。而Eclipse 3.0是使得Eclipse成为RCP一个重要的里程碑。这一版本中,Eclipse将许多UI部分的组件都进行了修改,让他们能够用户自定义化,并且Eclipse 3.0在更新,安装方面引入了OSGi机制,使得Eclipse真正成为了RCP。在Eclipse RCP整个系统中,最顶层的文件架是RCP安装目录,它的子目录中包含了一个plugins目录,这里是所有RCP所需要的plugin,以及开发者所部署的plugin。此外还有一些RCP的启动代码和可执行文件eclipse.exe。1.4.4 GEF设计框架GEF(GEF,Graphical Editor Framework)最早是Eclipse的一个内部项目,后来逐渐转变为Eclipse的一个开源工具项目,Eclipse的许多子项目都需要它的支持。GEF的优势是提供了标准的MVC(MVC,Model-View-Control)结构,即模型、视图和控制器。与其它一些MVC编辑框架相比,GEF的一个主要设计目标是尽量减少模型和视图之间的依赖,好处是可以根据需要选择任意模型和视图的组合,而不必受到开发框架的局限。GEF中模型和视图是两个完全没有联系的实体,两者都是通过控制器间接进行通信的。这样很好的解决了模型和视图之间的耦合,但是也增加了控制器的负担。GEF通过请求和编辑策略及命令模式很好的解决了控制器的负担,使每一个部分保持最小的依赖关系。GEF的命令请求及响应流程如下:(1) GEF框架接收用户的操作,并把操作转换成相应的请求。(2) 控制器接收请求并把请求交由相应的编辑策略管理器处理。(3) 编辑策略管理器根据请求的类型新建相应的命令处理请求。(4) GEF框架执行命令,命令负责对模型的修改。(5) 模型属性修改后,触发事件(控制器就是模型的监听器)。(6) 监听器监听到事件后处理相应的操作,并通知视图进行修改。(7) 视图更新显示界面,使之与模型同步。创建GEF编辑器,首先Eclipse创建控制器(EditorPart)设置好控制器的输入(IEditorInput),另外控制器也将初始化EditDomain,viewers和palette等。第二章 NMR核磁共振软件包需求分析第二章 NMR核磁共振软件包需求分析2.1 软件设计目标设计出界面美观大方,人性化的核磁共振谱图数据处理分析软件包。数据处理分析将参考原VnmrJ软件系统,读取NMR控制谱仪输出的FID格式数据文件,实现NMR中的基本算法,如傅立叶变换、相位校正、基线调整、寻峰、峰拟合、峰积分等,力争通过调研、查阅资料、参考权威算法,深入算法领域,提高数据处理分析效率。谱图显示将实现数据处理的时时变化显示功能,可直接对图形进行操作,如放大、缩小、投影、手动寻峰、手动积分等。2.2 软件功能2.2.1 功能划分通过调研,该核磁共振软件包需具有如下主要功能:(1) 数据处理分析功能。(2) 谱图显示功能。(3) 数据读取功能。(4) 数据输出功能。2.2.2 功能描述(1) 数据处理分析功能:包括一维谱的傅立叶变化、相位校正、半自动和手动基线调整、峰积分、寻峰、峰拟合等。(2) 谱图显示功能:包括一维谱图的放大或缩小,自适应自由放大缩小窗口,谱线随意拖拽,重定位坐标轴,可设置的谱图属性,灵活的多谱图排列对齐分布方式等。(3) 数据读取功能:主要读取从核磁共振控制仪器输出的fid格式(FID,Free Induction Decay)数据文件及proper格式参数文件,能够兼容识别Bruker,Varian等多种谱格式。(4) 数据输出功能:支持多种文件格式输出,如PDF格式、文本数据格式、图片格式等。2.3 软件接口分析2.3.1 NMR界面具有友好的,人性化的用户界面,对鼠标和键盘均提供支持,操作界面可部分借鉴主流NMR控制仪器软件界面,如Varian或者Bruker的控制操作界面。核磁共振软件包界面需要具有如下主要工作区:(1) 菜单栏,所有功能均可以在菜单栏中实现,菜单用词应当精练准确、没有歧义、符合软件工程和核磁共振业界标准。(2) 工具栏,可以根据操作内容、菜单栏的不同动态变化,图标美观大方,易于辨认。(3) 文件浏览器,用于显示实验数据文件列表,同时提供相关快捷方式、右键菜单选择功能等。(4) 属性浏览器,用于显示和修改谱图的相关属性信息,能够随着显示页面的不同时时变化,主要包括Outline和Property两个浏览器。(5) 命令行输入栏。(6) 作图区,用于FID数据显示、谱显示、直接谱图操作,允许多页编辑、数据手动处理等。(7) 简要信息提示区,用于操作提示、错误提示、帮助信息等。从上面界面需求可知,界面基本雏形如图2-1所示:图2-1 核磁共振软件包界面2.3.2 运行环境 硬件设备:个人计算机,内存256M以上软件:Window NT/Linux/Unix操作系统,JDK1.3以上,Eclipse 3.0以上2.3.3 异常处理正常使用时不应出现异常,若运行时遇到不可恢复的系统错误,也必须保证原始数据的完好无损。2.4 NMR输入数据描述从核磁共振控制谱仪输出的VnmrJ数据文件格式可分为两种:二进制文件和文本文件。(1) 二进制文件用于存储FID(时间域)和变换后的谱(频率域)数据。二进制文件由描述数据的文件头和随后的整数或者浮点数数据组成。(2) 文本文件用于存储参数(采样、处理参数),谱峰列表,谱分析的结果(如弛豫、扩散、去折叠)等数据。FID文件是存储在一个filename.fid的目录下,目录下有:(1) filename.fid/fid:二进制文件,里面包含FID数据。(2) filename.fid/procpar:文本文件,描述采集,处理FID数据的参数(3) filename.fid/text:文本文件,实验备注说明。本文中的核磁共振谱图软件包开发主要涉及二进制的fid数据文件,部分算法需要读取文本文件中的参数。FID或谱的二进制文件的结构如下:Data file header 32字节,数据文件的头Header for block1 数据块1的头Data of block1 数据块1Header for block2 数据块2的头Data of block2 数据块2FID数据文件头结构定义如下:public class datafilehead/* used at start of each data file. (FIDs, spectra, 2D)*/private long nblocks; /* number of blocks in file,文件中的块数目*/private long ntraces; /* number of traces per block,每一块中有多少trace*/private long np; /* number of elements per trace,每一trace中有多少元素*/private long ebytes; /* number of bytes per element,每一元素有多少字节*/private long tbytes; /* number of bytes per trace,每一trace有多少字节*/private long bbytes; /* number of bytes per block,每一block中有多少字节*/private short vers_id; /* software version,file_id status bits,软件版本位*/private short status; /* status of whole file,文件状态*/private long nbheaders;/* number of block headers per block,每块中有多少块头*/当datafilehead.nbheaders=2时,表明文件是一超复数数据文件,用于存储2D FID或者谱数据,由于本软件包只涉及一维FID数据,故超复数数据在此不讨论了。一维FID数据的datafilehead.nbheaders等于1,我们在进行数据提取时,最先判断的就是datafileheader的这个参数。Data file header中的各个参数详细意义如表2-1所示:第二章 NMR核磁共振软件包需求分析表2-1 FID数据头文件参数Data fileheadernblocks每一个文件中含有的块(block)数,对于一维非阵列实验,每个文件只有一个blockntraces每一个block中含有的trace个数np每一个trace中含有的元素(16位、32位整数,32位浮点数)数目,若是复数数据点,则np是复数数据点数的2倍ebytestrace中每一个元素所占的字节数,2-16位整数,4-32位整数或点数tbytes一个trace所占字节数等于np乘以ebytesbbytes每一个block中所占字节数等于ntraces*tbytes+nbheaders*sizeof(struct datablockhead),块头的结构datablockhead是28字节vers_id当前数据结构版本(或者软件版本)status状态字节nbheaders每一个block含有的block headers数目FID数据文件块头(block header)的结构定义如下:public class datablockhead/* each file block contains the following header */private short scale; /* scaling factor */private short status; /* status of data in block*/private short index;/* block index*/private short mode;/* mode of data in block*/private long ctcount;/* ct value for FID*/private float lpval;/* f2 (2D-f1) left phase in phasefile*/private float rpval;/* f2 (2D-f1) right phase in phasefile*/private float lvl;/* level drift correction*/private float tlt;/* tilt drift correction*/2.5 数据精度要求提取出的FID数据处理精度均采用32位浮点数。谱图坐标显示精度精确到整数。算法的正确性将以原核磁共振仪器开发软件VnmrJ或者MestReNova软件运行结果进行比较验证为准。2.6 谱图显示处理流程经过多次与厦门大学物理系交流探讨以及自己亲自到物理核磁共振实验室做实验,了解到FID数据处理分析的过程,抽取出软件包的基本流程如下:(1) 从FID数据文件中读取数据点集,根据FT变换点数(参数fn),对数据点集充零。若没有提供fn,则根据数据点数NP来确定fn为大于NP的最小2次幂整数,同时显示数据点集的实部和虚部。(2) 对充零后的数据点集进行傅立叶变换,变化得到的是频率谱的数据点集(复数点集),显示频率谱的实部、虚部、相敏谱以及绝对值谱。(3) 对频率谱数据点集进行自动相位校正,如果自动相位校正的效果不是很好,则进行手动相位校正,并显示调整后的结果(一般只显示实部)。(4) 对相位校正后的数据点集的实部进行基线调整,并把结果显示在谱图中。数据点集经过了基线调整后,就算数据处理完毕,就可以进行数据分析了。(5) 实验人员可以根据需要,设置相应的分析参数。如在谱图数据中设置峰的阀值,则可以把满足条件的峰找出,并标识在谱图上。(6) 如果要进行峰拟合,可以直接在寻峰后点击相应的拟合按钮,即可以完成峰的拟合,作图区将显示拟合后的曲线。(7) 如果用户要进行峰积分,可以先选取积分范围,然后再进行积分,将立即显示积分后的效果图。综上可知,核磁共振软件包的数据流程图如图2-2所示:图2-2 软件包数据流程图2.7 开发限制条件核磁共振仪器控制软硬件的开发将历时3年。在软件项目开发中,我和庄佳和同学主要负责数据处理模块的工作,计划历时半年。在本次毕业设计期间,数据处理模块主要针对的是fid格式数据文件提取的一维浮点数据集,随着该项目的深入,将实现二维、多维的数据处理。本文将谱图数据处理模块进行封装,实现了谱图数据处理软件包的开发。该软件包将针对一些具体的物理实验,实现一维数据处理基本算法,如:傅立叶变换、相位校正、基线调整、寻峰、峰积分等。由于软件包中涉及的算法面广,而且有些内容物理专业性较强,在保证算法准确性的情况下,通过阅读相关实现的源代码,使用权威机构的算法思想,寻求高效的实现手段,通过与物理系交流,力争改进算法,降低算法复杂度。第三章 NMR仪器控制软件包概要设计第三章 NMR仪器控制软件包概要设计3.1 基本设计思想由于NMR仪器控制软件包的主要功能在于对从仪器控制谱仪输出的FID数据进行处理分析,所以开发的重点及难点在于数据提取、算法处理、数据结果分析保存等。针对所提取出来的复数数据,我们将采用Complex复数类保存,这样在进行算法处理的时候就不用再重新提取了。数据保存提供系统PDF打印功能,文本存储功能等。数据处理分析涉及的算法主要有傅立叶变换(FFT,Fast Fourier Translate)、手动和自动相位校正、基线校正、手动寻峰、峰拟合、峰积分。算法力求高效、准确。每个算法用一个单独的类实现,最终将所有的算法打包成Math数学软件包,供其它接口调用。如果说数据处理已经达到了设计软件包的目的,那么谱图显示功能的实现将其以更为形象的方式表示出来。谱图显示借鉴了GEF的设计思想,采用MVC结构,重写了Figure类,在Figure类之上添加鼠标、键盘、命令、菜单等控制功能,并用轻量级组件Draw2d在作图区绘出。作为一种谱图处理分析软件,友好的界面将给用户带来舒适的使用心情。本着“置界面于用户的控制之下;减少用户的记忆负担;保持界面的一致性”原则,我们突破了Java语言UI的技术瓶颈,采用了Eclipse下的RCP插件开发技术,让界面“美观、友好、一致、自然”。3.2总体框架参考了VnmrJ软件系统,如前所述,我们将核磁共振仪器控制软件包分成了界面框架模块、数据处理分析模块、IO模块、谱图显示模块。子模块还可以细化为各个单独的实现功能模块:(1) 界面框架模块:菜单栏、工具栏、文件浏览器、属性浏览器、命令行输入、作图区、简要信息提示区。其中菜单栏又分系统菜单和运行菜单,工具栏也随菜单栏的变化而变化。(2) 数据处理分析模块:数据处理、数据分析。其中数据处理又可以细化为傅立叶变换、相位校正、基线调整,数据分析又可以细化为拟合、寻峰、积分等。(3) IO模块:输入文件模块和输出打印模块。(4) 谱图显示模块:显示集中于界面框架模块中的作图区。包括了属性设置、作图、快捷处理。核磁共振软件包的总体框架如图3-1所示:图3-1 核磁共振软件包总体框架图其中数据分析处理模块和谱图显示模块是整个系统的核心模块,而界面框架模块则是中枢模块、数据处理分析、谱图显示、文件输入输出均通过界面的菜单、命令、快捷工具等执行。核磁共振软件包中各模块的相互关系如图3-2所示:第三章 NMR仪器控制软件包概要设计图3-2 核磁共振软件包模块关系图3.3 子模块功能详细说明3.3.1 界面框架模块根据软件包功能,菜单栏严格按照Windows规范,置于界面顶部,现将菜单栏内容详细定位如表 3-1所示:表3-1 菜单栏详细说明菜单栏菜单栏系统菜单FileNew新建实验分析项目,并导入Open打开已有的FID文件及相关实验文件Save用文本保存实验中数据Save As用其他形式保存实验中的数据Print打印实验结果谱图Exit退出WindowShow ViewPackage打开文件浏览器视图Property打开属性视图Command打开命令视图Preference打开谱图参数设置视图HelpHelp Command显示命令帮助信息Welcome打开欢迎界面About Vnmr关于版本信息等运行时菜单ProcessFourier傅立叶变换IFourier逆傅立叶变换Baseline Correction基线调整Hand Integral手动积分Find PeakFit Peak拟合Handing peak手动寻峰Phase CorrectionHand phase手动相位校正Auto phase自动相位校正ZoomReset重置谱图大小X+将谱图沿X轴放大X-将谱图沿X轴缩小Y+将谱图沿Y轴放大Y-将谱图沿Y轴缩小StatusHand允许整体拖动谱图Zoom In允许手动放大谱图(以矩形框为界)Line In允许设置手动线条Line Out不允许设置手动线条工具栏置于菜单栏下面,以图标的形式显示,与菜单栏中的选项对应,工具栏可以动态变化。与系统菜单对应的工具栏如图3-3所示:图3-3 系统工具栏 与运行时菜单对应的工具栏如图3-4所示:图3-4 运行时工具栏文件浏览器,属性浏览器及命令行输入对应于菜单栏中Window =Show View选项,打开后分别置于界面的左、右、工具栏之下。文件浏览器显示打开的所有实验项目的文件列表,在其上可以随意的添加新项目,删除项目、项目文件等。属性浏览器显示打开的FID数据头文件的属性及数值,包括了Property和Outline两种方式,可随着打开的FID数据文件变化。根据数据分析处理的内容,命令行命令如图3-5所示:图3-5 命令行对应于命令输入栏、菜单栏及工具栏,我们在界面底下的状态栏处相应设置了简要信息提示,让用户清楚当前状态正确与否,是否完成了操作,执行了什么操作等。作图区是整个软件包界面的重心,图谱显示模块功能主要在这个区域内实现。综上,核磁共振软件包界面如图所示:图3-6 初始界面图3-7 运行时界面3.3.2 数据处理分析模块数据处理分析模块采用菜单栏选择、工具栏点击、命令行输入等方式进行响应,处理后显示在作图区,算法简要说明如表3-2所示:表3-2 数据处理分析模块算法说明数据处理分析模块数据处理傅立叶变换将空间域上的数据点集转换成频率域上的数据点集逆傅立叶变换将频率域上的数据点集转换成空间域上的数据点集手动相位校正手动调整谱图上各点的一级相位差和零级相位差自动相位校正根据某种标准使得谱图上的一级和零级相位差为0基线调整将谱图的基线调整到一条水平线上数据分析手动寻峰手动定位寻找谱图的峰点峰拟合用一个或多个函数来拟合一个峰的峰型手动峰积分手动限定范围求一个峰的面积3.3.3 IO模块核磁共振软件包主要是针对从核磁共振

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论