From b5fbad1e550a01f05bd00f4517ae12ce880ec1f7 Mon Sep 17 00:00:00 2001 From: fmareuil <fmareuil@pasteur.fr> Date: Wed, 10 Feb 2021 14:56:55 +0100 Subject: [PATCH] add factor normalization --- .../0067_metainformation_normalize_factor.py | 18 ++++++++++++++++++ ippisite/ippidb/models/targetcentric.py | 8 ++++++++ ippisite/ippidb/templatetags/customtags.py | 4 ++-- 3 files changed, 28 insertions(+), 2 deletions(-) create mode 100644 ippisite/ippidb/migrations/0067_metainformation_normalize_factor.py diff --git a/ippisite/ippidb/migrations/0067_metainformation_normalize_factor.py b/ippisite/ippidb/migrations/0067_metainformation_normalize_factor.py new file mode 100644 index 00000000..2d82a4d8 --- /dev/null +++ b/ippisite/ippidb/migrations/0067_metainformation_normalize_factor.py @@ -0,0 +1,18 @@ +# Generated by Django 2.2.1 on 2021-02-10 13:55 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('ippidb', '0066_merge_20210128_0926'), + ] + + operations = [ + migrations.AddField( + model_name='metainformation', + name='normalize_factor', + field=models.DecimalField(blank=True, decimal_places=8, default=4.5859973, max_digits=11, null=True, verbose_name='Normalize Factor'), + ), + ] diff --git a/ippisite/ippidb/models/targetcentric.py b/ippisite/ippidb/models/targetcentric.py index 050508d0..aaefeb9b 100644 --- a/ippisite/ippidb/models/targetcentric.py +++ b/ippisite/ippidb/models/targetcentric.py @@ -426,6 +426,14 @@ class MetaInformation(models.Model): minimum = models.DecimalField( verbose_name="Minimum", max_digits=11, decimal_places=8 ) + normalize_factor = models.DecimalField( + blank=True, + null=True, + default=4.58599730, + verbose_name="Normalize Factor", + max_digits=11, + decimal_places=8, + ) class Meta: verbose_name_plural = "MetaInformation" diff --git a/ippisite/ippidb/templatetags/customtags.py b/ippisite/ippidb/templatetags/customtags.py index 840921b7..91be01cf 100644 --- a/ippisite/ippidb/templatetags/customtags.py +++ b/ippisite/ippidb/templatetags/customtags.py @@ -262,10 +262,10 @@ def get_zscore_threshold(avg_std): @register.filter def get_zscore(distance, avg_std): - std = float(avg_std.std) + factor = float(avg_std.normalize_factor) # mean = float(avg_std.average) dist = float(distance) - score = np.exp(-((dist ** 2) / (2 * (std ** 2)))) + score = np.exp(-((dist ** 2) / (2 * (factor ** 2)))) return score -- GitLab