wordpress站点获利商城网站模板下载

当前位置: 首页 > news >正文

wordpress站点获利,商城网站模板下载,安徽网站建设系统,中国物流企业网站建设问题pycirclize python包画circos环形图 很多小伙伴都有画环形图的需求#xff0c;网上也有很多画环形图的教程#xff0c;讲解circos软件和circlize R包的比较多#xff0c;本文介绍一款python包:pyCirclize。适合喜欢python且希望更灵活作图的小伙伴。 pyCirclize包实际上也…pycirclize python包画circos环形图 很多小伙伴都有画环形图的需求网上也有很多画环形图的教程讲解circos软件和circlize R包的比较多本文介绍一款python包:pyCirclize。适合喜欢python且希望更灵活作图的小伙伴。 pyCirclize包实际上也是以matplotlib模块为基础进行开发个人使用体验感觉比circos软件灵活很多例如circos软件没办法为各圈写标题图注也比较单一相比之下pycirclize的图注和对扇区的调整更加灵活。详见官方的教程文档https://moshi4.github.io/pyCirclize/。

  1. 安装pycirclize 直接使用pip工具安装即可要求Python 3.9以上版本 pip install pycirclize2. 实例图 多说无益直接上一个样图。 下图是一个甲基化相关环形图包含了常用环形图的诸多要素根据实例图代码修改应该可以满足大部分作图需求了。 第一圈为染色体需要显示染色体ID和刻度大刻度标出刻度值但起始的大刻度不显示免得首位的刻度值重叠显得很乱标出小刻度。第二圈为case组相对于control组的高甲基化位点CG、CHG、CHH三种颜色均显示图中由于CHH类型位点太多导致其他两个看不太清了。标注出甲基化水平刻度线从0到0.9共10条浅灰色的线。第三圈为基因密度热图用黑白渐变展示。第四圈为case组相对于control组的低甲基化位点同第二圈但方向相反。
  2. 作图 俗话说得好Talk is cheap. Show me the code. 3.1 数据准备 第一圈的chromosome.bed 文件 共三列,染色体名startend。 CHR1 0 27139696 CHR2 0 27139696第二圈和第四圈的gDMR.hyper.txt 共4列染色体IDStartEnd值。 CHR1 1482 1487 0.167943基因密度 根据gff文件提取 cut -f 1,3 chromosome.bed test bedtools makewindows -g test -w 1000000 1M grep -w gene my.gff3 |awk {print \(1\t\)4\t$5}|uniq gene.pos bedtools intersect -a 1M -b gene.pos -c gene.density3.2 实例代码 python代码见下细节部分注释了内容。希望能达到抛砖引玉的作用吧祝大家科研顺利 from pycirclize import Circos import matplotlib.pyplot as plt import matplotlib as mpl import numpy as np import pandas as pd np.random.seed(0) from matplotlib.patches import Patch from matplotlib.lines import Line2D# Initialize Circos from BED chromosomes circos Circos.initialize_from_bed(chromosome.bed, space1,start5,end355,endspaceFalse) # 定义染色体space设置间距circos.text(图中标题可以设置为组名vs组名, size12, r25,weightbold) # 标题文字默认位于在图中央 circos.text(Gene density, size10, r16,weightbold)# Plot chromosome name for sector in circos.sectors:sector.text(sector.name, size5)# Plot outer trackouter_track sector.add_track((98, 100))outer_track.axis(fclightgrey)major_interval 10000000 # 设置大刻度minor_interval 1000000 # 设置小刻度if sector.size minor_interval:outer_track.xticks_by_interval(major_interval, label_formatterlambda v: f{v / 1000000:.0f} Mb if v ! 0 else None,label_size4)outer_track.xticks_by_interval(minor_interval, tick_length1, show_labelFalse)Hyper_CGpd.read_table(CG_gDMR.hyper.txt,headerNone)x np.array(Hyper_CG[Hyper_CG[0]sector.name]1/2)y np.array(Hyper_CG[Hyper_CG[0]sector.name][3])track1 sector.add_track((75, 95), r_pad_ratio0.1)# 注释圈名if sector.name circos.sectors[0].name:circos.text(Hyper, rtrack1.r_center, size8)for r in range(77, 95, 2):sector.line(rr, eclightgrey)track1.scatter(x, y,c#EECA40,vmin0,vmax1,ecblack,lw0.1,alpha0.5)Hyper_CHGpd.read_table(CHG_gDMR.hyper.txt,headerNone)x np.array(Hyper_CHG[Hyper_CHG[0]sector.name]1/2)y np.array(Hyper_CHG[Hyper_CHG[0]sector.name][3])track1.scatter(x, y,c#FD763F,vmin0,vmax1,ecblack,lw0.1,alpha0.5)Hyper_CHHpd.read_table(CHH_gDMR.hyper.txt,headerNone)x np.array(Hyper_CHH[Hyper_CHH[0]sector.name]1/2)y np.array(Hyper_CHH[Hyper_CHH[0]sector.name][3])track1.scatter(x, y,c#23BAC5,vmin0,vmax1,ecblack,lw0.1,alpha0.5)# Add cytoband tracks from cytoband filegene_densitypd.read_table(gene.density,headerNone)track2 sector.add_track((70, 75), r_pad_ratio0.1)# 注释圈名if sector.name circos.sectors[0].name:circos.text(Gene, rtrack2.r_center, size8)track2.heatmap(gene_density[gene_density[0]sector.name][3],vmin0,vmaxmax(gene_density[3]),cmapGreys)# 内圈的负值Hyper_CGpd.read_table(CG_gDMR.hypo.txt,headerNone)x np.array(Hyper_CG[Hyper_CG[0]sector.name]1/2)y np.array(Hyper_CG[Hyper_CG[0]sector.name][3])track3 sector.add_track((50, 70), r_pad_ratio0.1)# 注释圈名if sector.name circos.sectors[0].name:circos.text(Hypo, rtrack3.r_center, size8)for r in range(52, 70, 2):sector.line(rr, eclightgrey)track3.scatter(x, y,c#EECA40,vmin-1,vmax0,ecblack,lw0.1,alpha0.5)Hyper_CHGpd.read_table(CHG_gDMR.hypo.txt,headerNone)x np.array(Hyper_CHG[Hyper_CHG[0]sector.name]1/2)y np.array(Hyper_CHG[Hyper_CHG[0]sector.name][3])track3.scatter(x, y,c#FD763F,vmin-1,vmax0,ecblack,lw0.1,alpha0.5)Hyper_CHHpd.read_table(CHH_gDMR.hypo.txt,headerNone)x np.array(Hyper_CHH[Hyper_CHH[0]sector.name]1/2)y np.array(Hyper_CHH[Hyper_CHH[0]sector.name][3])track3.scatter(x, y,c#23BAC5,vmin-1,vmax0,ecblack,lw0.1,alpha0.5)circos.colorbar(bounds(0.35, 0.55, 0.3, 0.01),vmin0,vmaxmax(gene_density[3]),orientationhorizontal,cmapGreys) fig circos.plotfig()# 图注画在圈中间 _ circos.ax.legend(handles[Line2D([], [], color#EECA40, markero, labelCG, ms6, lsNone),Line2D([], [], color#FD763F, markero, labelCHG, ms6, lsNone),Line2D([], [], color#23BAC5, markero, labelCHH, ms6, lsNone),],bbox_to_anchor(0.5, 0.45),loccenter,ncols1, ) fig.savefig(Circos.pdf) # 保存 fig.savefig(Circos.png,dpi300)更多内容敬请关注微信公众号