Convert-Pheno

 view release on metacpan or  search on metacpan

lib/Convert/Pheno/Audit/Terminology.pm  view on Meta::CPAN

    );
    my $summary_label_format = $workbook->add_format( bold => 1 );
    my $score_format = $workbook->add_format( num_format => '0.0000' );

    my %row_format = (
        resolved => $workbook->add_format( bg_color => '#E2F0D9' ),
        review => $workbook->add_format( bg_color => '#FFF2CC' ),
        unresolved => $workbook->add_format( bg_color => '#FCE4D6' ),
        not_searched => $workbook->add_format( bg_color => '#E7E6E6' ),
    );
    my %legend_format = (
        resolved => $workbook->add_format(
            bold => 1, color => 'white', bg_color => '#1B5E20', border => 1,
        ),
        review => $workbook->add_format(
            bold => 1, color => '#5F4300', bg_color => '#FFD966', border => 1,
        ),
        unresolved => $workbook->add_format(
            bold => 1, color => 'white', bg_color => '#8B0000', border => 1,
        ),
        not_searched => $workbook->add_format(

lib/Convert/Pheno/Audit/Terminology.pm  view on Meta::CPAN

    }

    $self->{format}               = 'xlsx';
    $self->{workbook}             = $workbook;
    $self->{summary_worksheet}    = $summary;
    $self->{audit_worksheet}      = $audit;
    $self->{header_format}        = $header_format;
    $self->{summary_label_format} = $summary_label_format;
    $self->{score_format}         = $score_format;
    $self->{row_format}           = \%row_format;
    $self->{legend_format}        = \%legend_format;
    $self->{next_xlsx_row}        = 1;
    return 1;
}

sub _write_xlsx_row {
    my ( $self, $row ) = @_;
    die "XLSX terminology audits support at most "
      . MAX_XLSX_DATA_ROWS
      . " decisions; use .tsv.gz for larger runs\n"
      if $self->{next_xlsx_row} > MAX_XLSX_DATA_ROWS;

lib/Convert/Pheno/Audit/Terminology.pm  view on Meta::CPAN

        );
        my $value = $summary_rows[$index][1];
        if ( defined $value && _is_number($value) ) {
            $summary->write_number( $index + 1, 1, $value );
        }
        else {
            $summary->write_string( $index + 1, 1, defined $value ? "$value" : q{} );
        }
    }

    my $legend_row = @summary_rows + 3;
    $summary->write_string( $legend_row, 0, 'Review colors', $self->{summary_label_format} );
    my @legend = (
        [ resolved     => 'Exact, direct, or configured resolution' ],
        [ review       => 'Similarity or spelling result to review' ],
        [ unresolved   => 'No term emitted' ],
        [ not_searched => 'Not searched or source fallback' ],
    );
    for my $index ( 0 .. $#legend ) {
        my ( $category, $description ) = @{ $legend[$index] };
        $summary->write_string(
            $legend_row + $index + 1,
            0,
            $category,
            $self->{legend_format}{$category},
        );
        $summary->write_string( $legend_row + $index + 1, 1, $description );
    }
    $summary->write_string(
        $legend_row + @legend + 2,
        0,
        'Interpretation',
        $self->{summary_label_format},
    );
    $summary->write_string(
        $legend_row + @legend + 2,
        1,
        'Colors prioritize review; they do not measure clinical confidence.',
    );
    $summary->write_string(
        $legend_row + @legend + 4,
        0,
        'Workbook view',
        $self->{summary_label_format},
    );
    $summary->write_string(
        $legend_row + @legend + 4,
        1,
        'Technical audit columns are present but hidden by default.',
    );

    my $audit = $self->{audit_worksheet};
    $audit->autofilter( 0, 0, $self->{total_rows}, $#COLUMNS );
    if ( $self->{total_rows} ) {
        my $last_row = $self->{total_rows} + 1;
        my $range = "A2:Z$last_row";
        my @rules = (



( run in 0.827 second using v1.01-cache-2.11-cpan-1191d43216d )