我想知道在python或biopython中是否有任何方法可以让人在html中标记一个序列。
我想标记一个序列上的位置(即不同的颜色基础),根据那个位置是否是已知的snp/indel等
在数组中具有突变位置的列表(从数据库读取),例如
mutation_position = 10,20,30,40
我可以使用如下命令更改受影响的基础的大小写: seq = seq0:b + mutation_positionsb.lower() + seq(b+1):len(seq)
但是是否可以添加一些html代码,例如为每个突变位置添加标签pos。(当html标记被添加到序列中时,序列的长度会改变,因此在循环的每次迭代期间,突变位置与新标记的序列不匹配!)
我希望这是有意义的!
谢谢。
发布于 2011-03-22 11:25:09
如果你想让你的突变变成绿色,并且你有一个突变列表(索引为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周围的标签可以组合在一起。
https://stackoverflow.com/questions/5390170
复制相似问题