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