<commit_before><?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE knimeNode PUBLIC "-//UNIKN//DTD KNIME Node 2.0//EN" "http://www.knime.org/Node.dtd">
<knimeNode icon="./NPI.png" type="Manipulator">
    <name>Normalize Plates (NPI)</name>

    <shortDescription>
        The node performs a normalized-percent-of-inhibition(NPI)-normalization based on two subsets of the data
        (positive and negative control).
    </shortDescription>

    <fullDescription>
        <intro>
            <p>
                Groups of data (e.g. wells of a plates) are normalized relative to two subsets (e.g. some wells within
                that plate, e.g. some negative
                control wells and some positive controls wells).
                For each group the mean (or median) is calculated for the two selected subsets.
                Based on these estimates, all data points of each group are normalized by applying this formula:
            </p>
            <p>
                x.npi = (mean(x[subset{positive}]) - x) / (mean(x[subset{positive}]) - mean(x[subset{negative}])) * 100
                <br/>
                or<commit_msg>fix icon for NPI Normalizer node<commit_after><?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE knimeNode PUBLIC "-//UNIKN//DTD KNIME Node 2.0//EN" "http://www.knime.org/Node.dtd">
<knimeNode icon="./NpiNormalizerNode.png" type="Manipulator">
    <name>Normalize Plates (NPI)</name>

    <shortDescription>
        The node performs a normalized-percent-of-inhibition(NPI)-normalization based on two subsets of the data
        (positive and negative control).
    </shortDescription>

    <fullDescription>
        <intro>
            <p>
                Groups of data (e.g. wells of a plates) are normalized relative to two subsets (e.g. some wells within
                that plate, e.g. some negative
                control wells and some positive controls wells).
                For each group the mean (or median) is calculated for the two selected subsets.
                Based on these estimates, all data points of each group are normalized by applying this formula:
            </p>
            <p>
                x.npi = (mean(x[subset{positive}]) - x) / (mean(x[subset{positive}]) - mean(x[subset{negative}])) * 100
                <br/>
                or
{'fraction_non_alphanumeric': 0.11077455646906101, 'fraction_numerical': 0.006923409779316313, 'mean_word_length': 2.2022160664819945, 'pattern_counts': {'":': 0, '<': 29, '<?xml version=': 2, '>': 29, 'https://': 0, 'lorem ipsum': 0, 'www.': 2, 'xml': 2}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3026219', 'n_tokens_mistral': 695, 'n_tokens_neox': 624, 'n_words': 220}