首页 / PYTHON / 用python绘制质粒图谱
用python绘制质粒图谱
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了用python绘制质粒图谱,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2008字,纯文字阅读大概需要3分钟。
内容图文
#Author:Alex.Zhang from PIL import Image, ImageDraw,ImageFont import math #创建一个图像 PLASMID_LENGTH = 4361 SIZE = (500, 500) CENTER = (250, 250) #‘RGB’表示该图像采用红绿蓝配色方案,元组size取值(500, 500) # 在RGB中,红色(255,0,0),绿色(0,255,0),蓝色(0,0,255) # white可以为(255,255,255)或者‘#ffffff’,黑色(0,0,0)或‘#000000’ #表示图像的x和y的尺寸为多少像素,‘white’设置背景色为白色 pBR322 = Image.new('RGB', SIZE, 'white') #激活绘图工具 DRAW = ImageDraw.Draw(pBR322) #定义三个函数 def get_angle(bp, length=PLASMID_LENGTH): """质粒碱基的位置转换为角度""" return bp * 360 / length def coord(angle, center, radius): """ 返回圆上点坐标 (x,y) 坐标说明: 例如point(100,100),是距左边框100像素,距顶部100像素的一个点 box(100,100,150,150),距顶部和左侧边框各100像素的50像素宽的一个方形框 """ #角度转弧度 rad = math.radians(angle) x = int(center[0] + math.cos(rad) * radius) y = int(center[1] + math.sin(rad) * radius) return x, y def draw_arrow_tip(start, direction, color): """根据起始的角度位置画一个三角形""" p1 = coord(start + direction, CENTER, 185) p2 = coord(start, CENTER, 160) p3 = coord(start, CENTER, 210) DRAW.polygon((p1, p2, p3), fill=color) #绘制质粒 TET_START, TET_END = get_angle(88), get_angle(1276) AMP_START, AMP_END = get_angle(3293), get_angle(4153) ORI_START, ORI_END = get_angle(2519), get_angle(3133) BOX = (50, 50, 450, 450) #画一个灰色的圆 DRAW.pieslice(BOX, 0, 360, fill='gray') #填充一个扇形,TET_START为起始角度, TET_END终止角度,0度角在时钟的3:00位置 DRAW.pieslice(BOX, TET_START, TET_END, fill='blue') #绘制一个白色圆 DRAW.pieslice((80, 80, 420, 420), 0, 360, fill='white') #添加箭头 draw_arrow_tip(TET_END, 10, 'blue') draw_arrow_tip(AMP_START, -10, 'orange') draw_arrow_tip(ORI_START, -10, 'darkmagenta') #添加文本 arial16 = ImageFont.truetype('arial.ttf',16) DRAW.text((150, 130), "ori", fill=(0, 0, 0),font=arial16) DRAW.text((340, 130), "amp", fill=(0, 0, 0),font=arial16) DRAW.text((300, 380), "tet", fill=(0, 0, 0),font=arial16) #pBR322.save('plasmid_pBR322.png') #pBR322.save('plasmid_pBR322.jpg') pBR322.save('plasmid_pBR322.tif')
内容总结
以上是互联网集市为您收集整理的用python绘制质粒图谱全部内容,希望文章能够帮你解决用python绘制质粒图谱所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。