主要内容

创建自定义公差

该示例显示了如何创建自定义公差以确定两个DNA序列是否在特定公差内具有汉明距离。对于相同长度的两个DNA序列,汉明距离是一个序列的核苷酸(字母)与另一个序列不同的位置的数量。

在一个文件中,DNA.M..,在工作文件夹中,为DNA序列创建一个简单的类。

Classdef.脱氧核糖核酸属性(setaccess =不可变)序列结尾方法函数dna = dna (sequence) validLetters =......序列=='一种'|......序列=='C'|......序列=='T'|......序列=='G';如果〜所有(Validletters(:))错误('序列包含在DNA中未发现的字母。结尾dna。序列=序列;结尾结尾结尾

在工作文件夹中的一个文件中,创建一个容忍类,以便您可以测试DNA序列是否在指定的汉明距离内。构造函数需要价值定义最大汉明距离的财产。

Classdef.HammingDistance < matlab.unittest.constraints.Tolerance属性价值结尾方法函数耐受=汉语大用(价值)tolerance.value =值;结尾结尾结尾

在一个方法块的汉明大类定义,包括以下方法,使公差支持DNA对象。金宝app容忍课程必须实施金宝app支持方法。

方法函数Tf = 金宝appisa(value, value)'脱氧核糖核酸');结尾结尾

在一个方法块的汉明大类定义,包括返回以下方法真正的错误的。容忍课程必须实施满意方法。测试框架使用这种方法来确定两个值是否在公差范围内。

方法函数(公差,实际,预期)如果〜issamesize(实际.quence,perpects.sequence)tf = false;返回结尾tf =汉语峰(实际。序列,预期。序列)<=宽容.Value;结尾结尾

HammingDistance.m文件,定义以下辅助功能Classdef.堵塞。这issamesize.函数返回真正的如果两个DNA序列尺寸相同,并且汉明大函数返回两个序列之间的汉明距离。

函数tf = issamesize(str1,str2)tf = isequal(大小(str1),大小(str2));结尾函数str1 = nnz(str1 ~= str2);结尾

该函数返回一个诊断对象有关于比较的信息。在一个方法块的汉明大类定义,包括返回a的以下方法StringDiagnostic。容忍课程必须实施getDiagosticfor.方法。

方法函数DIAG = GETDIAGNOSTICFOR(容忍,实际,预期)导入matlab.unittest.diagnostics.StringDiagnostic如果~ isSameSize(实际。str ='DNA序列必须是相同的长度。;别的str = sprintf('%s%d。\ n%s%d。'......DNA序列的汉明距离是......汉明大(实际。序列,预期。序列),......'允许的距离是'......宽容.Value);结尾诊断= stringdiagnostic(str);结尾结尾

汉林达斯班级定义摘要

在命令提示符下,创建一个测试用例用于交互式测试。

进口matlab.unittest.testcase.进口matlab.unittest.constraints.isequalto.testcase = testcase.forinteractiveuse;

创建两个DNA对象。

sampleA = DNA ('acctgagta');SampleB = DNA(“ACCACAGTA”);

验证DNA序列是否相等。

testcase.verifythat(Samplea,Isequalto(SampleB))
交互式验证失败。--------------------- 框架的诊断 : --------------------- IsEqualTo失败了。——> ObjectComparator失败了。——>使用"isequal"表示对象不相等。实际对象:具有属性的DNA:序列:'AcctGagta'预期对象:具有属性的DNA:序列:'Accacagta'

验证DNA序列在汉明距离为1的耳序。

testcase.verifythat(Samplea,Isequalto(SampleB,......“在”, HammingDistance (1)))
交互式验证失败。--------------------- 框架的诊断 : --------------------- IsEqualTo失败了。——> ObjectComparator失败了。——>使用"isequal"表示对象不相等。DNA序列的汉明距离为2。允许距离为1。实际对象:具有属性的DNA:序列:'AcctGagta'预期对象:具有属性的DNA:序列:'Accacagta'

序列不等于彼此在1的公差范围内。测试框架从中显示其他诊断getdiagnosticfor方法。

验证DNA序列在汉明距离的2中彼此相等。

testcase.verifythat(Samplea,Isequalto(SampleB,......“在”,汉林多斯(2)))
交互式验证通过了。

也可以看看