rank_tradeoffs
Which candidates in a table are not beaten on every objective at once: Pareto (non-dominated) sorting of rows scored on several columns, each to maximise or minimise. Returns each candidate's front (1 = non-dominated), the candidate one front up that beats it, and its crowding distance within its front (how isolated it is, so a short list can be spread along the front). Rows can be filtered first (em_max>=580, agg=m), and rows with an empty objective are left out and counted, never ranked last. moocore 0.3.2's pareto_rank and is_nondominated, emoa 0.5-3's and pymoo 0.6.2's crowding distances, reproduced.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| label | No | the column naming each candidate. Left unset, the first column. | |
| table | Yes | the candidates: a header row, then one row per candidate. Comma- or tab-separated, quoted cells allowed. | |
| _files | No | The project: record references shaped like _subject. Their records become library documents a tool names in sequences/parts/document; a trace or alignment is found by file name. | |
| filter | No | keep only rows passing every clause, separated by commas: a column, one of = != >= <= > <, and a value (`em_max>=580, agg=m`). Numbers compare as numbers; a blank cell passes no ordering clause. | |
| _subject | No | The record to act on: exactly one of sequence, accession (+source), sample (an id from list_samples) or file ({name, text} or {name, base64}); record_index picks one record of several. | |
| crowding | No | how isolation along a front is measured: NSGA-II's normalised distance (each gap over the objective's range, averaged), or the raw sum of gaps in each objective's own units. Values: normalised (NSGA-II (normalised)), raw (raw gaps). Advanced. | normalised |
| maximise | No | the columns where higher is better, separated by commas. | |
| minimise | No | the columns where lower is better, separated by commas. | |
| keep_duplicates | No | keep every copy of candidates with identical values on the first front; off keeps the first copy and names it as what the others duplicate. Advanced. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| front | Yes | the non-dominated candidates (front 1), most isolated first | |
| counts | Yes | rows in the table, filtered out, left out for an empty objective, ranked | |
| fronts | Yes | how many candidates sit on each front | |
| ranked | Yes | every candidate ranked: front, flag, crowding distance, the candidate that beats it, its objective values |