[python] Edinburgh-Genome-Foundry:序列标识的图形化方法sequenticon
程序员文章站
2022-09-21 09:50:27
概述这是一个python包。优势给出标签Identicon,可以单个/批量标识序列。对于某些只差一两个字符的序列,识别更方便。可以生成pdf文件劣势只能生成标签,不提供解码。但是可以对照pdf确认序列与图像的对应关系。生成pdf的包是该机构自己写的,需要调整代码以调整pdf的内容排布。代码分析(简单)位置:sequenticon-master\sequenticon\sequenticon.py# 函数sequenticon(sequence, output_format=...
概述
这是一个python包。
优势
- 给出标签Identicon,可以单个/批量标识序列。对于某些只差一两个字符的序列,识别更方便。
- 可以生成pdf文件
劣势
- 只能生成标签,不提供解码。但是可以对照pdf确认序列与图像的对应关系。
-
生成pdf的包是该机构自己写的,需要调整代码以调整pdf的内容排布。
代码分析(简单)
位置:
sequenticon-master\sequenticon\sequenticon.py
# 函数 sequenticon(sequence, output_format='png', size=60, output_path=None) '''
out_format:
One of "png", "base64", "html_image". If "png", raw PNG image data is
returned (as bytes). If base64, the png data is base64-encoded (string),
and if html_image, the returned string is ``<img src='data:X'/>`` where
X is base64 image data (this string is ready to be used in a webpage).
''' sequenticon_batch(sequences, output_format='png', size=60, output_path=None) sequenticon_batch_pdf(sequences, target=None, title="Sequenticons batch")
处理过程
- 获取序列
- 使用pydenticon包产生base64数据和图像
generator = pydenticon.Generator(SETTINGS["rows"], SETTINGS["columns"], foreground=SETTINGS["color_palette"]) img = generator.generate(sequence, size, size) base_64 = base64.b64encode(img).decode()
数据转换&加密部分
实际是md5加密产生hash码,然后按照一定规则转为01矩阵,然后染色。查看:
你的路径\Lib\site-packages\pydenticon
你的路径\Lib\hashlib.py
如果找不到某些包的位置,可以在交互环境下先import 包名,然后直接输入包名,就会提示路径。(如果安装的时候失败了,会报错)
-
写出到图片/html/pdf
写出到pdf看pdf_reports包。这个包仍然是该公司的,使用的是weasyprint包,这个包能将html转为pdf。
win10下安装weasyprint包可能报错,如果提示Cairo包有问题,可以看这里:
weasyprint安装:win10+python3.7
其实就是装一下GTK。不清楚的话可以看上面的链接。
本文地址:https://blog.csdn.net/pxy7896/article/details/108253425