def write_weblogo(self, filepath): matrix_tuple = [] for distribution in self.values: matrix_tuple.append(tuple(distribution)) dataArray = np.array(tuple(matrix_tuple)) alph = Alphabet(''.join(self.alphabet)) weblogoData = LogoData.from_counts(alph, dataArray) weblogoOptions = LogoOptions(color_scheme=classic) weblogoOptions.title = "PWM" weblogoFormat = LogoFormat(weblogoData, weblogoOptions) weblogo_file = open(filepath, 'w') weblogo_file.write(png_print_formatter(weblogoData, weblogoFormat)) weblogo_file.close()
def outputMotif(theta_motif, theta_background_matrix, lambda_motif, logev, k, outstr): from weblogolib import LogoData, LogoOptions, LogoFormat, png_formatter, eps_formatter, unambiguous_dna_alphabet _pv_format = "%3.1fe%+04.0f" f_string = sprint_logx(log(lambda_motif), 1, _pv_format) g_string = sprint_logx(logev, 1, _pv_format) print(("Motif {0:s} had a fraction of {1:s}").format(str(k), f_string)) print(("Motif {0:s} had an E-value of {1:s}").format(str(k), g_string)) print 'Saving motif as a png...' data = LogoData.from_counts(counts=theta_motif,alphabet=unambiguous_dna_alphabet)#,prior=theta_background_matrix[0])#Does prior mess things up? options = LogoOptions() options.title = 'Motif' forma = LogoFormat(data, options) fout = open(outstr + "Motif_" + str(k) + '.png', 'w') png_formatter(data, forma, fout) fout.close() print 'Saving motif as an eps...' fout = open(outstr + "Motif_" + str(k) + '.eps', 'w') eps_formatter(data, forma, fout) fout.close()