我正在尝试学习php作为我研究遗传学,这对生物信息学非常有用。我遇到了我的代码问题,我确定它的东西非常愚蠢但我无法看到解决方案。
这是我的代码:
$query="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC";
$seq=chunk_split($query,40,"<br />");
$truecol="<div style=\"color: hsl(0,100%,50%);\">";
function colorSequence ($seq,$position,$truecol,$TFBSlength){
$nucleotides = str_split($seq);
foreach ($nucleotides as $index => $nucl){
if ($index == $position){
echo $truecol;
}
if ($index == $position + $TFBSlength){
echo "</div>";
}
echo $nucl;
}
echo "\n";
}
colorSequence($seq,5,$truecol,3);
输出结果为:
AAAAAAAAAA
(this is coloured)AAAAA(end of colour)
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCC
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
第一行有10个字母,第二行有5个彩色字母,第3行有45个字母。所有行应该有60个字母。有人可以帮忙吗?
答案 0 :(得分:2)
您可能希望使用<span>
HTML标记而不是<div>
。
因为每个<div>
通常由浏览器显示,其中包含换行符。
或者你可以用CSS定义<div>
的样子,但我认为目前这个太多了:
div {display: inline;}
使用<span>
HTML元素并使用substr
的示例(我可能会关闭一个左右,我假设你可以解决这个问题):
$truecol = 'hsl(0,100%,50%)';
colorSequence($seq, 5, $truecol, 3);
function colorSequence ($seq, $position, $truecol, $TFBSlength)
{
$before = substr($seq, 0, $position);
$color = substr($seq, $position, $TFBSlength);
$after = substr($seq, $position + $TFBSLength);
printf("%s<span style=\"color: %s;\">%s</span>%s\n",
$before, $truecol, $color, $after);
}