def run(self): lens1 = base.newlens(self.lens1, self.position) lens2 = base.newlens(self.lens2, self.position) if re.search('\d', self.figsize): self.figsize = [float(k) for k in self.figsize.split(',')] else: self.figsize = np.array( [1, float(lens1.sum())/float(lens2.sum())])*10 plt.rcParams['ytick.major.pad'] = 0 fig, ax = plt.subplots(figsize=self.figsize) ax.xaxis.set_ticks_position('top') step1 = 1 / float(lens1.sum()) step2 = 1 / float(lens2.sum()) base.dotplot_frame(fig, ax, lens1, lens2, step1, step2, self.genome1_name, self.genome2_name) gff1 = base.newgff(self.gff1) gff2 = base.newgff(self.gff2) gff1 = base.gene_location(gff1, lens1, step1, self.position) gff2 = base.gene_location(gff2, lens2, step2, self.position) block_list = pd.read_csv(self.block_list, header=None) bkinfo = pd.read_csv(self.blockinfo,index_col=0) bkinfo['chr1'] = bkinfo['chr1'].astype(str) bkinfo['chr2'] = bkinfo['chr2'].astype(str) align = self.alignment(gff1, gff2, block_list, bkinfo) alignment = align[gff1.columns[-int(len(block_list[0].drop_duplicates())):]] alignment.to_csv(self.savefile, sep='\t', header=None) df = self.pair_positon( alignment, gff1['loc'], gff2['loc'], self.colors) plt.scatter(df['loc2'], df['loc1'], s=float(self.markersize), c=df['color'], alpha=0.5, edgecolors=None, linewidths=0, marker='o') plt.subplots_adjust(left=0.07, right=0.97, top=0.93, bottom=0.03) plt.savefig(self.savefig, dpi=500) sys.exit(0)
def run(self): lens1 = base.newlens(self.lens1, self.position) lens2 = base.newlens(self.lens2, self.position) if re.search('\d', self.figsize): self.figsize = [float(k) for k in self.figsize.split(',')] else: self.figsize = np.array( [1, float(lens1.sum()) / float(lens2.sum())]) * 10 plt.rcParams['ytick.major.pad'] = 0 fig, ax = plt.subplots(figsize=self.figsize) ax.xaxis.set_ticks_position('top') step1 = 1 / float(lens1.sum()) step2 = 1 / float(lens2.sum()) base.dotplot_frame(fig, ax, lens1, lens2, step1, step2, self.genome1_name, self.genome2_name) gff1 = base.newgff(self.gff1) gff2 = base.newgff(self.gff2) gff1 = base.gene_location(gff1, lens1, step1, self.position) gff2 = base.gene_location(gff2, lens2, step2, self.position) blast = base.newblast(self.blast, int(self.score), float(self.evalue), gff1, gff2) df = self.pair_positon(blast, gff1, gff2, int(self.multiple), int(self.repnum)) plt.scatter(df['loc2'], df['loc1'], s=float(self.markersize), c=df['color'], alpha=0.5, edgecolors=None, linewidths=0, marker='o') plt.subplots_adjust(left=0.07, right=0.97, top=0.93, bottom=0.03) plt.savefig(self.savefile, dpi=500) sys.exit(0)
def run(self): axis = [0, 1, 1, 0] lens1 = base.newlens(self.lens1, self.position) lens2 = base.newlens(self.lens2, self.position) if re.search('\d', self.figsize): self.figsize = [float(k) for k in self.figsize.split(',')] else: self.figsize = np.array( [1, float(lens1.sum()) / float(lens2.sum())]) * 10 step1 = 1 / float(lens1.sum()) step2 = 1 / float(lens2.sum()) fig, ax = plt.subplots(figsize=self.figsize) plt.rcParams['ytick.major.pad'] = 0 ax.xaxis.set_ticks_position('top') base.dotplot_frame(fig, ax, lens1, lens2, step1, step2, self.genome1_name, self.genome2_name, [1, 1]) bkinfo = pd.read_csv(self.blockinfo) if self.blockinfo_reverse == True or self.blockinfo_reverse.upper( ) == 'TRUE': bkinfo[['chr1', 'chr2']] = bkinfo[['chr2', 'chr1']] bkinfo[['block1', 'block2']] = bkinfo[['block2', 'block1']] bkinfo['chr1'] = bkinfo['chr1'].astype(str) bkinfo['chr2'] = bkinfo['chr2'].astype(str) bkinfo = bkinfo[(bkinfo['length'] > int(self.block_length)) & (bkinfo['chr1'].isin(lens1.index)) & (bkinfo['chr2'].isin(lens2.index)) & (bkinfo['pvalue'] < float(self.pvalue))] if self.tandem == True or self.tandem == 'true' or self.tandem == 1: bkinfo = self.remove_tandem(bkinfo) pos, pairs = self.block_position(bkinfo, lens1, lens2, step1, step2) cm = plt.cm.get_cmap('gist_rainbow') # gist_rainbow,hsv df = pd.DataFrame(pairs, columns=['loc1', 'loc2', 'ks']) df = df[(df['ks'] >= self.area[0]) & (df['ks'] <= self.area[1])] df.drop_duplicates(inplace=True) sc = plt.scatter(df['loc1'], df['loc2'], s=float(self.markersize), c=df['ks'], alpha=0.9, edgecolors=None, linewidths=0, marker='o', vmin=self.area[0], vmax=self.area[1], cmap=cm) # sc = plt.scatter(df['loc1'], df['loc2'], s=float(self.markersize), c='dimgray', # alpha=0.7, edgecolors=None, linewidths=0, marker='o', vmin=self.area[0], vmax=self.area[1]) cbar = fig.colorbar(sc, shrink=0.5, pad=0.03, fraction=0.1) align = dict(family='Arial', style='normal', horizontalalignment="center", verticalalignment="center") cbar.set_label('Ks', labelpad=12.5, fontsize=18, **align) ax.axis(axis) plt.subplots_adjust(left=0.09, right=0.96, top=0.93, bottom=0.03) plt.savefig(self.savefig, dpi=500) plt.show() sys.exit(0)
def run(self): axis = [0, 1, 1, 0] lens1 = base.newlens(self.lens1, self.position) lens2 = base.newlens(self.lens2, self.position) if re.search('\d', self.figsize): self.figsize = [float(k) for k in self.figsize.split(',')] else: self.figsize = np.array( [1, float(lens1.sum()) / float(lens2.sum())]) * 10 plt.rcParams['ytick.major.pad'] = 0 fig, ax = plt.subplots(figsize=self.figsize) ax.xaxis.set_ticks_position('top') step1 = 1 / float(lens1.sum()) step2 = 1 / float(lens2.sum()) base.dotplot_frame(fig, ax, lens1, lens2, step1, step2, self.genome1_name, self.genome2_name, [0, 1]) gff1 = base.newgff(self.gff1) gff2 = base.newgff(self.gff2) gff1 = base.gene_location(gff1, lens1, step1, self.position) gff2 = base.gene_location(gff2, lens2, step2, self.position) bkinfo = pd.read_csv(self.blockinfo, index_col='id') if self.blockinfo_reverse == True or self.blockinfo_reverse.upper( ) == 'TRUE': bkinfo[['chr1', 'chr2']] = bkinfo[['chr2', 'chr1']] bkinfo[['block1', 'block2']] = bkinfo[['block2', 'block1']] bkinfo['chr1'] = bkinfo['chr1'].astype(str) bkinfo['chr2'] = bkinfo['chr2'].astype(str) bkinfo[self.classid] = bkinfo[self.classid].astype(str) bkinfo = bkinfo[bkinfo['chr1'].isin(lens1.index) & (bkinfo['chr2'].isin(lens2.index))] align = self.alignment(gff1, gff2, bkinfo) alignment = align[ gff1.columns[-int(len(bkinfo[self.classid].drop_duplicates())):]] alignment.to_csv(self.savefile, header=None) df = self.pair_positon(alignment, gff1['loc'], gff2['loc'], self.colors) plt.scatter(df['loc2'], df['loc1'], s=float(self.markersize), c=df['color'], alpha=0.5, edgecolors=None, linewidths=0, marker='o') ax.axis(axis) plt.subplots_adjust(left=0.07, right=0.97, top=0.93, bottom=0.03) plt.savefig(self.savefig, dpi=500) plt.show() sys.exit(0)
def run(self): length = 1 axis = [0, 1, 1, 0] left, right, top, bottom = 0.07, 0.97, 0.93, 0.03 lens1 = base.newlens(self.lens1, self.position) lens2 = base.newlens(self.lens2, self.position) step1 = 1 / float(lens1.sum()) step2 = 1 / float(lens2.sum()) if self.ancestor_left != None: axis[0] = -0.02 lens_ancestor_left = pd.read_csv(self.ancestor_left, sep="\t", header=None) lens_ancestor_left[0] = lens_ancestor_left[0].astype(str) lens_ancestor_left[3] = lens_ancestor_left[3].astype(str) lens_ancestor_left[4] = lens_ancestor_left[4].astype(int) lens_ancestor_left[ 4] = lens_ancestor_left[4] / lens_ancestor_left[4].max() lens_ancestor_left = lens_ancestor_left[lens_ancestor_left[0].isin( lens1.index)] if self.ancestor_top != None: axis[3] = -0.02 lens_ancestor_top = pd.read_csv(self.ancestor_top, sep="\t", header=None) lens_ancestor_top[0] = lens_ancestor_top[0].astype(str) lens_ancestor_top[3] = lens_ancestor_top[3].astype(str) lens_ancestor_top[4] = lens_ancestor_top[4].astype(int) lens_ancestor_top[ 4] = lens_ancestor_top[4] / lens_ancestor_top[4].max() lens_ancestor_top = lens_ancestor_top[lens_ancestor_top[0].isin( lens2.index)] if re.search('\d', self.figsize): self.figsize = [float(k) for k in self.figsize.split(',')] else: self.figsize = np.array( [1, float(lens1.sum()) / float(lens2.sum())]) * 10 plt.rcParams['ytick.major.pad'] = 0 fig, ax = plt.subplots(figsize=self.figsize) ax.xaxis.set_ticks_position('top') base.dotplot_frame(fig, ax, lens1, lens2, step1, step2, self.genome1_name, self.genome2_name, [axis[0], axis[3]]) gff1 = base.newgff(self.gff1) gff2 = base.newgff(self.gff2) gff1 = base.gene_location(gff1, lens1, step1, self.position) gff2 = base.gene_location(gff2, lens2, step2, self.position) if self.ancestor_top != None: top = top self.ancestor_posion(ax, gff2, lens_ancestor_top, 'top') if self.ancestor_left != None: left = left self.ancestor_posion(ax, gff1, lens_ancestor_left, 'left') blast = base.newblast(self.blast, int(self.score), float(self.evalue), gff1, gff2, self.blast_reverse) df = self.pair_positon(blast, gff1, gff2, int(self.multiple), int(self.repeat_number)) ax.scatter(df['loc2'], df['loc1'], s=float(self.markersize), c=df['color'], alpha=0.5, edgecolors=None, linewidths=0, marker='o') ax.axis(axis) plt.subplots_adjust(left=left, right=right, top=top, bottom=bottom) plt.savefig(self.savefig, dpi=500) plt.show() sys.exit(0)