我有一个DNA序列,其长度例如是m * 4n:
B = 'GATTAACTACACTTGAGGCT...';
我还有一个实数X = {xi,i = 1..m * 4n}的向量,并使用mod(X,1)
将它们保持在[0,1]范围内。例如:
X = [0.223 0.33 0.71 0.44 0.91 0.32 0.11 ....... m*4n];
然后我需要通过应用函数将X
转换为二进制向量:
f(x)={0 ,0 < X(i,j) ≤ 0.5; 1 ,0.5 < X(i,j) ≤ 1;)
根据先前值的输出将类似于X = [0010100 ....]
。如果X(i,j)==1
,则补充B(i,j)
,否则不变。在这种情况下,补体是匹配的碱基对(即A-> T,C-> G,G-> C和T->)。
这是我到目前为止尝试过的代码,没有成功:
%%maping X chaotic sequence from real numbers to binary sequence using threshold function
X = v(:,3);
X(257)=[];
disp (X);
mode (X,1);
for i=1
for j=1:256
if ((X(i,j)> 0) && (X(i,j)<= .5))
X(i,j) = 0;
elseif ((X(i,j)> .5) && (X(i,j)<= 1))
X(i,j) = 1;
end
end
end
disp(X);
如何正确执行索引和补充?
答案 0 :(得分:1)
给定存储为字符数组的样本碱基对序列:
B = 'GATTAACT';
数值的样本向量与B
的长度相同:
X = [0.223 0.33 0.71 0.44 0.91 0.32 0.11 1.6];
然后有一个相当简单的解决方案......
首先,您使用mod
函数意味着您只想使用X
中每个值的小数部分。这就是你如何做到这一点:
>> X = mod(X, 1)
X =
0.2230 0.3300 0.7100 0.4400 0.9100 0.3200 0.1100 0.6000
接下来,您应该阅读documentation on vectorization。它将教你在MATLAB中的许多操作都可以避免for循环。特别是,对矢量X
应用逻辑测试可以这样完成:
>> index = (X > 0.5)
index =
0 0 1 0 1 0 0 1
index
现在logical index与X
的长度相同,每个值大于0.5,其中一个(即为真)。您现在想要在B
中获取与这些索引相对应的字符,将它们更改为其补码,然后将它们放回B
。你可以在MATLAB中使用一个小技巧来做到这一点,当用作索引时,字符被转换为ASCII数值:
>> compMap = ''; % Initialize to an empty string
>> compMap('ACGT') = 'TGCA'
compMap =
T G C A
请注意,'TGCA'
的字符compMap
位于'ACGT'
的索引65,67,71和84中(即>> B(index) = compMap(B(index))
B =
GAATTACA
的ASCII值)。其余的都是空白。现在,您只需执行以下操作即可将索引的碱基对替换为其补码:
B = '...'; % Whatever your sequence is
X = [...]; % Whatever your values are
compMap = '';
compMap('ACGT') = 'TGCA'; % Build a complement map
index = (mod(X, 1) > 0.5); % Get your logical index
B(index) = compMap(B(index)); % Replace with complements
将所有这些放在一起,这是解决方案:
<?php
$link = mysql_connect('callingonchristcom.ipagemysql.com', 'jhedge', 'mypw');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
echo 'Connected successfully';
mysql_select_db('user',$link);
echo 'Step Two';
$mysqlstr="INSERT INTO users (FirstName,LastName,UserName,Password) VALUES ('John','Hedge','jhedge','mypw')";
echo 'Step Three';
mysql_query($mysqlstr,$link);
echo 'Step Four';
mysql_close($link);
?>