㈠ 如何在java中建立frame
一般而言可以用两种方法实现。
第一种
importjavax.swing.*;
publicclassFrameDemo1{
publicstaticvoidmain(String[]args){
//创建一个JFrame对象
JFramejf=newJFrame();
//设置窗口的标题栏
jf.setTitle("窗口一");
//创建一个标签组件
JLabeljl=newJLabel("窗口里的标签组件");
//把标签组件添加到窗口界面
jf.add(jl);
//设置窗口的位置
jf.setLocation(200,120);
//设置窗口的大小
jf.setSize(300,280);
//设置窗口的可见性
jf.setVisible(true);
}
}
第二种方法
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
//写一个类去继承JFrame
{
//定义组件
JLabeljl;
JButtonjb;
publicFrameDemo2(){
//初始化组件
jl=newJLabel("窗口里的标签组件");
jb=newJButton("窗口里的按钮");
//给按钮添加事件响应,点击按钮改变标签组件上的文字的颜色
jb.addActionListener(newActionListener(){
@Override
publicvoidactionPerformed(ActionEvente){
jl.setForeground(Color.RED);
}
});
//设置窗口的布局,为边界布局
this.setLayout(newBorderLayout());
//添加组件到指定的位置
this.add(jl,BorderLayout.CENTER);
this.add(jb,BorderLayout.SOUTH);
//窗口的this.setLocation(120,100)和this.setSize(300,280)的整合写法setBounds(....);
this.setBounds(120,100,300,280);
//设置点击窗口的关闭按钮执行的默认操作,关闭程序
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
//设置窗口的标题栏
this.setTitle("窗口二");
//窗口默认是不可见的,所以需要设置窗口的可见性为true
this.setVisible(true);
}
publicstaticvoidmain(String[]args){
newFrameDemo2();
}
}
㈡ 如何提取含有iframe网页的表格数据
如何提取含有iframe网页(HTML)的表格(table)数据
想提取网页里的表格(table标签)数据,因为session的原来,所以用了,但些网页被包含在一个iframe里,所以在论坛上找到了一高人的代码(参考代码一),用FrameWin.document.body.outerHTML得到了源码,但问题是,我想得到table表里的数据,好像没有FrameWin.document.all.tags('table').item(0).outerHTML这种形式,但WebBrowser却有.如参考代码二,因为要提取的网页的表格是通过另一同级iframe网页的javascript赋值的,所以不能直接通过FrameWin.document.body.outerHTML用字符串直接分析,那样得的数据都是空格。
大家有什么好办法。。
参考代码一:
usrmshtml;
procereTMainForm.ToolButton56Click(Sender:TObject);
var
Index:Integer;
Document:IHTMLDocument2;
FrameIdx:OleVariant;
FrameDis:IDispatch;
FrameWin:IHTMLWindow2;
begin
whileWebbrowser1.ReadyState<>READYSTATE_COMPLETEdo
Application.ProcessMessages;
ifWebBrowser1.Document=nilthenExit;
ifWebBrowser1.Document.QueryInterface(IHTMLDocument2,Document)<>0thenExit;
ifDocument.frames.length>0then
begin
forIndex:=0toDocument.frames.length-1do
begin
FrameIdx:=Index;
FrameDis:=Document.frames.item(FrameIdx);
ifFrameDis.QueryInterface(IHTMLWindow2,FrameWin)<>0thenExit;
ShowMessage(FrameWin.document.body.outerHTML);
//FrameWin.document就是你要的每个Frame的文档
end;
end;
end;
参考代码二:
procereForm1.Button1Click(Sender:TObject);
vari,j:integer;
GetTable:OleVariant;
begin
WebBrowser1.Navigate('
);
whileWebBrowser1.ReadyState<READYSTATE_INTERACTIVEdo//页面激活
Application.ProcessMessages;
Memo1.Lines.Add(WebBrowser1.OleObject.Document.all.tags('table').item(0).outerhtml);
GetTable:=WebBrowser1.OleObject.Document.all.tags('table').item(0);
Fori:=0to(GetTable.Rows.Length-1)do
begin
Forj:=0to(GetTable.Rows.Item(i).Cells.Length-1)do
begin
Memo2.Lines.Add(GetTable.Rows.Item(i).Cells.Item(j).innerhtml);
end;
end;
end;
另外:
第一,用参考代码一的方法得到iframe的HTML源代码,类型为IHTMLDocument,
第二,使用IHTMLTABLE,IHTMLRows,就可以正确得到网页表格数据了.就算表格数据是由javascript等脚本赋值也可以正确提出数据。
附:如何从IHTMLDocument2里提取<table>里的所以数据
不能用正则表达式,因为table中表格的值是通过另一网页用javascript动态赋值的。
好像 IHTMLDocument2没有WebBrowser1.document.all.tags('table').item(0).Rows.Item(i).Cells.Item(j).innerText这样的写法。
弄清楚下面的,要改写成用VARIANT写得软些也就很容易了..
㈢ Html中的frame属性的详尽使用方法。
<frame> 标签定义 frameset 中的一个特定的窗口(框架)。
frameset 中的每个框架都可以设置不同的属性,比如 border、scrolling、noresize 等等。
实例:
<html>
<framesetcols="25%,50%,25%">
<framesrc="frame_a.htm"/>
<framesrc="frame_b.htm"/>
<framesrc="frame_c.htm"/>
</frameset>
</html>
结果如下:
㈣ Frame类有哪些方法
这些都是父类的方法
java.awt.Frameextendsjava.awt.Window
java.awt.Windowextendsjava.awt.Container
java.awt.Containerextendsjava.awt.Component
java.awt.Componentextendsava.lang.Object
㈤ 电脑诊断卡frame是什么意思
主板诊断卡也叫post卡,是维修主板的必备工具,主板BIOS在每次启动时,都会对系统的电路、存储器、键盘、视频部分、硬盘、软驱等各个组件进行严格的测试,并分析硬盘系统配置,对已配置的基本I/O设置实现初始化,一起正常后,再引操作导系统。主板诊断卡的工作原理就是利用主板BIOS内部自检程序的检测结果,通过代码一一显示出来,从而找到电脑主板故障。
主板诊断卡
主板诊断卡
目前市面上的主板诊断卡都是大同小异,有的只是个别的功能差异,所以下面介绍的诊断卡的使用方法是比较通用的。
1、诊断显示代码。
2、关电源,取出所有扩展插卡。
将诊断卡插入ISA槽或PCI槽(注意:诊断卡的的元件面朝向电源。若插反,本卡和主板不会损坏,但都不工作。)
3、开电源,检查各发光二极管指示是否正常(其中BIOS信号灯可能闪烁)。
4、如果不正常,关电源,参照以下“指示灯功能速查表”排错,排错完毕后返回第3步。
RUN灯(总线脉冲)——若主板运行指令,此灯会闪亮,否则不亮。
CLK灯(总线时钟)——台式机的ISA、PCI或笔记本电脑的MiniPCI总线的CLK信号。
BIOS(BIOS读信号)——当诊断卡插在ISA总线槽上时,主板运行时对BIOS有读操作时就闪亮。而四码诊断卡则与此相反。
IRAY(主设备准备好)——有IRAY信号时才亮,否则不亮。
FRAME(帧周期信号)——PCI槽或MiniPC槽有循环帧信号时灯才闪亮。
OSC(ISA振荡)——是ISA槽的主振荡信号,空板通电则应常亮;否则主板的晶体振荡电路不工作,而无OSC信号。
RST(复位)——开机或按了RESET开关后亮半秒钟熄灭属正常;若不灭常因主板上的复位插针错接到加速开关或错接短路器,或复位电路坏。
12V(电源)——空板上电则应亮。否则无此电压或主板有短路。
-12V(电源)——同上。
-5V(电源)——同上(只有ISA槽才有此电压)。
5V(电源)——同上。
3.3V(电源)——台式微机的PCI和笔记本的MiniPC槽特有的3.3V电压,空板上电则应常亮,有些主板的PCI槽或MiniPC槽无3.3V电压,则不亮。
5、检查POST代码是否有错。
6、如果有错,关电源,根据“POST代码含义”排错,排错完毕后返回第3步。
7、关电源,插上显卡、I/O卡、硬驱及扩展插卡后,再开电源,检查POST代码。
8、如果POST代码有错,关电源,根据“POST代码含义”排错,排错完毕后返回第3步。
9、检测结果正常。则应自检成功。如果仍不能引导操作系统,应该是软件问题(或是磁盘驱器、磁盘控制器、DMA电路故障等)。
㈥ 如何定量分析免疫组化和western blot 的结果,求具体步骤
我有个WB条带分析软件简介,或许对你有帮助。
凝胶定量软件QuantityOne使用简介
1内容简介
凝胶电泳是每个做分子生物学的同学天天都要打交道的基本技术。电泳之后的信息处理与电泳本身同样重要。目前有大量软件可以用于分析电泳结果,比较有名的比如BandScan、BandLeader、SigmaGel等等。今天要向大家介绍的是来自Bio-Rad的1D凝胶定量软件QuantityOne(Bio-Rad还有一个做2D凝胶分析的软件PDQuest)。
2QuantityOne的定量方法
QuantityOne的分析功能顾名思义主要用来进行凝胶或者培养皿的荧光定量分析。它的分析功能或者说分析方式主要有4种:泳道/条带轨迹定量法;等高线直接定量法;菌落计数;分子量测定
这三种方法中使用最为方便也是最为广泛的应该是等高线定量法(VolumnContour)。它通过半自动描绘电泳条带的等高线边缘来得到等高线区域内部面积,再将该面积乘以区域内平均光密度值得到条带内部总的信号量。当然这种分析方法的弊病显而易见:无法同等得排除不同泳道的背景亮度;等高线的绘制处于“半自动”状态,即需要人为判断作为等高线标准的电泳条带的边缘;最致命的是在几个电泳条带距离十分接近的时候几乎无法绘制单一条带的轮廓(常出现连续的几个条带等高线相连而无法分离出单独条带的轮廓)。
三种方法中个人感觉最为科学和严谨的应该是泳道/条带轨迹定量法(TraceTracking)。这种方法使用起来步骤较为繁琐,必须通过泳道识别---电泳条带识别两个连续的步骤才能进行定量。然而这种方式的最大优点在于它可以完全抛弃人为主观因素进行全自动定量。他的定量方式为:首先根据不同电泳条带的光密度值绘制光密度曲线,然后计算光密度曲线下面积作为电泳条带的定量根据。大家可能会问他能不能排除泳道背景?答案是肯定的,它能够最大程度的排除不同泳道之间的背景差异,让各个泳道上的不同电泳条带在一条几乎相同的起跑线上进行对比。这个背景排除功能是等高线法无法做到的(等高线法也有基本的背景排除办法,但是和泳道/条带轨迹定量法的背景排除不是一个等级的。等高线法只能排除同一泳道上的背景,而不能均等的排除不同泳道的背景)。另外泳道/条带轨迹定量法还可以结合GaussModelBands对紧密相连的电泳条带进行分析,而这种条带也是等高线法无法分析的。我们此次重点学习这个方法。
第三个分析功能是菌落计数(ColonyCounting)。这个功能其实很实用,可以分析蓝白筛选的结果。但是很奇怪我的电脑居然无法运行这个功能,因此无法向大家介绍了。
另外QuantityOne还可以通过回归曲线测定
3QuantityOne的基本常用菜单操作
下面让我们了解一下QuantityOne常用的基本菜单操作。
打开文件:由于QuantityOne是Bio-Rad的硬件配套软件,因此QuantityOne可以自动输入来自Bio-Rad公司的凝胶分析仪的数据。具体支持哪些硬件大家可以在“Edit-Preference-Imagers”里面设置。如果您的实验室没有采用Bio-Rad的硬件设施也没关系。您只要将电泳图片用ACDSee等程序转换为TIF图片格式就可以被QuantityOne识别了。注意QuantityOne只支持8位和16位灰度的TIF文件。
PHP代码:
QuantityOne似乎有一个小bug,就是在按“Open”之后并没有立刻弹出资源管理器让你选择目标文件的位置。其实你只要将鼠标在屏幕右下方点击一下,资源管理器就会乖乖弹出来了.
PHP代码:
QuantityOne只能分析白色背景+黑色条带的电泳图。而我们正常情况下得到的一般都是黑色背景+白色条带的电泳图。我们可以在“Image-Invertdata中将图片色彩进行反转,然后便可以用QuantityOne进行分析了.
文字注释:QuantityOne提供基本的文字注释功能。您可以在您的电泳图片上记录您的分析结果比如电泳条带的分子量、光密度值、物质的量等等。这个功能可以通过“Edit-TextOverlayTools”来实现。在弹出的浮动工具栏中选择“ABC”或者“”就可以进行文字输入和画标记线的操作。
光密度工具:在“View-PlotDensity”的下级菜单中大家会见到几个和电泳条带光密度值相关的显示选项。大家可以分别选择不同的选项感受一下它们之间的差别。选择方法是点击相应的下级菜单比如“PlotCrossSection”,然后将变成带一个蓝色感叹号的鼠标移到您想知道光密度的位置,点击一下就会显示该处的光密度相关信息。在下面这幅图片中我们可以看见两条黄线交叉处的电泳条带的相关信息。上方的一串曲线是不同泳道之间在同一水平线上的光密度比值曲线;左边是黄线交叉处所在泳道的几个电泳条带的光密度分布情况。
3DViewer:在“View-3DViewer”菜单中大家会看到一个有趣的功能叫做3DViewer。这个玩意按照Bio-Rad的说法可以辅助辨别几条紧密相连在一起的电泳条带的分布情况。大家只要选择了这个命令后鼠标就会一个“+”型,然后将+型移动到您感兴趣的位置,拖动鼠标画出一个正方形区域,然后用鼠标双击,QuantityOne就会将这块区域按照gauss分布规律渲染成一个三维模型,颇有意思。
4QuantityOne的基本背景排除功能
最开始的时候我们就说过QuantityOne的等高线定量模式也有一种比较基本的背景排除方法。这个方法同样也适用于泳道/条带定量模式。现在我们就来学习这个方法。基本背景排除的功能位于“Image-Substractbackgroud...”和“Image-FilterWizard...”这两个菜单。
Image-FilterWizard:这个功能是对原始图片做一些初步的加工,主要是除去一些图片上的“斑点”。这些斑点主要有两种类型:一种是深色的“胡椒面”型和浅色的“食盐”型,两种斑点都可以毫不犹豫地去除。从“Image-FilterWizard...”菜单调出向导菜单后选择“pepper”和“salt”,下面两个选项可以按照程序默认的选项,然后“OK”就可以完成这第一步的降噪过程。
Image-Substractbackgroud:这个功能是真正对图片背景进行清理的工具(区别于“Image-FilterWizard...”的降噪模式)。只是这种清理是一种“全局”型的清理,即它以相同的参数对每条泳道进行背景清理。然而在清理方式上它还是可以分成两种不同的方式:
BackgroudBox:一种是以一个局部小面积为标准背景,将整张电泳图片上所有比该区域光密度值低的区域全部漂白。这种发式称为“BackgroudBox”。操作时用鼠标选中对话框下部左侧的“BackgroudBox”按钮,然后用鼠标在电泳图片上选择一块色彩接近于背景色,色泽比较均匀的区域,用鼠标拖动画出一个正方形。释放鼠标后程序就会立即对电泳图片进行降低背景的处理;
BackgroudStripe:相对于“BackgroudBox”来说是一种更加智能化的处理方式。它特别适用于梯度凝胶,即凝胶浓度由上至下依次变化。由于梯度胶的光密度值在一定距离内不断变化,因此如果采用“BackgroudBox”的方法除背景就会发生偏差。QuantityOne此时提供一种随着凝胶浓度变化而变化的除背景方式就是“BackgroudStripe”。和“BackgroudBox”类似,选择右下角的“BackgroudStripe”按钮,然后用鼠标沿着电泳泳道拖放形成一个狭长的剪影带(Stripe),这个剪影带内部的光密度值顺着泳道逐渐升高或降低。QuantityOne根据这个Stripe可以动态的对整张图片的背景进行剪影。比如泳道起始处光密度低,那么QuantityOne在此处的剪影值也降低;随着Stripe向前延伸,光密度值逐渐升高,QuantityOne也同样不断加大剪影的强度。这样一来就可以排除由于梯度胶带来的背景不一致的影响因素。
5QuantityOne的电泳泳道分龉δ?--创建泳道
前面说过QuantityOne之所以强大是因为它具有的泳道/条带轨迹定量法。现在我们就来学习一下如何在电泳图片上创建泳道(Lane)以及如何进行针对不同泳道的背景排除。
创建泳道:首先打开我们要分析的电泳图片(以蛋白质电泳为例)。然后选择“Lane-AutoFramelanes”。这时如果您的电泳图片比较标准的话,QuantityOne就会自动识别出每条电泳泳道的位置,而且将各个泳道的路径用一条红线标画出来;
如果您对软件自动标记的泳道不甚满意,您可以通过“Lane-EditFrame”下级各个子菜单提供的功能对泳道框架位置、大小等进行调节。调节方法就是通过鼠标的拖放来实现,大家可以自己体验一下;
如果您只需要分析其中几个泳道的数据而不想其他泳道的标记干扰您的视线,您可以通过“Lane-SingleLane-RemoveLane”删除您不需要的泳道的标记。
PHP代码:
不是所有的电泳图片的泳道都能够被QuantityOne自动识别。在不能自动识别的情况下,QuantityOne就会弹出对话框告诉您它不能识别泳道。这时大家就需要手工绘制电泳泳道。方法和上面一样,同过“Lane-SingleLane-CreatLane”来实现。只要用鼠标在您的电泳图片上顺着待标记的泳道的中轴线拖放就可以绘制出该泳道的标记红线.
6QuantityOne的电泳泳道分析功能---排除背景
前面说过QuantityOne之所以强大是因为它具有的泳道/条带轨迹定量法。现在我们就来学习一下如何在电泳图片上创建泳道(Lane)以及如何进行针对不同泳道的背景排除。
排除背景:首先请大家注意,这个排除背景和前面我们在“Image”菜单中使用的“SubstructBackgroud”有所不同。后者排除背景的对象是整个电泳图片而非将各个电泳泳道的背景分别进行排除。现在我们要学习的这个命令可以帮助我们分别排除各个泳道(也可以将全部泳道用相同标准进行排除)的不同的光密度背景。这个功能对我们以后的分析影响甚大,大家一定好好学习。
首先我们要将我们的电泳图片进行前面谈到的泳道识别,不管是自动方式还是手工识别。然后选择“Lane-LaneBackgroud...”命令。选择该命令后,鼠标即变成一个绿色的“+”,将鼠标移到您打算进行背景排除的泳道(比如下图中的第4泳道),点击左键一下,立刻就会弹出如下图所示的对话框。
其中“OpticalDensity”显示得是该泳道光密度值的分布情况。大家会注意到这个分布曲线并不是紧贴着纵轴,而是位于纵轴上方分布。造成这个“悬空现象”的原因就是该泳道自身存在着一定的光密度“背景”。这个背景的存在导致该泳道上各个电泳条带之间不能处于同一水平进行对比;如果考虑到相邻的其他泳道更是因为不同背景的存在而无法对比不同泳道上的不同电泳条带。如何去除这个背景呢?我们继续看右边的“LaneBackgroudSubstruction”对话框。这个对话框的上方“AllLanes”表示可以对所有泳道进行一次性处理;下方的“SelectedLane”表示仅针对此次选中的这个泳道进行处理(我们选中的是第4泳道)。我们用鼠标选择“SelectedLane”的“LaneOn”选项。然后在下面的“RollingDiskSize”里填上“5”,再按“回车”键。好!大家再来看看现在“OpticalDensity”中出现了一条紧紧沿着光密度曲线分布的酱色曲线。这条曲线将泳道的背景与电泳条带的光密度分布十分精确的划分开来。
PHP代码:
大家可能会好奇这里的“RollingDiskSize”指得是什么意思?我们可以将QuantityOne提供的去除背景功能想象成是一个滚动的小球。如果这个小球的半径越小,那么它沿着光密度曲线滚动时滚过的路径就越发精细,具体反映在酱色曲线的轨迹越发靠近黑色光密度分布曲线的基线。因此从理论上来说“RollingDiskSize”的取值越小,它的去除背景效果越好。大家可以试着选择一个较大的值比如80,再来看看此时酱色曲线的轨迹。当然也不能取太小的值。因为如果取值太小,大家可以想象这个十分微小的球就会滚入光密度曲线内部,造成有效阳性信号的损失。个人感觉5~20是一个比较好的取值范围.
OK!我们再在“LaneBackgroudSubstruction”对话框的最下方钩选“”,再来看看是不是泳道上所有的背景都被消除了?各个电泳条带是不是完全结合到纵轴上在同一水平进行比较了?
我们对于其他泳道也可以依葫芦画瓢进行类似的背景排除工作。如果大家觉得可以使用同样的标准,即相同的“RollingDiskSize”进行排除,那么我们可以在“LaneBackgroudSubstruction”对话框中选择上方的“AllLanesOn(samelevel)”选项。然后在“RollingDiskSize”中填上一个合适的值,点击“Done”按钮确认就可以了。此时该电泳图片上所有的泳道都以相同的标准进行了背景去除。不信你可以自己将鼠标点击其他泳道(比如第8道或第1道),你会发现所有泳道的背景均已去除。
7QuantityOne的电泳泳道分析功能---对比泳道
刚才我们已经对电泳图片上的泳道进行了识别和背景去除。现在我们可以利用QuantityOne提供的泳道对比功能对同一张凝胶照片上的不同泳道进行对比,看看每条泳道上电泳条带的分布情况。
泳道对比:首先将打开的电泳照片进行前面谈到的泳道识别和去除背景步骤。然后选择“Lane-CompareLanes”命令,鼠标变成“蓝色感叹号”之后将鼠标移动到您希望进行对比的泳道上(比如下图的第3泳道),左键点击,QuantityOne就会立刻探出一张黑色背景的“CompareLanes”对话框。在这个对话框中红色的曲线代表您选择的泳道的光密度分布曲线。曲线的波峰部分表示位于泳道上的不同电泳条带;波峰的高低象征电泳条带光密度值的大小;波峰的宽窄象征电泳条带的宽度;波峰由左至右表示各个电泳条带顺着泳道由后向前的分布。
PHP代码:
大家请注意这个红色曲线。它不仅仅提供给我们关于泳道上光密度的分布情况,更重要的是在下一步我们对电泳条带进行定量的时候,我们将以每个波峰的曲线下面积作为定量的标准.
我们还可以用鼠标点击其他我们感兴趣的泳道(比如下图中第6、9、14泳道),这时再转到“CompareLanes”对话框我们会发现QuantityOne已经帮我们用不同颜色在同一张图片上绘制出了这4条泳道的对比图。是不是非常PP?
8QuantityOne的电泳条带分析功能---创建条带
前面我们已经识别和分析了电泳图片的泳道,下面我们开始研究电泳条带的问题。首先在这里明确两个名词翻译:“Lane”指电泳泳道;“Band”指电泳条带。在下文中一律使用这两个英文名词来表示这两个意思。
电泳条带的识别:和前面研究Lane一样,首先我们要对Lane上的Band进行识别。识别方式同样分为自动识别和人工识别。自动识别的时候选择“Band-DetectBands...”命令。这时QuantityOne会自动弹出一个“DetectBands”的对话框(如下图)。
PHP代码:
第一次用QuantityOne的朋友可能会发现您的Bands识别以后仅仅是画出了一条红色的粗线,而在上面的演示图片中却是上下括号的形式。其实大家可以在“Band-BandAttributes”选项中设置Bands的显示形式。在下方的“Style”选项卡中选择“Brackets”就会将原来的粗线改为括号形式了.
在上面的对话框中,我们可以指定识别的参数。
如果要自动识别所有Lanes上的Bands就钩选Lands后面的“All”选项;如果仅仅想自动识别某一条Lane上的Bands就钩选“One”,然后在后面的输入框中填上您想识别的泳道号码;
如果仅仅想识别泳道上部分光密度值最强的Bands,可以在“Bands”后面的选项中选择“Limit”,然后填上相应的数目(比如10)。QuantityOne就会仅识别该泳道上光密度最大的10条Bands;
如果您发现自动识别的Bands宽度太窄,圈定Band的红色括号内范围小于黑色的光密度影。此时可以使用“LaneWidth”命令来调整Bands识别的宽度。用鼠标点击“LaneWidth”后面的向上箭头就会发现红色括号逐渐变宽,最后要求其范围略为宽过其包绕的Band影迹;
如果您发现自动识别功能没有识别您想要的Band或者误识别了您不想要的Band,您还可以使用上面的工具栏进行调解。将您的鼠标指向每个图标,QuantityOne就会知道弹出一个黄色的提示信息告诉您这个按钮的功能。在此不再继续阐述了。
9QuantityOne的电泳条带分析功能---高斯建模与结果分析
现在我们已经完成了泳道识别、背景去除、条带识别的任务。接下来我们要对Bands进行一些处理,然后就可以进行最终的结果分析了。
高斯建模:大家学过统计学知识后都知道高斯(Gauss)分布是个什么意思,在此我就不多作解释了。QuantityOne认为一个理想状态的Band内部的光密度分布应该也服从高斯曲线的特征,正如前面向大家展示的3DViewer中的图片那样。在我们日常的电泳泳道中经常出现几个相隔很近的Bands(即分子量很接近的几个蛋白或者核酸)在泳道的某个区域成串出现。此时我们很难通过会自等高线的办法精确的描绘出每条Band独立的轮廓。这个时候我们就需要对这些拥挤在一起的Bands进行高斯建模处理。QuantityOne能够依据高斯曲线的特征,配合有效的背景去除,将各条紧靠在一起、边界相互融合的Bands描绘成具有独立光密度分布的相互重叠的曲线。如下图所示,原来相互融合的22、23两条Bands经过高斯建模之后变成了两个具有独立分布曲线,相互重叠的Bands。
PHP代码:
高斯建模必须建立在有效的泳道背景去除之后。背景去除的方法可以参见我们前面的方法,即通过“Lane-LaneBackgrouds”的方式进行去除背景。去除背景的时候最好选择RollingDiskSize小一些的方案。这样背景去除后的光密度分布曲线和高斯建模后的光密度分布曲线才能比较好的吻合。另外高斯建模并不是一个必须的步骤。它仅仅在出现多条Bands紧密排列在一起,以至于无法分辨它们之间的间隔的时候才最有效。如果Bands在泳道上松散的分布则可以不使用高斯建模.
那么如何进行高斯建模呢?很简单!只要执行“Band-GaussModelBands...”命令就可以,执行后QuantityOne回弹出一个对话框问您要对那条泳道进行高斯建模。请钩选“One”,然后再输入需要建模的泳道代码就可以了(比如下图中的第2泳道);如果选择了“All”则对所有泳道进行高斯建模,当然建模这么多泳道会费一点时间了。
观察结果:执行完高斯建模以后使用“Band-BandInformation”命令来观察结果。方法是将变成蓝色惊叹号的鼠标移到刚才已经识别的Band的部位,一个详细的“BandInformation”信息框就会立刻弹出来(见下图)。在这幅图中我们必须注意的是“Trace”和/或“GaussModelTrace”,因为我们刚才辛苦了半天就是为了得到这个数据。这个数据表示的就是Band光密度分布曲线下面积,也就是QuantityOne用来表达Band内分子总量的方式。在这个信息框中还有一些重要信息比如“MolWt”(分子量);“Quantity/Units”等现在还是空白,咱们下以后的分析步骤中将逐渐填满它们。
PHP代码:
QuantityOne有一点让人感到很不明白。它的“Trace”和“GaussModelTrace”都是表示曲线下面积的,可是使用的单位是OD*mm;而在另外的等高线定量方法中,同样是表示某个区域面积的单位却是OD*mm2.
下面让我们回过头来看看高斯建模之后电泳图片的分析结果到底发生了什么变化。首先是一张没有进行高斯建模的图片,大家可以看到在这张图片中的白框部分,第2泳道的第6个band的光密度曲线黄色部分并不呈高斯对称(少了一部分不是?)。这是因为它一部分和邻近的Band相互融合在一起了。
现在再来对比一下经过高斯建模后的电泳图片分析结果。还是在相同位置,这时代表第2泳道第6个Band的黄色光密度曲线是不是呈完整的高斯对称了?而且后面的“GaussModelTrace”也不再是“N.A”,而变成了“0.717OD”,对比上面的“Trace”=0.693OD,大家想想为什么要大一些呢?
10QuantityOne的电泳条带分析功能---分子量预测
前面我们和大家学习了用QuantityOne进行电泳条带定量的基本方法。现在我们暂时转移视线来探讨一下另一个功能,分子量预测。这个功能对于蛋白质而言是分子量预测,对于核酸而言就是核酸大小的预测了。下面我们还是以蛋白质为例来学习。
分子量预测:首先大家必须知道的是分子量的预测是建立在泳道和条带都已经创建好的基础上。我们只是人为的为一些泳道上的条带加上一个已知的标准,然后通过不同泳道和条带之间的对比绘制回归曲线,通过回归曲线的走向来预测特定条带上的分子的分子量。当然如果我们能够在一次电泳中多跑几条不同分子量成分的marker,必然能够提高我们预测的准确性。
下面我们谈谈如何操作。在已经创建好泳道和条带的图片上,执行“Match-Standard”命令,在弹出的“SelectStandards”选项卡中选择一个合适的marker。如果您自己已经跑了Marker,那么请选择“NewStandard”创建您自己的marker,然后在弹出的“Standard”菜单中输入您的Marker的分子量。如下图在“Standard”中输入一个名称,然后在下面的表格中输入各个Marker的分子量和名称。
输入完成以后用鼠标点击“Type”下面的小箭头(上图鼠标指向的位置),然后把变成绿色加号的鼠标移动到您的Marker泳道上相应的band。例如上图中200KD就移动到第15泳道的200KD的位置,以此类推,将每个Marker都标记上相应的数字。标记完成后,Maker泳道上的Bands就会变成蓝色。
如果您有多条Marker泳道,您可以再多表记几条以提高软件预测的准确性。现在我们执行“Match-StandardCurve”,然后用鼠标随便点击我们想要了解的泳道,QuantityOne立刻就会为我们显示出一条曲线,傍边还有一个小的对话框“Std.CurveOptionsforProteins”,在这个对话框中“RegressionModel”选择“PointtoPointSemi-log”或者“Elder-Southern”这两种回归方式;然后钩选傍边的“ShowNumericaldataofPoints”,这时再看那条曲线上是不是已经标注了
㈦ 关于Frame绘图问题
程序的错误,还挺多的...悬赏还只有5分.
最核心的问题: 修改了这里,就能看到效果
g.drawImage(bg,0,0,width,height,null);//这里的是null,需要修改成this
//这样图片加载好了,就能直接显示到窗口上了!!!
代码其他问题的解释和说明:
错误一: 调用错了方法
main.show(); 调用的是Frame自带的show方法. 且该方法是过时的方法,不推荐使用
而你其实想调用的是自己写的public void Show(){ ....} , 注意这里的Show,首字母是大写的.
建议自定义的方法不要和父类的方法同名(字母最好不要相同), 这里的Show方法,可以写成类的构造器,在构造器里进行对窗口的设置等
错误二: 逻辑错误
this.setBounds(30,30,width,height);//设置窗口的位置和大小
this.setResizable(false);//设置窗口不能拉伸,缩放
this.setExtendedState(JFrame.MAXIMIZED_BOTH);//设置窗口全屏最大化
你先设置了不许窗口拉伸,缩放,然后才设置了窗口全屏最大化... 这样全屏的效果就看不出来了.
注意逻辑顺序.
不严谨的地方: 混淆JFrame和Frame
public class Main extends Frame // 说明了本类继承自Frame
this.setExtendedState(JFrame.MAXIMIZED_BOTH);//这里的常量却使用的是JFrame的.虽然值是一样的, 建议修改成Frame.MAXIMIZED_BOTH ; 最好是删除这句代码, 因为从代码逻辑上来看不需要这句代码
需要注意的地方:paint(Graphics g) 方法 一般需要先调用父类的paint方法 .然后才写自己的代码,. 这样就可以在之前绘制的基础上进行绘制 .
super.paint(g);
简单修改后的代码,
//导入需要的包
importjava.awt.*;
importjava.awt.event.*;
{
//用eclipse生成serialVersionUID
=-5947824106992050021L;
//宽高不需要修改的话,定义成常量
staticfinalintBG_WIDTH=600;
staticfinalintBG_HEIGHT=800;
Toolkittk=Toolkit.getDefaultToolkit();
Imagebg=tk.getImage(MainFrame.class.getResource("xyz.png"));
//注意!!!我的图片地址和你的不一样,修改成你自己的图片位置
//构造方法,在构造方法里,对窗体进行设置
publicMainFrame(){
setTitle("测试");
setSize(BG_WIDTH,BG_HEIGHT);//设置窗口的大小
setLocationRelativeTo(null);//设置窗口居中
setResizable(false);//设置窗口不能拉伸,缩放
addWindowListener(newWindowAdapter(){//设置点击关闭按钮时,结束程序
publicvoidwindowClosing(WindowEvente){
System.exit(0);
}
});
}
publicvoidpaint(Graphicsg){
super.paint(g);//先调用父类的paint方法
//g.setColor(Color.WHITE);//设置绘制的颜色
//g.fillRect(0,0,BG_WIDTH,BG_HEIGHT);//填充
g.drawImage(bg,0,0,BG_WIDTH,BG_HEIGHT,this);//绘制
}
publicstaticvoidmain(String[]args){
MainFramemain=newMainFrame();
main.setVisible(true);//调用setVisible方法来进行显示
}
}
㈧ 什么是frame表单,如何切换frame表单
frame:HTML页面中的一种框架,主要作用是在当前页面中指定区域显示另一页面元素; (HTML语言中,frame/iframe标签为表单框架)方法: 1). driver.switch_to.frame("myframe1") --> 切换表单方法 (myframe1:为frame表单的name或id) 2). driver.switch_to.default_content() --> 恢复默认页面方法 (在frame表单中操作其他页面,必须先回到默认页面,才能进一步操作)我在学习有关web自动化测试相关的知识的时候,都是看黑马程序员视频库的视频,他们讲的很好全面,相比看书的话我就很难看下去。另外的资料官网对话框就可以领取。要是自学的话可以去看看黑马社区,能找到一起自学的小伙伴
㈨ web自动化测试时,frame框架是如何切换页面frame的
说明:在Selenium中封装了如何切换frame框架的方法
方法:
1). driver.switch_to.frame(frame_reference) --> 切换到指定frame的方法
frame_reference:可以为frame框架的name、id或者定位到的frame元素
2). driver.switch_to.default_content() --> 恢复默认页面方法
Web自动化测试有很多问题都在黑马程序员社区有答案,可以去看看
㈩ html中框架(frame)的详细使用方法
框架概念 :
所谓框架便是网页画面分成几个框窗,同时取得多个 URL。只 要 <FRAMESET> <FRAME> 即可,而所有框架标记 要放在一个总起的 html 档,这个档案只记录了该框架 如何划分,不会显示任何资料,所以不必放入 <BODY> 标记,浏览这框架必须读取这档 案而不是其它框窗的档案。<FRAMESET> 是用以划分框窗,每一框窗由一个 <FRAME> 标 记所标示,<FRAME>必须在 <FRAMESET> 范围中使用。如下例:
<frameset cols="50%,*">
<frame name="hello" src="up2u.html">
<frame name="hi" src="me2.html">
</frameset>
此例中 <FRAMESET> 把画面分成左右两相等部分,左便是显示 up2u.html,右边则会显示 me2.html 这档案,<FRAME> 标记所标示的框窗永远是按由上而下、由左至右的次序。
<FRAMESET> <FRAME> :
<FRAMESET> 称框架标记,用以宣告HTML文件为框架模式,并设定视窗如何分割。
<FRAME> 则只是设定某一个框窗内的参数属性。
<FRAMESET> 参数设定:
例子:<frameset rows="90,*" frameborder="0" border=0 framespacing="2" bordercolor="#008000">
COLS="90,*"
垂直切割画面(如分左右两个画面),接受整数值、百分数, * 则代表占用馀下空 间。数值的个数代表分成的视窗数目且以逗号分隔。例如 COLS="30,*,50%" 可以 切成三个视窗,第一个视窗是 30 pixels 的宽度,为一绝对分割,第二个视窗是当 分配完第一及第三个视窗后剩下的空间,第三个视窗则占整个画面的 50% 宽度 为 一相对分割。您可自己调整数字。
ROWS="120,*"
就是横向切割,将画面上下分开,数值设定同上。唯 COLS 与 ROWS 两参数尽量 不要同在一个 <FRAMESET> 标记中,因 Netacape 偶然不能显示这类形的框架,尽 采用多重分割。
frameborder="0"
设定框架的边框,其值只有 0 和 1 , 0 表示不要边框, 1 表示要显示边框。(避 免使用 yes 或 no )
border="0"
设定框架的边框厚度,以 pixels 为单位。
bordercolor="#008000"
设定框架的边框颜色。
framespacing="5"
表示框架与框架间的保留空白的距离。
<FRAME> 参数设定:
例子:<frame name="top" src="a.html" marginwidth="5" marginheight="5" scrolling="Auto" frameborder="0" noresize framespacing="6" bordercolor="#0000FF">
SRC="a.html"
设定此框窗中要显示的网页档案名称,每个框窗一定要对应着一个网页档案。你可 使用绝对路径或相对路径,有关此两者详见于【连结进阶】。
NAME="top"
设定这个框窗的名称,这样才能指定框架来作连结,必须但任意命名。
frameborder=0
设定框架的边框,其值只有 0 和 1 , 0 表示不要边框, 1 表示要显示边框。(避 免使用 yes 或 no )
framespacing="6"
表示框架与框架间的保留空白的距离。
bordercolor="#008000"
设定框架的边框颜色。颜色值请参考【HTML 剖析】。
scrolling="Auto"
设定是否要显示卷轴,YES 表示要显示卷轴,NO 表示无论如何都不要显示, AUTO是视情况显示。
noresize
设定不让使用者可以改变这个框框的大小,亦没有设定此参数,使用者可以很随 意地拉动框架,改变其大小。
marginhight=5
表示框架高度部份边缘所保留的空间。
marginwidth=5
表示框架宽度部份边缘所保留的空间。
<NOFRAMES> :
当别人使用的浏览器太旧,不支援框架这个功能时,他看到的将会是一片空白。为了避免 这种情况,可使用 <NOFRAMES> 这个标记,当使用者的浏览器看不到框架时,他就会看 到 <NOFRAMES> 与 </NOFRAMES> 之间的内容,而不是一片空白。这些内容可以是提醒 浏览转用新的浏览器的字句,甚至是一个没有框架的网页或能自动切换至没有框架的版本 亦可。
应用方法:
在<frameset> 标记范围加入 </NOFRAMES> 标记,以下是一个例子:
<frameset rows="80,*">
<noframes>
<body>
很抱歉,馈下使用的浏览器不支援框架功能,请转用新的浏览器。
</body>
</noframes>
<frame name="top" src="a.html">
<frame name="bottom" src="b.html">
</frameset>
若浏览器支援框架,那堋它不会理会 <noframes> 中的东西,但若浏览器不支援框架,由 于不认识所有框架标记,不明的标记会被略过,标记包围的东西便被解读出来,所以放在 <noframes>范围内的文字会被显示。
<IFRAME> :
这标记只适用于 IE。 它的作用是在一页网页中间插入一个框窗以显示另一个文件。它是 一个围堵标记,但围着的字句只有在浏览器不支援 iframe 标记时才会显示,如<noframes> 一样,可以放些提醒字句之类。通常 iframe 配合一个辨认浏览器的 Java Script 会较好,若 JavaScript 认出该浏览器并非 Internet Explorer 便会切换至另一版本。
<iframe> 的参数设定如下:
例子: <iframe src="iframe.html" name="test" align="MIDDLE" width="300" height="100" marginwidth="1" marginheight="1" frameborder="1" scrolling="Yes">
src="iframe.html"
欲显示于此框窗的文件来源除档案名称,必要加上相对或绝对路径。
name="test"
此框窗名称,这是连结标记的 target 参数所 要的,
align="MIDDLE"
可选值为 left, right, top, middle, bottom,作用不大
width="300" height="100"
框窗的宽及长,以 pixels 为单位。
marginwidth="1" marginheight="1"
该插入的文件与框边所保留的空间。
frameborder="1"
使用 1 表示显示边框, 0 则不显示。(可以是 yes 或 no)
scrolling="Yes"
使用 Yes 表示容许卷动(内定), No 则不容许卷动。
例子: 原始码
<center> <iframe src="http://www.pce.com.cn/index.html" name="test" align="MIDDLE" width="300" height="100" marginwidth="5" marginheight="5" frameborder="1">
很抱歉,馈下使用的浏览器并不支援 IFrame,不能正常浏览我的网页。</iframe>
</center>
frameset参数传递问题
左边的条件参数如何传,右边才能接收
--------------------------------------------------------------------------------
对三个帧分别命名为:left.asp(显示查询条件的页面,其中帧名为:left),top.asp,main.asp(显示查询结果的页面,其中帧名为:main)
如:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>search</title>
</head>
<frameset rows="80,*" frameborder="NO" border="0" framespacing="0">
<frame src="top.asp" name="top" scrolling="NO" noresize >
<frameset cols="80,*" frameborder="NO" border="0" framespacing="0">
<frame src="left.asp" name="left" scrolling="NO" noresize>
<frame src="main.asp" name="main">
</frameset>
</frameset>
<noframes><body>
</body></noframes>
</html>
在left的表单中写成:
<form name="form1" method="post" action="main.asp" target="main">
......//你自己设计吧。
</form>
这样就可以你的查询条件传给main.asp中了!