【发布时间】:2016-02-09 16:24:15
【问题描述】:
我得到了一个 DNA 序列,例如:
ATTAGGGCCCATTACGCTGACGAGCACTTG
我需要编写一个函数,给定两个输入(DNA 序列和 A、C、G 或 T)确定仅包含特定字母的序列的最长可能部分的长度。
dna = 'ATTAGGGCCCATTACGCTGACGAGCACTTG';
giveLength(dna, 'A')
ans =
1
giveLength(dna, 'C')
ans =
3
我是这样开始的:
function length = giveLength(sequentce, amino)
[begin, end] = regexp(sequentie, amino , 'start', 'end')
pos = 1;
if isempty(begin)
error('Doesn't exist!')
else
for i = 1:length(begin)
if begin(i) ~= end(i)
if (end(i) - begin(i)) > (end(i) - begin(i)) || (end(i) - begin(i)) > 1
pos = end(i) - begin(i);
end
end
end
length = pos;
end
显然这是行不通的,因为每个字母的开始和起始位置都是相同的,我也不能写amino+让它选择对应的部分。
我们将不胜感激!
【问题讨论】: