2

Pythonまたはbiopythonに、htmlでシーケンスをマークアップできる方法があるかどうか疑問に思っていました。

その位置が既知のsnp/indelなどであるかどうかに応じて、配列上の位置をマークしたい(つまり、異なる色の塩基)

配列内の突然変異位置のリストを持つ(データベースから読み取る)

変異位置 = [10,20,30,40]

次のようなものを使用して、影響を受けるベースの大文字と小文字を変更できます。

しかし、いくつかの html コードを追加することは可能ですか。たとえば、変異位置ごとにタグ pos を追加します。(html マークアップがシーケンスに追加されると、シーケンスの長さが変更されるため、ループの各反復中に突然変異位置が新しくマークアップされたシーケンスと一致しません!)

これが理にかなっていることを願っています!

ありがとう。

4

2 に答える 2

2

ミューテーションを緑にしたい場合で、ミューテーションのリスト (インデックスが 0) がある場合:

>>> seq = "ACGTACGT"
>>> muts = [0,1,5]
>>> mark_up = "<span style='color:green;'>%s</span>"

# use list comprehension to add mark up to muts
>>> marked_up_seq = [ mark_up % seq[x] if x in muts else seq[x] for x in range(0,len(seq)) ]

# rejoin marked up list
>>> "".join(marked_up_seq)
"<span style='color:green;'>A</span><span style='color:green;'>C</span>GTA<span style='color:green;'>C</span>GT"
>>> 

明確にするために数字を付けて:

>>> seq = "0123456789"
>>> muts = [1,3,4,9]
>>> marked_up_seq = [ mark_up % seq[x] if x in muts else seq[x] for x in range(0,len(seq)) ]
>>> "".join(marked_up_seq)
"0<span style='color:green;'>1</span>2<span style='color:green;'>3</span><span style='color:green;'>4</span>5678<span style='color:green;'>9</span>"

これは最も洗練されたソリューションではありません。タグ 3 と 4 を組み合わせることができることに注意してください。

于 2011-03-22T11:25:08.683 に答える
0

DTing の例 (および HTML) を使用するだけで、これは少しきれいになるかもしれません。

seq = "ACGTACGT"
muts = [0,1,5]
marked_up = ""

for pos, nuc in enumerate(seq):
    if pos in muts:
        marked_up = marked_up + "<span class=\"mutated\">" + nuc + "</span>"
    else:
        marked_up = marked_up + nuc

print marked_up

次に、次のような CSS にスタイルを追加するだけです。

span#mutated
{
    color:red;
}

これにより、次の出力が得られます。

<span class="mutated">A</span><span class="mutated">C</span>GTA<span class="mutated">C</span>GT

<bこれは次のようになります (スパンを> と>で入れ替えた場合</b):

A C GTA C GT

于 2011-04-25T16:46:51.297 に答える