<% 
meth_name = getattr(lib, meth).__name__
%>
${f'<div class={"divImpar" if sect % 2 == 1 else "divPar"}>'}
<p> Pasa una tabla del formato long al formato wide </p>

<p> En ocasiones, al trabajar con flujos como el de autoflow, lanzamos tareas paralelizadas con distintas conmbinaciones de trabajo, por ejemplo:
red (ORPHA y MONDO) y tipo de clustering (CPM y HLC) y volcamos distintas métricas en un archivo común, del estilo: </p>
<table class="table table-striped">
<tr><td>ORPHA</td><td>CPM</td><td>N_CLUSTERS</td><td>500</td></tr>
<tr><td>ORPHA</td><td>CPM</td><td>CLUSTER_SIZE</td><td>10</td></tr>
<tr><td>ORPHA</td><td>HLC</td><td>N_CLUSTERS</td><td>600</td></tr>
<tr><td>ORPHA</td><td>HLC</td><td>CLUSTER_SIZE</td><td>12</td></tr>
<tr><td>MONDO</td><td>CPM</td><td>N_CLUSTERS</td><td>550</td></tr>
<tr><td>MONDO</td><td>CPM</td><td>CLUSTER_SIZE</td><td>11</td></tr>
<tr><td>MONDO</td><td>HLC</td><td>N_CLUSTERS</td><td>650</td></tr>
<tr><td>MONDO</td><td>HLC</td><td>CLUSTER_SIZE</td><td>13</td></tr>
</table>
<p>En lo que vemos que las dos primeras columnas son factores (red y tipo de clustering), la tercera es la métrica medida y la cuarta es el valor
que toma la misma. Que es lo que se llamaría el formato "long" de una tabla <a href="https://www.thedataschool.co.uk/luke-bennett/long-vs-wide-data-tables/">(ejemplo de casos long y wide)</a>
Sin embargo, para poder utilizar algunos métodos de graficado de CanvasXpress o para ver la tabla de métricas de una forma más sencilla,
necesitamos transformar esta tabla a un formato "wide". Es en este caso cuando se utiliza el método <code>create_metric_table</code>.</p>

<h4> Ejemplo básico </h4>
<p>Este método es un tanto especial en cuanto a la mayoría de sus parámetros son posicionales. Por orden, los argumentos son: </p>
<ol>
    <li> tabla de entrada </li>
    <li>nombres para las columnas de los factores en la tabla de salida (separados por comas)</li>
    <li>nombre para la tabla de salida</li>
</ol>
<p>Siendo los tres obligatorios. </p>
<p>Imaginando que tenemos una tabla de entrada con las columnas que representan "nombre de la red, tipo de clustering, tipo de red, métrica, valor" , 
el comando sería algo como:</p>
<%
table_name = 'long_table'
output_table = 'outputs/wide_table'
corrupted_table = 'outputs/corrupted_table'
args = f"tables/{table_name} red,metodo,tipo {output_table}"
%>
${plotter.renderize_child_template(plotter.get_internal_template('example'), table_name=table_name, args=args, library=lib, method_name=meth_name, method=meth)}
<% 
metric_table = lib.CmdTabs.load_input_data(output_table) 
plotter.hash_vars['metric_table'] = metric_table
%>
${ plotter.table(id='metric_table', text=True, header=False, row_names=False, styled='bs', attrib = {'class' : 'table table-striped'} )}

<h4> Definir otra tabla para volcar los registros corruptos </h4>
<p>Opcionalmente, se puede pasar un flag -c para devolver otra tabla con los valores corruptos, es decir, aquellos que no se han podido transformar 
a formato wide porque falta algún valor de los factores. </p>
</div>