1

私は遺伝学を勉強しながら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文字、2番目の行には5色の文字、3番目の行には45文字があります。すべての行は60文字である必要があります。誰か助けてもらえますか?

4

1 に答える 1

2

<span>の代わりにHTMLタグを使用することをお勧めします<div>

それぞれ<div>が通常、上下に改行を入れてブラウザによって表示されるためです。

あるいは、CSSでどのように見えるかを定義することもできますが<div>、今のところそれは多すぎると思います。

div {display: inline;}

<span>HTML要素を使用した例substr(1つほどずれている可能性がありますが、修正できると思います):

$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);
}
于 2012-05-03T08:54:30.263 に答える