最新神经细胞突触检测系统论文.docx
- 文档编号:26736133
- 上传时间:2023-06-22
- 格式:DOCX
- 页数:43
- 大小:211.40KB
最新神经细胞突触检测系统论文.docx
《最新神经细胞突触检测系统论文.docx》由会员分享,可在线阅读,更多相关《最新神经细胞突触检测系统论文.docx(43页珍藏版)》请在冰豆网上搜索。
最新神经细胞突触检测系统论文
利用VisualBasi6.0建立神经细胞突触图形测量软件系统
刘欢(华东师范大学生命科学学院)指导教师:
张红锋
摘要:
为探讨利用计算机软件对细胞生物学实验进行定量分析和检测的途径,本文采用计算机技术和数字形态学方法,设计了一个神经细胞突触图形测量软件系统,能够实现对神经细胞突触二维图像的定量分析,包括对各个神经细胞突触长度、数量的测量和记录,对各组细胞突触平均长度方差的计算,以及组与组之间均数比较的t检验统计等。
它比起传统的手动测量更加简单快捷,测量效率显著提高,结果准确、完备,能够大大节省使用者的测量和计算时间,提高工作效率,并且可以使细胞的显微、亚显微形态学研究从定性走向定量,弥补了传统测量技术不能够定量检测神经细胞突触的缺陷,在实际应用中体现了良好的操作性能。
同时,该系统具有良好的可移植性能,可以再次开发作为一种生物统计学检测工具进行使用。
Abstract:
Toexplorethecomputersoftwaresolutionforquantitativeanalysisandexamineinbiologyexperiments,aimagemeasuresystemforneuroninneuralcellswasbuiltbymethodsofcomputerscienceandnumeralmorphology,whichcanquantitativelyanalyzesplaneimageofneuroninneuralcells,includingthelengthandquantitymeasureforeachneuron,thedatarecording,theσcalculatingforeachcellgroups,andt-examinebetweentwoindependentsamples.Comparedtotraditionalmeasuremethods,thenewmeasuresystemismoresimpleandspeedy.Itcanoutstandinglyenhancesmeasureefficiency,obtaindatapreciselyandcompletely,extremelysaveuser’stime,helpenhancingworkefficiency,andadvancesresearchofmicro-morphologyandinferiormicro-morphologyfromqualitativeanalysistoquantitativeanalysis.Itcompensatestheshortcomingoftraditionalmeasuretechniquesfornotbeabletoquantitativelymeasureneuronofneuralcells,andshowswellcontrollablecapacitiesinpractices.Meanwhile,thesystemhasgoodtransplantablecapacity,andcanbefurtherdevelopedasameasuretoolforbio-statisticsresearch.
关键词:
神经细胞;突触;测量
当前越来越多的计算机软件被应用到生物学实验的各个方面,从实验的前期数据模拟,到实验中的实时数据检测,再到实验结果的分析计算,生物学计算软件的开发与运用给生物学实验带来了前所未有的高效和突破。
本软件的制作正是本着这一目的,希望在探索如何更好利用计算机软件对生物学实验进行定量分析和检测的同时,建立更有效的神经细胞突触实验检测系统。
1、软件设计前的现状分析
1.1现阶段计算机软件在生物学实验中的应用
计算机科学的发展给生物学的研究提供了很大的便利。
在过去的十多年中,生命科学在计算机软件的帮助下取得了惊人的技术方面的进展,尤其是基因组测序和蛋白质鉴定,产生了大量的遗传和生化数据,生物学家们使用了计算机软件来归类、组织和处理这些大量数据;同时,分子生物学家们广泛使用计算机数据库来获得有关蛋白和核酸方面的结构信息;遗传学家使用专门性的软件来分析DNA芯片杂交图,等等。
可以说,在今天这个时代,计算机在生物领域正起着不可或缺的作用。
因此,探索和开发适用于生物学实验的计算机软件具有着非常实用的价值以及广阔的发展前景。
1.2传统神经细胞生物实验检测的状况
神经细胞是一种高度分化的细胞,形态上有胞体和胞突之分。
神经突起的生长情况反映了神经细胞的生长特征。
自1956年,Nakai成功开创了神经细胞离体培养方法以来,人们利用体外培养的神经细胞进行了大量的研究,如建立神经细胞损伤模型并探讨其发生的机理,在此基础上筛选保护神经细胞的药物等。
在这些研究中,经常都要把神经细胞突起的生长状态作为一个观察的指标。
传统的神经细胞检测方法是在显微镜下面拍照,利用照片上记录的神经细胞的外型特征进行分析和统计。
但是,每一个神经细胞上突触的数量、长度和粗细等特性,却很难用这种方式作出准确的表达。
如今在生命科学研究中涉及到的大量二维细胞图像的分析问题,包括如何处理、精确表达细胞图像中的有用信息,已经成为众多学者共同致力的焦点。
结合计算机技术的图像处理方法,可以使细胞的显微、亚显微形态学研究从定性走向定量。
1.3软件需求分析
要采用计算机技术客观精确地用数据表达神经细胞图像中的有用信息,准确定量地分析神经细胞突起地数量、长度、粗细等生长特征,便于在各实验组之间进行数据比较和差异显著性分析,就必须开发一种软件系统分析这些信息,最终建立一种较合理准确的用于神经细胞图像分析的可操作性程序,使细胞形态学研究从定性走向定量。
为此选择了微软公司开发的MicrosoftVisualBasic(简称VB)作为软件开发工具,它提供了开发MicrosoftWindows应用程序最迅速、最简捷的方法。
该软件的功能应该包括:
功能名称
功能描述
文件控制功能
能够打开和关闭从显微镜下拍摄到的图像文件
图像控制功能
能够对图像文件作放大、缩小、标记和绘画等操作
计量长度功能
能够精确测量图像中各个突触的长度信息
数据记录功能
能够对测量到的数据进行记录
数据统计功能
能够对记录的数据进行统计,包括方差计算和t检验分析等
数据输出功能
能够对最终结果进行数据输出
(表1)
通过实现以上六个功能实现对细胞形态特征的定量分析。
2、开发步骤
2.1VB的开发环境介绍
VB在一个公共环境里集成了许多不同的功能,例如,设计、编辑、编译和调试。
当第一次启动VB时可以见到集成开发环境的界面,如图1所示。
VB集成开发环境(IDE)由以下元素组成:
元素名称
元素介绍
菜单条
显示所使用的VB命令
上下文菜单
包括经常执行的操作的快捷键
工具栏
提供对于常用命令的快速访问
工具箱
用于在设计时在窗体中放置控件
工程管理器窗口
列出当前工程中的窗体和模块
属性窗口
列出对选定窗体和控件的属性设置值
对象浏览器
列出工程中有效的对象
窗体设计器
作为自定义窗口用来设计应用程序的界面
代码编辑器窗口
输入应用程序代码的编辑器
(表2)
(图1)
了解了VB的开发环境之后就可以开始软件的开发。
2.2软件基本框架构思
在正式设计软件窗体和编写代码之前,有必要对该软件作一个基本的框架架构。
经过前面的软件需求分析,已经形成了大体的思路。
图2为本软件的工作流程图。
软件从外部获取关于神经细胞的图像信息(该信息的获取是通过显微镜观察拍摄的途径),然后在主窗体中进行长度测量和数据记录。
其间各个组的数据都临时存放在相应独立的记录数组中。
在测量过程中可以随时进入分组数据统计和t检验界面进行数据保存、均值计算、方差分析以及两独立样本均数比较的t检验等操作。
软件的内部流程图见图4。
此外,根据设计好的流程,大体设计软件的界面,参见图3、图5、图6。
(图2.工作流程图)
(图3主窗口界面)
(图4内部流程图)
(图5各组统计界面)
(图6t检验界面)
2.3各项功能开发过程
2.3.1文件控制功能
对神经细胞形态作出检测之前,需要获得该细胞的图像信息。
神经细胞的图像信息一般通过显微镜观察时,使用附带照相机进行拍摄,然后储存为图像文件保存下来,其格式为bmp、jpg、gif等。
首先应使软件具有打开,关闭这些图像文件的功能。
在VB中CommonDialog控件提供了诸如打开和保存文件等操作的一组标准对话框,在程序中使用CommonDialog控件的方法是将其添加到窗体上并设置属性。
此外需要一个PictureBox控件作为图像容器,接受并显示通过CommonDialog控件打开的图片文件。
在程序开始设计时,添加一个名为dlgCommonDialog的CommonDialog控件和一个名为Picture2的PictureBox控件。
当点击“文件”-“打开”时,过程如下:
PrivateSubmnuFileOpen_Click()
OnErrorGoToCancelError
DimsFileAsString
WithdlgCommonDialog
.DialogTitle="打开"
.CancelError=True
.Filter="Pictures(*.bmp;*.jpg;*.gif)|*.bmp;*.jpg;*.gif|所有文件(*.*)|*.*"
OnErrorGoToCancelError
.ShowOpen
IfLen(.FileName)=0Then
ExitSub
EndIf
sFile=.FileName
EndWith
Picture2.Picture=LoadPicture(sFile)
CancelError:
ExitSub
EndSub
(中间其他控件提取数据的过程已经省略)
2.3.2图像控制功能
通过文件控制,图像文件初步显示在Picture2中。
但是,由于图片尺寸是未知的,必须通过设计一系列功能,以对图片的正常显示作出控制。
比如,当图片尺寸大于现有PictureBox控件尺寸时,多出PictureBox的部分在不作设置的情况下会被自动截掉,因此必须动态设置PictureBox控件的尺寸来保持图像的完整性,以及添加滚动条,便于用户浏览。
另外,还应该设计图片的放大缩小功能,便于用户查看全图或是查看部分详细情况。
要实现上述功能,必须添加一个新的PictureBox控件来包含已有的Picture2,设计中添加了一个名为Picture1的PictureBox控件,并将原有的Picture2放在Picture1容器中。
在Picture1中,设置了横向(HScroll1)和纵向(VScroll1)的滚动条。
图像移动浏览控制代码如下:
If(Picture2.Height>Picture1.Height)Then
VScroll1.Visible=True
Else:
VScroll1.Visible=False
EndIf
If(Picture2.Width>Picture1.Width)Then
HScroll1.Visible=True
Else:
HScroll1.Visible=False
EndIf
VScroll1.Min=0
HScroll1.Min=0
VScroll1.Max=Picture2.Height-Picture1.Height
HScroll1.Max=Picture2.Width-Picture1.Width
IfHScroll1.Max>0ThenHScroll1.Enabled=True
IfVScroll1.Max>0ThenVScroll1.Enabled=True
IfHScroll1.Max<0ThenHScroll1.Enabled=False
IfVScroll1.Max<0ThenVScroll1.Enabled=False
另外滚动条要设置Change事件,以达到滚动图片的效果。
PrivateSubHScroll1_Change()
Picture2.Left=-HScroll1.Value
EndSub
PrivateSubVScroll1_Change()
Picture2.Top=-VScroll1.Value
EndSub
放大缩小的倍数是通过设置一个ComboBox控件,来让用户对缩放比例进行选择。
缩放本身操作的实现通过PaintPicture方法来完成。
Picture2.Width=yk*bl
Picture2.Height=yg*bl
Picture2.Refresh
Picture2.PaintPicturePicture2.Picture,0,0,yk*bl,yg*bl,0,0,yk,yg
其中yk,yg分别代表图片的宽度和高度,bl为缩放比例。
2.3.3计量长度功能
长度的计量通过计算鼠标两次点击的不同坐标之间的距离得到实现。
当用户在神经细胞突触的两个端点点击时,软件自动储存前后点击的两点坐标值,然后开始计算,得出其代表的实际长度值。
首先在工具栏上添加一个代表长度计量的工具按钮,只有按下这个按钮才能够开始测量。
在设计中使用一个名为linebuttoncheck的Boolean类型的变量来追踪按钮的状态。
当linebuttoncheck为True时,点击图片区域会引发MouseDown和MouseMove事件。
通过一个名为mouseflag的Boolean类型变量,可以检测当前的单击究竟是起点还是终点。
为了让用户比较直观看到所选择的两点之间的路径,在Picture2中还放置了一个Line控件,并将这个Line控件的起点坐标设置为用户选择的起点坐标,终点坐标设置为在鼠标移动中动态变化的鼠标坐标,这样就相当于在细胞图像上,以一条直线清晰地呈现出两个关键点之间的路径。
在点击终点的时候,开始计算两点间的距离。
利用勾股定理可以方便地计算出两点间的屏幕显示长度。
但是这个长度是以计算机显示器的象素作为尺度的,应该再转换为实际以微米为单位的长度。
在这里用28.346作为厘米与象素的换算常数(即相当于28.346象素=1厘米)。
同时还需要将显微镜的放大倍数,显微镜拍片时的压缩率加入公式中进行计算,以得到实际的长度。
整个过程原代码如下:
PrivateSubPicture2_mousedown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)
If(Button=1Andlinebuttoncheck=TrueAndmouseflag=FalseAndhelplabel=True)Then
CurrentX=X
CurrentY=Y
mouseflag=True
Line1.X1=CurrentX
Line1.X2=CurrentX
Line1.Y1=CurrentY
Line1.Y2=CurrentY
Line1.Visible=True
startx=CurrentX
starty=CurrentY
EndIf
If(((X<>startxAndY<>starty)Or(X<>startxAndY=starty)Or(X=startxAndY<>starty))And(helplabel=True)Andlinebuttoncheck=True)Then
mouseflag=False
Line1.X1=startx
Line1.Y1=starty
Line1.X2=CurrentX
Line1.Y2=CurrentY
linelength=(Sqr((X-startx)^2+(Y-starty)^2))/bl/28.346/micromutiple
txttower.Text=Format(linelength,"###,##0.00000微米")
EndIf
EndSub
PrivateSubpicture2_MouseMove(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)
If(mouseflag=TrueAndlinebuttoncheck=TrueAndhelplabel=True)Then
CurrentX=X
CurrentY=Y
Line1.X2=CurrentX
Line1.Y2=CurrentY
EndIf
EndSub
(中间其他控件提取数据的过程已经省略)
2.3.4数据记录功能
当长度被测量好以后,需要把数值记录下来。
由于神经细胞的检测是以组为单位的,每组包含一定数量的细胞,而每个细胞又有不等的突触,所以将会有大量的数据被记录。
因此,在测量过程中,必须把不断测得的数据依次存放在一个临时的数据区中,必要的时候再从这个数据区调用数据,进行分析、统计或者保存。
在设计中创建了一个自定义的数据类型systemdata。
当需要创建单个变量来记录多项相关的信息时,用户定义类型是十分有用的。
由于临时存储的数据需要在多个窗口被调用,如在主窗口储存的长度数据将在t检验窗口被使用,以进行分析,因此这个自定义的变量必须是公用的模块级变量。
这里在标准模块Module1中进行定义。
PublicTypesystemdata
systemgroupAsInteger
systemcell(40)AsInteger
systemline(40)AsInteger
Systemlinelentotal(40)AsSingle
Systemaverage(40)AsSingle
EndType
Publicalldata(30)Assystemdata
在定义的systemdata自定义变量中(结构见表3),systemgroup用来储存组数,systemcell数组用来储存每组细胞中的细胞编号,Systemline数组用来储存每个细胞的突触条数,Systemlinelentotal数组用来储存每个细胞突触总长度,Systemaverage数组用来储存每个细胞突触的平均长度。
然后声明了一个alldata数组自定义变量,用以存放实际的数据。
自定义变量systemdata数据结构模式图
systemgroup
systemcell
systemline
Systemlinelentotal
Systemaverage
组1
细胞1
细胞1突触条数
细胞1突触长度
细胞1突触平均长度
细胞2
细胞2突触条数
细胞2突触长度
细胞2突触平均长度
组2
细胞1
细胞1突触条数
细胞1突触长度
细胞1突触平均长度
细胞2
细胞2突触条数
细胞2突触长度
细胞2突触平均长度
(表3)
在主窗口记录测量长度时,可以将数值写入alldata这个公用的模块级变量中去。
以下为选择记录数据后,将计算的数值赋给alldata数组:
alldata(groupnumber-1).systemgroup=groupnumber
alldata(groupnumber-1).systemcell(cellnumber-1)=cellnumber
alldata(groupnumber-1).systemline(cellnumber-1)=linenumber
alldata(groupnumber-1).Systemlinelentotal(cellnumber-1)=linelengthtotal
alldata(groupnumber-1).Systemaverage(cellnumber-1)=lineaverage
其中groupnumber,cellnumber,linenumber,linelengthtotal和lineaverage分别代表组数,细胞数,突触数量,突触总长度,突触平均长度。
这样实现了30个组的数据存储,其中每一组可以储存40个细胞的各项数据。
2.3.5数据统计功能
在测量完神经细胞后,积累了一批统计数据,将这批数据用软件进行归纳,分析和统计非常必要。
因为相比较于人工计算,软件的分析处理只花费开发者开发该功能的时间,却可以节省以后研究者每次分析计算的大量时间。
这也体现了计算机软件运用于生物学实验的一大优点。
由于记录下来的数据的结构比较复杂,因此在设计中使用MSFlexGrid控件读取并显示数据。
2.3.5.1各组数据详细列表统计
在设计中用一个新的窗体celltotal来统计各组数据。
首先在窗体中加入一个名为fg1的MSFlexGrid控件以显示详细数据列表。
在输出数据列表之前,统计各组的突触的平均条数和突触的平均长度。
total=0
k=0
l=0
grouplinenumberaverage=0
Fori=0To29
Ifalldata(i).systemgroup<>0Then
k=k+1
EndIf
Nexti
Fori=0To29
Forj=0To39
Ifalldata(i).systemline(j)<>0Then
total=(total+alldata(i).Systemaverage(j))
grouplinenumberaverage=grouplinenumberaverage+alldata(i).systemline(j)
l=l+1
EndIf
Nextj
Ifl<>0Thengroupave(i)=total/l
Ifl<>0Thengrouplinenum(i)=grouplinenumberaverage/l
l=0
total=0
grouplinenumberaverage=0
Nexti
total=0
Fori=0To29
total=(total+groupave(i))
Nexti
Ifk<>0Thentotalaverage=total/k
其中groupave数组储存了各组数据中突触的平均长度,group
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 神经细胞 突触 检测 系统 论文