Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
config.skip_generalstats = True
# Write the report sources to disk
if config.data_dir is not None:
report.data_sources_tofile()
# Compress the report plot JSON data
logger.info("Compressing plot data")
report.plot_compressed_json = report.compress_json(report.plot_data)
plugin_hooks.mqc_trigger('before_report_generation')
# Data Export / MegaQC integration - save report data to file or send report data to an API endpoint
if (config.data_dump_file or config.megaqc_url) and config.megaqc_upload:
multiqc_json_dump = megaqc.multiqc_dump_json(report)
if config.data_dump_file:
util_functions.write_data_file(multiqc_json_dump, 'multiqc_data', False, 'json')
if config.megaqc_url:
megaqc.multiqc_api_post(multiqc_json_dump)
# Make the final report path & data directories
if filename != 'stdout':
config.output_fn = os.path.join(config.output_dir, config.output_fn_name)
config.data_dir = os.path.join(config.output_dir, config.data_dir_name)
# Check for existing reports and remove if -f was specified
if os.path.exists(config.output_fn) or (config.make_data_dir and os.path.exists(config.data_dir)):
if config.force:
if os.path.exists(config.output_fn):
logger.warning("Deleting : {} (-f was specified)".format(os.path.relpath(config.output_fn)))
os.remove(config.output_fn)
if config.make_data_dir and os.path.exists(config.data_dir):
logger.warning("Deleting : {} (-f was specified)".format(os.path.relpath(config.data_dir)))
shutil.rmtree(config.data_dir)
fdata[d['name']][pconfig['categories'][i]] = x
except (KeyError, IndexError):
fdata[d['name']][str(i)] = x
# Custom tsv output if the x axis varies
if not sharedcats and config.data_format == 'tsv':
fout = ''
for d in pdata:
fout += "\t"+"\t".join([str(x[0]) for x in d['data']])
fout += "\n{}\t".format(d['name'])
fout += "\t".join([str(x[1]) for x in d['data']])
fout += "\n"
with io.open (os.path.join(config.data_dir, '{}.txt'.format(pid)), 'w', encoding='utf-8') as f:
print( fout.encode('utf-8', 'ignore').decode('utf-8'), file=f )
else:
util_functions.write_data_file(fdata, pid)
# Set up figure
fig = plt.figure(figsize=(14, 6), frameon=False)
axes = fig.add_subplot(111)
# Go through data series
for idx, d in enumerate(pdata):
# Default colour index
cidx = idx
while cidx >= len(default_colors):
cidx -= len(default_colors)
# Line style
linestyle = 'solid'
if d.get('dashStyle', None) == 'Dash':
ID
Scale
{trows}
<div class="modal-footer"> <button data-dismiss="modal" class="btn btn-default" type="button">Close</button> </div>
""".format( tid=table_id, title=table_title, trows=''.join(t_modal_headers.values()) )
# Save the raw values to a file if requested
if dt.pconfig.get('save_file') is True:
fn = dt.pconfig.get('raw_data_fn', 'multiqc_{}'.format(table_id) )
util_functions.write_data_file(dt.raw_vals, fn )
report.saved_raw_data[fn] = dt.raw_vals
return html
def write_data_file(self, data, fn, sort_cols=False, data_format=None):
""" Saves raw data to a dictionary for downstream use, then redirects
to report.write_data_file() to create the file in the report directory """
report.saved_raw_data[fn] = data
util_functions.write_data_file(data, fn, sort_cols, data_format)
name = k+1
html += '<button data-target="#{pid}" class="btn btn-default btn-sm {a}">{n}</button>\n'.format(a=active, pid=pid, n=name)
html += '\n\n'
# Go through datasets creating plots
for pidx, pdata in enumerate(plotdata):
# Save plot data to file
fdata = {}
for d in pdata:
for didx, dval in enumerate(d['data']):
s_name = plotsamples[pidx][didx]
if s_name not in fdata:
fdata[s_name] = dict()
fdata[s_name][d['name']] = dval
util_functions.write_data_file(fdata, pids[pidx])
# Plot percentage as well as counts
plot_pcts = [False]
if pconfig.get('cpswitch') is not False:
plot_pcts = [False, True]
# Switch out NaN for 0s so that MatPlotLib doesn't ignore stuff
for idx, d in enumerate(pdata):
pdata[idx]['data'] = [x if not math.isnan(x) else 0 for x in d['data'] ]
for plot_pct in plot_pcts:
# Plot ID
pid = pids[pidx]
hide_plot = False
if plot_pct is True: