Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
P
profileview
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Edoardo SARTI
profileview
Commits
f8cb60d4
Commit
f8cb60d4
authored
May 10, 2022
by
Djeser Kordon
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Upload New File
parent
7727426d
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
1255 additions
and
0 deletions
+1255
-0
mesureHistoramme.ipynb
mesureHistoramme.ipynb
+1255
-0
No files found.
mesureHistoramme.ipynb
0 → 100644
View file @
f8cb60d4
{
"cells": [
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [],
"source": [
"from ete3 import Tree\n",
"import numpy as np"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[41, 62, 121, 82, 65, 174, 57, 60], [21, 20, 13, 49, 47, 74, 47, 35, 32, 33, 55, 119, 1, 56, 15, 45], [8, 13, 4, 16, 7, 6, 12, 37, 27, 20, 26, 48, 19, 28, 8, 27, 4, 28, 4, 29, 19, 36, 5, 114, 0, 0, 17, 39, 9, 6, 8, 37]]\n"
]
}
],
"source": [
"def genererhisto(input_file,v):\n",
" t = Tree(input_file) # ouverture du fichier\n",
" l=[]\n",
" for n in t.get_descendants():\n",
" if t.get_distance(n,topology_only=True)==v:# test sur la distance\n",
" l.append(n)\n",
" histof=[]\n",
"\n",
" for x in range(len(l)):# pour toute les occurences dans l\n",
" histo=[]\n",
" for leaf in l[x]: # pour toute les feuilles dans L \n",
" histo.append(leaf)\n",
" histof.append(len(histo))# on recupere le nombre de feuille de chaque sous arbre\n",
" return histof\n",
"\n",
"def genererhistos(input_file,vi,v):\n",
" t = Tree(input_file) # ouverture du fichier\n",
" #print(t)\n",
" zeroshere = []\n",
" histos = []\n",
" for iv in range(v+1):\n",
" l = []\n",
" zerosinnext = []\n",
" count = 0\n",
" for n in t.get_descendants():\n",
" if t.get_distance(n,topology_only=True)==iv:# test sur la distance\n",
" while count in zeroshere:\n",
" l.append(0)\n",
" zerosinnext += [(len(l)-1)*2, (len(l)-1)*2+1]\n",
" count += 1\n",
" l.append(len(n.get_leaves()))\n",
" if n.is_leaf():\n",
" zerosinnext += [(len(l)-1)*2, (len(l)-1)*2+1]\n",
" count += 1\n",
" zeroshere = zerosinnext\n",
" if vi <= iv <= v:\n",
" histos.append(l)\n",
" return histos\n",
" \n",
" \n",
"histos=genererhistos(\"results_djeser/CrFBA3_PV00274_0.8_k20.nhx\",2,4)\n",
"print(histos)\n"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[5, 6, 7, 8, 1, 2, 3, 4]\n",
"[1, 2, 3, 4, 5, 6, 7, 8]\n",
"[2, 3, 1, 8, 5, 6, 4, 7]\n",
"[8, 7, 6, 5, 4, 3, 2, 1]\n",
"[8, 7, 6, 5, 4, 3, 2, 1]\n",
"[6, 5, 7, 4, 8, 1, 3, 2]\n",
"[10, 9, 8, 7, 12, 10, 7, 5]\n",
"[13, 10, 7, 5, 10, 9, 8, 7]\n"
]
}
],
"source": [
"def organisehisto(histo):\n",
" for i in range(len(histo)):\n",
" if (i+1)%2==0:# si le terme de gauche superieur à celui de droite\n",
" if histo[i]<histo[i-1]:\n",
" transition=histo[i]\n",
" histo[i]=histo[i-1]\n",
" histo[i-1]=transition\n",
" if (i+1)%4==0:# si le sous arbre de gauche superieur à celui de droite\n",
" if (histo[i-2]+histo[i-3])>(histo[i-1]+histo[i]):\n",
" transition1=histo[i-2]\n",
" transition2=histo[i-3]\n",
" histo[i-2]=histo[i]\n",
" histo[i-3]=histo[i-1]\n",
" histo[i-1]=transition2\n",
" histo[i]=transition1\n",
" \n",
"def organisehisto2(histo):\n",
" lh = len(histo)\n",
" \n",
" # Check: if histo length is not a power of two, exit\n",
" if not ((lh & (lh-1) == 0) and lh != 0): # Powers of two only have the first bit == 1...\n",
" print(f\"Error: histogram length == {lh}\")\n",
" exit(1)\n",
" \n",
" levelhisto = histo\n",
" llh = len(levelhisto)\n",
" powcount = 0\n",
" levmod = 2**powcount\n",
" while llh > 1:\n",
" nextlevelhisto = []\n",
" for i in range(0,llh,2):\n",
" j = i*levmod\n",
" if levelhisto[i] < levelhisto[i+1]:\n",
" #print(\"WAS\", histo)\n",
" #print(\"OPERATION\", list(range(j, j+levmod)), \"<->\", list(range(j+levmod, j+levmod*2)))\n",
" histo[j:j+levmod], histo[j+levmod:j+levmod*2] = histo[j+levmod:j+levmod*2], histo[j:j+levmod]\n",
" #print(\"BECOMES\", histo)\n",
" nextlevelhisto.append(levelhisto[i] + levelhisto[i+1])\n",
" levelhisto = nextlevelhisto\n",
" llh = len(levelhisto)\n",
" powcount += 1\n",
" levmod = 2**powcount\n",
" #print(\"levelhisto\", levelhisto)\n",
"\n",
"# TESTS\n",
"h = [8, 7, 6, 5, 4, 3, 2, 1]\n",
"organisehisto(h)\n",
"print(h)\n",
"h = [1, 2, 3, 4, 5, 6, 7, 8]\n",
"organisehisto(h)\n",
"print(h)\n",
"h = [1, 8, 2, 3, 6, 5, 7, 4]\n",
"organisehisto(h)\n",
"print(h)\n",
"\n",
"h = [8, 7, 6, 5, 4, 3, 2, 1]\n",
"organisehisto2(h)\n",
"print(h)\n",
"h = [1, 2, 3, 4, 5, 6, 7, 8]\n",
"organisehisto2(h)\n",
"print(h)\n",
"h = [1, 8, 2, 3, 6, 5, 7, 4]\n",
"organisehisto2(h)\n",
"print(h)\n",
"\n",
"# ATTENTION!!\n",
"h1 = [10,9,8,7,12,10,7,5]\n",
"organisehisto2(h1)\n",
"print(h1)\n",
"h2 = [10,9,8,7,13,10,7,5]\n",
"organisehisto2(h2)\n",
"print(h2)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"def genererhisto2(input_file,v):\n",
" t = Tree(input_file)\n",
" l=[]\n",
" i=0\n",
" for n in t.get_descendants():\n",
" if t.get_distance(n,topology_only=True)==v:\n",
" i+=1\n",
" if i==17:# j'ai remarque que c'est au niveua du sous arbres 17 \n",
" l.append(n)\n",
" l.append(n)# j'etait oblige de mettre une feuille existente pour la boucle n \n",
" l.append(n)\n",
" histof=[]\n",
" for x in range(len(l)):\n",
" histo=[]\n",
" for leaf in l[x]:\n",
" histo.append(leaf)\n",
" histof.append(len(histo))\n",
" histof[17]=0# changement des deux valeurs ajoute plus haut\n",
" histof[18]=0\n",
" return histof"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"def normalise(histo):# normalise les histogramme\n",
" return [x/sum(histo) for x in histo]"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"#### aggmaxprobhist ####\n",
"Reference 0.000000 True\n",
"Almost identical 0.000000 True\n",
"Identical sorting but not permutable 0.016301 False\n",
"noise 0.000000 True\n",
"Permutable 0.000000 True\n",
"non-proportional increment 0.000000 True\n",
"Random big numbers or zero 0.131993 False\n",
"max unbalance 0.146087 False\n",
"proportional increment 0.000000 True\n",
"\n",
"\n",
"--- Incremental noise on signal ---\n",
"0 0.000000 +/- 0.000000\n",
"1 0.000143 +/- 0.000382\n",
"2 0.001746 +/- 0.002113\n",
"3 0.006633 +/- 0.004801\n",
"4 0.009506 +/- 0.006124\n",
"5 0.012759 +/- 0.009006\n",
"6 0.015723 +/- 0.010933\n",
"7 0.020461 +/- 0.014789\n",
"8 0.026158 +/- 0.020027\n",
"9 0.027148 +/- 0.017597\n",
"10 0.027669 +/- 0.021529\n",
"\n",
"\n",
"--- Incremental random noise ---\n",
"0 0.000138 +/- 0.000000\n",
"1 0.024788 +/- 0.019638\n",
"2 0.033766 +/- 0.028025\n",
"3 0.031023 +/- 0.024835\n",
"4 0.027556 +/- 0.020902\n",
"5 0.032447 +/- 0.023294\n",
"6 0.026440 +/- 0.021301\n",
"7 0.027143 +/- 0.024137\n",
"8 0.028592 +/- 0.021846\n",
"9 0.025710 +/- 0.019512\n",
"10 0.026803 +/- 0.022158\n",
"\n",
"\n",
"--- Incremental unbalanced distribution ---\n",
"1 0.132130\n",
"2 0.138470\n",
"3 0.140850\n",
"4 0.142096\n",
"5 0.142863\n",
"6 0.143383\n",
"7 0.143759\n",
"8 0.144043\n",
"9 0.144265\n",
"10 0.144443\n",
"---\n",
"\n",
"\n",
"\n"
]
}
],
"source": [
"import math\n",
"import numpy as np\n",
"\n",
"def stable_sigmoid(x):\n",
" sig = np.where(x < 0, np.exp(x)/(1 + np.exp(x)), 1/(1 + np.exp(-x)))\n",
" return sig\n",
"\n",
"def divergence(histo1,histo2):# calcul la divergence\n",
" v=0.0\n",
" for i in range(len(histo1)):\n",
" if histo1[i]!=0 and histo2[i]!=0:\n",
" v+=histo1[i]*np.log(histo1[i]/histo2[i])\n",
" return v\n",
"\n",
"def pears(histo1, histo2):\n",
" n = len(histo1)\n",
" s1, s2, s11, s22, s12 = 0, 0, 0, 0, 0\n",
" for i in range(n):\n",
" s1 += histo1[i]\n",
" s2 += histo2[i]\n",
" s12 += histo1[i]*histo2[i]\n",
" s11 += histo1[i]**2\n",
" s22 += histo2[i]**2\n",
" return (n*s12 - s1*s2)/((((n*s11)-s1**2)**0.5)*(((n*s22)-s2**2)**0.5))\n",
"\n",
"def permutations(h,d=1):\n",
" \"\"\"Lists all binary permutations of histogram h (must have a length of a power of 2)\"\"\"\n",
" hlen = len(h)\n",
" if hlen == d:\n",
" return [h]\n",
" if hlen > 16:\n",
" return None\n",
" \n",
" iblist = []\n",
" for i in range(2**d):\n",
" ib = [int(x) for x in ('{:b}'.format(i)).zfill(d)]\n",
" iblist.append(ib)\n",
" res = []\n",
" binlength = int(hlen/d)\n",
" sme = []\n",
" for i in range(0,hlen,binlength):\n",
" sme.append((i,i+int(binlength/2),i+binlength))\n",
" #print(iblist, sme)\n",
" hlist = []\n",
" for ib in iblist:\n",
" hnew = h[:]\n",
" for i, tripl in enumerate(sme):\n",
" if ib[i]:\n",
" s, m, e = tripl\n",
" hnew = hnew[:s] + hnew[m:e] + hnew[s:m] + hnew[e:]\n",
" hlist.append(hnew)\n",
" newlist = []\n",
" for hh in hlist:\n",
" newlist += permutations(hh,d*2)\n",
" return newlist\n",
"\n",
"def maxpears(h1, h2):\n",
" ps = permutations(h1)\n",
" am = np.argmax([pears(h,h2) for h in ps])\n",
" return am, ps[am], pears(ps[am],h2)\n",
"\n",
"\"\"\"\n",
"def probhist(hh1, hh2):\n",
" #pseudocounts\n",
" h1 = [x+1 for x in hh1]\n",
" h2 = [x+1 for x in hh2]\n",
" \n",
" s1, s2 = sum(h1), sum(h2)\n",
" nh1, nh2 = [x/s1 for x in h1], [x/s2 for x in h2]\n",
" twonhs = list(zip(nh1,nh2))\n",
" twonhs = sorted(twonhs, key= lambda x:x[1])\n",
" twosortednhs = list(zip(sorted(nh1), sorted(nh2)))\n",
" \n",
" res = 0\n",
" for i in range(len(h1)):\n",
" #if twonhs[i][1] == 0:\n",
" # continue\n",
" rat = twonhs[i][0]/twonhs[i][1]\n",
" ratsort = twosortednhs[i][0]/twosortednhs[i][1]\n",
" res += rat*math.log((rat/ratsort), 2)\n",
" return res\n",
"\n",
"\n",
"def probhist(hh1, hh2, symm=True):\n",
" #Pseudocounts\n",
" eps = 0.00001\n",
" h1 = [x+(max(hh1)-min(hh1)+eps)/100 for x in hh1]\n",
" h2 = [x+(max(hh2)-min(hh2)+eps)/100 for x in hh2]\n",
" \n",
" #Normalize histos\n",
" s1, s2 = sum(h1), sum(h2)\n",
" nh1, nh2 = [x/s1 for x in h1], [x/s2 for x in h2]\n",
" \n",
" #Couple histos and sort second\n",
" twonhs = list(zip(nh1,nh2))\n",
" twonhs = sorted(twonhs, key= lambda x:x[1])\n",
" \n",
" #Sort both histos and then couple\n",
" twosortednhs = list(zip(sorted(nh1), sorted(nh2)))\n",
" \n",
" # SUM P1/P2 log2(P1/P1') = SUM P1/P2 log2((P1/P2) / (P1'/P2')) because P2 = P2'\n",
" res = 0\n",
" for i in range(len(h1)):\n",
" res += abs(twonhs[i][0]/twonhs[i][1])*math.log((twonhs[i][0]/twosortednhs[i][0]), 2)\n",
"\n",
" if symm:\n",
" #Couple histos and sort first\n",
" twonhs = list(zip(nh1,nh2))\n",
" twonhs = sorted(twonhs, key= lambda x:x[0])\n",
" for i in range(len(h1)):\n",
" res += abs(twonhs[i][1]/twonhs[i][0])*math.log((twonhs[i][1]/twosortednhs[i][1]), 2)\n",
" return res/2\n",
"\n",
" return res\n",
"\"\"\"\n",
"\n",
"def probhist(hh1, hh2, symm=True): \n",
" # Pseudocounts\n",
" eps = 0.00001\n",
" h1 = [x+(max(hh1)-min(hh1)+eps)/100 for x in hh1]\n",
" h2 = [x+(max(hh2)-min(hh2)+eps)/100 for x in hh2]\n",
" \n",
" # Normalize histos\n",
" s1, s2 = sum(h1), sum(h2)\n",
" nh1, nh2 = [x/s1 for x in h1], [x/s2 for x in h2]\n",
" \n",
" # Couple histos and sort second\n",
" twonhs = list(zip(nh1,nh2))\n",
" twonhs = sorted(twonhs, key= lambda x:x[1])\n",
" \n",
" # Sort both histos and then couple\n",
" twosortednhs = list(zip(sorted(nh1), sorted(nh2)))\n",
" \n",
" # Cross-mutual information\n",
" # SUM f(h1,h2) log2 (f(h1,h2) / f(h1',h2')) with h2 = h2'\n",
" res = 0\n",
" for i in range(len(h1)):\n",
" d = stable_sigmoid(abs(twonhs[i][0]-twonhs[i][1])-0.5)\n",
" ds = stable_sigmoid(abs(twosortednhs[i][0]-twosortednhs[i][1])-0.5)\n",
" res += d*math.log(d/ds, 2)\n",
"\n",
" return res\n",
"\n",
"\n",
"\"\"\"\n",
"def probhist2(hh1, hh2):\n",
" def likelihood(doubleh, d):\n",
" diffs = np.zeros(len(doubleh)+1)\n",
" for i in range(len(doubleh)):\n",
" diffs[i] = abs(doubleh[i][0]-doubleh[i][1])\n",
" diffs[-1] = 10\n",
" return sum(diffs >= d)/(len(diffs))\n",
" \n",
" \n",
" #pseudocounts\n",
" h1 = [x+1 for x in hh1]\n",
" h2 = [x+1 for x in hh2]\n",
" \n",
" s1, s2 = sum(h1), sum(h2)\n",
" nh1, nh2 = [x/s1 for x in h1], [x/s2 for x in h2]\n",
" twonhs = list(zip(nh1,nh2))\n",
" twonhs = sorted(twonhs, key= lambda x:x[1])\n",
" twosortednhs = list(zip(sorted(nh1), sorted(nh2)))\n",
" \n",
" res = 0\n",
" for i in range(len(h1)):\n",
" res += likelihood(twosortednhs, twonhs[i][0]-twonhs[i][1])*math.log(likelihood(twosortednhs, twonhs[i][0]-twonhs[i][1]), 2)\n",
" return res\n",
"\"\"\"\n",
"\n",
"def agg_probhist(h1, h2):\n",
" return probhist(agg_vector(h1), agg_vector(h2))\n",
"\n",
"def maxprobhist(h1, h2):\n",
" ps = permutations(h1)\n",
" am = np.argmin([probhist(h,h2) for h in ps])\n",
" return probhist(ps[am],h2)\n",
" #return am, ps[am], probhist(ps[am],h2) \n",
"\n",
"def maxprobhist2(h1, h2):\n",
" ps = permutations(h1)\n",
" am = np.argmin([probhist2(h,h2) for h in ps])\n",
" return probhist2(ps[am],h2)\n",
" #return am, ps[am], probhist2(ps[am],h2)\n",
"\n",
"def aggregated_permutations_old(h1):\n",
" l = len(h1)\n",
" h1list = [h1]\n",
" newh = [] # list of all the upper histos\n",
" while len(h1list[-1]) > 2:\n",
" for i, v in enumerate(h1list[-1]):\n",
" if i%2==0:\n",
" newh.append(v)\n",
" else:\n",
" newh[-1] += v\n",
" h1list.append(newh)\n",
" newh = [] \n",
" \n",
" print(\"LIST\", h1list)\n",
" ps = permutations(h1)\n",
" for i in range(1,len(h1list)):\n",
" indexlist = []\n",
" for j in range(int(len(h1)/(2**i))):\n",
" indexlist += [j]*2**i\n",
" psh = permutations(indexlist)\n",
" for ipsh in range(len(psh)):\n",
" uni = []\n",
" for kk in psh[ipsh]:\n",
" if kk not in uni:\n",
" uni.append(kk)\n",
" ps[ipsh] += [h1list[i][k] for k in uni]\n",
" return ps\n",
"\n",
"def agg_vector(h):\n",
" l = len(h)\n",
" hlist = [h]\n",
" newh = [] # list of all the upper histos\n",
" while len(hlist[-1]) > 2:\n",
" for i, v in enumerate(hlist[-1]):\n",
" if i%2==0:\n",
" newh.append(v)\n",
" else:\n",
" newh[-1] += v\n",
" hlist.append(newh)\n",
" newh = []\n",
" res = []\n",
" for hh in hlist:\n",
" res += hh\n",
" return res\n",
"\n",
"def aggregated_permutations(h1):\n",
" ps = permutations(h1)\n",
" for ips in range(len(ps)):\n",
" ps[ips] = agg_vector(ps[ips])\n",
" return ps\n",
" \n",
"\n",
"#print(aggregated_permutations([1,2,3,4,5,6,7,8]))\n",
"\n",
"\n",
"def aggmaxprobhist(h1, h2, allout=False):\n",
" aggps = aggregated_permutations(h1)\n",
" am = np.argmin([probhist(h,agg_vector(h2)) for h in aggps])\n",
" if allout:\n",
" return am, aggps[am], probhist(aggps[am],agg_vector(h2))\n",
" return probhist(aggps[am],agg_vector(h2))\n",
" #return am, aggps[am], probhist(aggps[am],agg_vector(h2))\n",
"\n",
"### TESTS\n",
"import numpy as np\n",
"import random\n",
"\n",
"def tests(f):\n",
" answ = []\n",
" \n",
" # Reference\n",
" h1 = [10,9,8,7,12,10,7,5]\n",
" answ.append((h1, True, 'Reference'))\n",
" \n",
" # h1-h2 are similar (organisation problem) \n",
" h2 = [10,9,8,7,13,10,7,5]\n",
" answ.append((h2, True, 'Almost identical'))\n",
"\n",
" # h1-h3 are not similar (null hypothesis problem)\n",
" h3 = [10,5,8,7,12,10,7,9]\n",
" answ.append((h3, False, 'Identical sorting but not permutable'))\n",
" \n",
" # h1-h4 are similar (noise problem)\n",
" h4 = [11,8,7,8,11,9,8,6]\n",
" answ.append((h4, True, 'noise'))\n",
" \n",
" \n",
" # h1-h5 are similar (topology problem)\n",
" h5 = [12,10,7,5,10,9,8,7]\n",
" answ.append((h5, True, 'Permutable'))\n",
"\n",
" # h1-h6 are similar (non-proportional incrementation problem)\n",
" h6 = [x+100 for x in h1]\n",
" answ.append((h6, True, 'non-proportional increment'))\n",
"\n",
" # h1-h7 are not similar (null case)\n",
" h7 = [max(0,random.uniform(-1,1))*512 for x in h1]\n",
" answ.append((h7, False, 'Random big numbers or zero'))\n",
"\n",
" # h1-h8 are not similar (unbalance case)\n",
" h8 = [0, 0, 0, 0, 10000, 10000, 10000, 10000]\n",
" answ.append((h8, False, 'max unbalance'))\n",
" \n",
" # h1-h9 are similar (proportional incrementation problem)\n",
" h9 = [x*100 for x in h1]\n",
" answ.append((h9, True, 'proportional increment')) \n",
" \n",
" print(\"#### \" + f.__name__ + \" ####\")\n",
" for h, a, c in answ:\n",
" print(\"{0:50s} {1:20.6f} {2}\".format(c, f(h1, h), a))\n",
" print(\"\\n\") \n",
" \n",
" print(\"--- Incremental noise on signal ---\")\n",
" for magn in range(11):\n",
" sph = 0\n",
" sqsph = 0\n",
" for rep in range(100):\n",
" coef = magn/10\n",
" hr = [random.uniform(x-x*coef, x+x*coef) for x in h1]\n",
" ph = f(h1,hr)\n",
" sph += ph\n",
" sqsph += ph**2\n",
" #if ph > 50:\n",
" # print(h1, hr, magn, ph)\n",
" print(\"{0:<30d} {1:15.6f} +/- {2:10.6f}\".format(magn, sph/100, (sqsph/100 - (sph/100)**2)**0.5))\n",
" print(\"\\n\")\n",
" \n",
" print(\"--- Incremental random noise ---\")\n",
" for magn in range(11):\n",
" sph = 0\n",
" sqsph = 0\n",
" for rep in range(100):\n",
" hr = [random.random()*10*magn for x in h1]\n",
" ph = f(h1,hr)\n",
" sph += ph\n",
" sqsph += ph**2\n",
" #if ph > 50:\n",
" # print(h1, hr, magn, ph)\n",
" print(\"{0:<30d} {1:15.6f} +/- {2:10.6f}\".format(magn, sph/100, (sqsph/100 - (sph/100)**2)**0.5))\n",
" print(\"\\n\")\n",
" \n",
" print(\"--- Incremental unbalanced distribution ---\")\n",
" hrr = [0]*int(len(h1)/2) + [1]*int(len(h1)/2)\n",
" for magn in range(1,11):\n",
" hr = [1+x*10*magn for x in hrr]\n",
" print(\"{0:<30d} {1:15.6f}\".format(magn, f(h1,hr)))\n",
" print(\"---\")\n",
" print(\"\\n\\n\")\n",
" \n",
"#tests(probhist)\n",
"#tests(probhist2)\n",
"#tests(agg_probhist)\n",
"#tests(maxprobhist)\n",
"#tests(maxprobhist2)\n",
"tests(aggmaxprobhist)"
]
},
{
"cell_type": "code",
"execution_count": 99,
"metadata": {},
"outputs": [],
"source": [
"histo70g=genererhisto(\"results_djeser/CrFBA3_PV00274_0.7_k20.nhx\",3)\n",
"histo80g=genererhisto(\"results_djeser/CrFBA3_PV00274_0.8_k20.nhx\",3)\n",
"histo90g=genererhisto(\"results_djeser/CrFBA3_PV00274_0.9_k20.nhx\",3)\n",
"agghisto70g = agg_vector(histo70)\n",
"agghisto80g = agg_vector(histo80)\n",
"agghisto90g = agg_vector(histo90)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<BarContainer object of 16 artists>"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"from matplotlib import pyplot as plt\n",
"X = np.arange(len(histo70))\n",
"plt.bar(X + 0.00, histo70, color = 'b', width = 0.25)\n",
"plt.bar(X + 0.25, histo80, color = 'r', width = 0.25)\n",
"plt.bar(X + 0.50, histo90, color = 'g', width = 0.25)\n",
"#print(histo70)\n",
"#print(histo80)\n",
"#print(histo90)"
]
},
{
"cell_type": "code",
"execution_count": 111,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[6, 31, 5, 13, 13, 24, 34, 61, 2, 51, 83, 62, 14, 28, 86, 46]\n",
"[21, 20, 13, 49, 47, 74, 47, 35, 32, 33, 55, 119, 1, 56, 15, 45]\n",
"[19, 51, 46, 64, 22, 46, 42, 52, 34, 40, 66, 125, 19, 46, 19, 47]\n",
"0.10317505314683845\n",
"0.10317505314683845\n",
"0.0\n",
"0.05605697879171409\n",
"0.05340406438845954\n",
"0.019299319418164537\n",
"0.05421566192550684\n"
]
},
{
"data": {
"text/plain": [
"<matplotlib.collections.PathCollection at 0x7f86916b7190>"
]
},
"execution_count": 111,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"print(histo70g)\n",
"print(histo80g)\n",
"print(histo90g)\n",
"print(probhist(agghisto70g, agghisto80g))\n",
"print(probhist(agghisto70g, agghisto90g))\n",
"print(probhist(agghisto80g, agghisto90g))\n",
"print(aggmaxprobhist(histo70g, histo80g))\n",
"print(aggmaxprobhist(histo70g, histo90g))\n",
"print(aggmaxprobhist(histo80g, histo90g))\n",
"print(aggmaxprobhist(histo90g, histo100))\n",
"plt.scatter(aggmaxprobhist(histo70, histo90, allout=True)[1], agg_vector(histo90))"
]
},
{
"cell_type": "code",
"execution_count": 88,
"metadata": {},
"outputs": [],
"source": [
"histo80=genererhisto(\"results_djeser/CrFBA3_PV00274_0.8_k3.nhx\",3)\n",
"histo90=genererhisto(\"results_djeser/CrFBA3_PV00274_0.9_k3.nhx\",3)\n",
"histo100=genererhisto(\"results_djeser/CrFBA3_PV00274_1.0_k3.nhx\",3)\n",
"agghisto80 = agg_vector(histo80)\n",
"agghisto90 = agg_vector(histo90)\n",
"agghisto100 = agg_vector(histo100)"
]
},
{
"cell_type": "code",
"execution_count": 89,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<BarContainer object of 16 artists>"
]
},
"execution_count": 89,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"X = np.arange(len(histo90))\n",
"plt.bar(X + 0.00, histo80, color = 'b', width = 0.25)\n",
"plt.bar(X + 0.25, histo90, color = 'r', width = 0.25)\n",
"plt.bar(X + 0.50, histo100, color = 'g', width = 0.25)"
]
},
{
"cell_type": "code",
"execution_count": 90,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.0\n",
"0.2169730441264097\n",
"0.0\n",
"0.06431822236420445\n"
]
},
{
"data": {
"text/plain": [
"<matplotlib.collections.PathCollection at 0x7f8690144d60>"
]
},
"execution_count": 90,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"print(probhist(agghisto80, agghisto90))\n",
"#print(probhist(agghisto80, agghisto100))\n",
"print(probhist(agghisto90, agghisto100))\n",
"print(aggmaxprobhist(histo80, histo90))\n",
"#print(aggmaxprobhist(histo80, histo100))\n",
"print(aggmaxprobhist(histo90, histo100))\n",
"plt.scatter(aggmaxprobhist(histo90, histo100, allout=True)[1], agg_vector(histo100))"
]
},
{
"cell_type": "code",
"execution_count": 113,
"metadata": {},
"outputs": [],
"source": [
"def testsV2(f,f1):\n",
" answ = []\n",
" \n",
" # Reference\n",
" h1 = [10,9,8,7,12,10,7,5]\n",
" answ.append((h1, True, 'Reference'))\n",
" \n",
" # h1-h2 are similar (organisation problem) \n",
" h2 = [10,9,8,7,13,10,7,5]\n",
" answ.append((h2, True, 'Almost identical'))\n",
"\n",
" # h1-h3 are not similar (null hypothesis problem)\n",
" h3 = [10,5,8,7,12,10,7,9]\n",
" answ.append((h3, False, 'Identical sorting but not permutable'))\n",
" \n",
" # h1-h4 are similar (noise problem)\n",
" h4 = [11,8,7,8,11,9,8,6]\n",
" answ.append((h4, True, 'noise'))\n",
" \n",
" \n",
" # h1-h5 are similar (topology problem)\n",
" h5 = [12,10,7,5,10,9,8,7]\n",
" answ.append((h5, True, 'Permutable'))\n",
"\n",
" # h1-h6 are similar (non-proportional incrementation problem)\n",
" h6 = [x+100 for x in h1]\n",
" answ.append((h6, True, 'non-proportional increment'))\n",
"\n",
" # h1-h7 are not similar (null case)\n",
" h7 = [max(0,random.uniform(-1,1))*512 for x in h1]\n",
" answ.append((h7, False, 'Random big numbers or zero'))\n",
"\n",
" # h1-h8 are not similar (unbalance case)\n",
" h8 = [0, 0, 0, 0, 10000, 10000, 10000, 10000]\n",
" answ.append((h8, False, 'max unbalance'))\n",
" \n",
" # h1-h9 are similar (proportional incrementation problem)\n",
" h9 = [x*100 for x in h1]\n",
" answ.append((h9, True, 'proportional increment')) \n",
" \n",
" print(\"#### \" + f.__name__ + \" ####\")\n",
" for h, a, c in answ:\n",
" print(\"{0:50s} {1:20.6f} {2}\".format(c, f(h1, h,f1), a))\n",
" print(\"\\n\") \n",
" \n",
" print(\"--- Incremental noise on signal ---\")\n",
" for magn in range(11):\n",
" sph = 0\n",
" sqsph = 0\n",
" for rep in range(100):\n",
" coef = magn/10\n",
" hr = [random.uniform(x-x*coef, x+x*coef) for x in h1]\n",
" ph = f(h1,hr,f1)\n",
" sph += ph\n",
" sqsph += ph**2\n",
" #if ph > 50:\n",
" # print(h1, hr, magn, ph)\n",
" print(\"{0:<30d} {1:15.6f} +/- {2:10.6f}\".format(magn, sph/100, (sqsph/100 - (sph/100)**2)**0.5))\n",
" print(\"\\n\")\n",
" \n",
" print(\"--- Incremental random noise ---\")\n",
" for magn in range(11):\n",
" sph = 0\n",
" sqsph = 0\n",
" for rep in range(100):\n",
" hr = [random.random()*10*magn for x in h1]\n",
" ph = f(h1,hr,f1)\n",
" sph += ph\n",
" sqsph += ph**2\n",
" #if ph > 50:\n",
" # print(h1, hr, magn, ph)\n",
" print(\"{0:<30d} {1:15.6f} +/- {2:10.6f}\".format(magn, sph/100, (sqsph/100 - (sph/100)**2)**0.5))\n",
" print(\"\\n\")\n",
" \n",
" print(\"--- Incremental unbalanced distribution ---\")\n",
" hrr = [0]*int(len(h1)/2) + [1]*int(len(h1)/2)\n",
" for magn in range(1,11):\n",
" hr = [1+x*10*magn for x in hrr]\n",
" print(\"{0:<30d} {1:15.6f}\".format(magn, f(h1,hr,f1)))\n",
" print(\"---\")\n",
" print(\"\\n\\n\")"
]
},
{
"cell_type": "code",
"execution_count": 114,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"#### aggmaxprobhistv2 ####\n",
"Reference 0.000000 True\n",
"Almost identical 0.000000 True\n",
"Identical sorting but not permutable 0.037954 False\n",
"noise 0.000000 True\n",
"Permutable 0.000000 True\n",
"non-proportional increment 0.000000 True\n",
"Random big numbers or zero 0.307164 False\n",
"max unbalance 0.348810 False\n",
"proportional increment 0.000000 True\n",
"\n",
"\n",
"--- Incremental noise on signal ---\n",
"0 0.000000 +/- 0.000000\n",
"1 0.000572 +/- 0.001266\n",
"2 0.004640 +/- 0.006444\n",
"3 0.014518 +/- 0.012482\n",
"4 0.020301 +/- 0.012400\n",
"5 0.028884 +/- 0.021209\n",
"6 0.036155 +/- 0.027153\n",
"7 0.040000 +/- 0.029236\n",
"8 0.054395 +/- 0.043400\n",
"9 0.061901 +/- 0.053802\n",
"10 0.079837 +/- 0.064210\n",
"\n",
"\n",
"--- Incremental random noise ---\n",
"0 0.000417 +/- 0.000000+0.000000j\n",
"1 0.059627 +/- 0.040997\n",
"2 0.063078 +/- 0.050248\n",
"3 0.068906 +/- 0.051127\n",
"4 0.063250 +/- 0.044906\n",
"5 0.076149 +/- 0.059188\n",
"6 0.061426 +/- 0.041418\n",
"7 0.065583 +/- 0.048358\n",
"8 0.049052 +/- 0.027412\n",
"9 0.064145 +/- 0.048429\n",
"10 0.061818 +/- 0.058571\n",
"\n",
"\n",
"--- Incremental unbalanced distribution ---\n",
"1 0.314136\n",
"2 0.329868\n",
"3 0.335780\n",
"4 0.338880\n",
"5 0.340788\n",
"6 0.342081\n",
"7 0.343015\n",
"8 0.343721\n",
"9 0.344274\n",
"10 0.344719\n",
"---\n",
"\n",
"\n",
"\n"
]
}
],
"source": [
"\n",
"def aggmaxprobhistv2(h1, h2,f,allout=False):\n",
" aggps = aggregated_permutations(h1)\n",
" am = np.argmin([probhistv2(h,agg_vector(h2),f) for h in aggps])\n",
" if allout:\n",
" return am, aggps[am], probhistv2(aggps[am],agg_vector(h2),f)\n",
" return probhistv2(aggps[am],agg_vector(h2),f)\n",
"def probhistv2(hh1, hh2, f,symm=True): \n",
" # Pseudocounts\n",
" eps = 0.00001\n",
" h1 = [x+(max(hh1)-min(hh1)+eps)/100 for x in hh1]\n",
" h2 = [x+(max(hh2)-min(hh2)+eps)/100 for x in hh2]\n",
" \n",
" # Normalize histos\n",
" s1, s2 = sum(h1), sum(h2)\n",
" nh1, nh2 = [x/s1 for x in h1], [x/s2 for x in h2]\n",
" \n",
" # Couple histos and sort second\n",
" twonhs = list(zip(nh1,nh2))\n",
" twonhs = sorted(twonhs, key= lambda x:x[1])\n",
" \n",
" # Sort both histos and then couple\n",
" twosortednhs = list(zip(sorted(nh1), sorted(nh2)))\n",
" \n",
" # Cross-mutual information\n",
" # SUM f(h1,h2) log2 (f(h1,h2) / f(h1',h2')) with h2 = h2'\n",
" res = 0\n",
" #print(twonhs)\n",
" #print(twosortednhs)\n",
" for i in range(len(h1)):\n",
" #print(abs(twonhs[i][0]-twonhs[i][1])-0.5)\n",
" d = f(abs(twonhs[i][0]-twonhs[i][1])-0.5)\n",
" ds =f(abs(twosortednhs[i][0]-twosortednhs[i][1])-0.5)\n",
" ##print(d,ds)\n",
" res += d*math.log(d/ds, 2)\n",
" if res<0:\n",
" res=0\n",
" return res\n",
"\n",
"\n",
"\n",
"def SoftPlus(x):\n",
" sig =math.log(1+np.exp(x),2)\n",
" return sig\n",
"\n",
"def identite_courbe(x):# ne marche pas\n",
" s=(math.sqrt(x**2 +1)-1)/2+x\n",
" return s\n",
"\n",
"def Exponentielle_douce(x,alpha=5):# ne marche pas\n",
" return (np.exp(alpha*x)-1)/alpha\n",
" \n",
"testsV2(aggmaxprobhistv2,SoftPlus)"
]
},
{
"cell_type": "code",
"execution_count": 115,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.0\n",
"0.08401265698494796\n",
"0.0\n",
"0.02345183803066629\n"
]
},
{
"data": {
"text/plain": [
"<matplotlib.collections.PathCollection at 0x7f8691801820>"
]
},
"execution_count": 115,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"print(probhistv2(agghisto80, agghisto90,Exponentielle_douce))\n",
"#print(probhistv2(agghisto80, agghisto100,Exponentielle_douce))\n",
"print(probhistv2(agghisto90, agghisto100,Exponentielle_douce))\n",
"print(aggmaxprobhistv2(histo80, histo90,Exponentielle_douce))\n",
"#print(aggmaxprobhistv2(histo80, histo100,Exponentielle_douce))\n",
"print(aggmaxprobhistv2(histo90, histo100,Exponentielle_douce))\n",
"plt.scatter(aggmaxprobhistv2(histo90, histo100,Exponentielle_douce, allout=True)[1], agg_vector(histo100))"
]
},
{
"cell_type": "code",
"execution_count": 116,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.0\n",
"0.08401265698494796\n",
"0.006895607648069005\n",
"0.019861084949635448\n"
]
},
{
"data": {
"text/plain": [
"<matplotlib.collections.PathCollection at 0x7f8691900b80>"
]
},
"execution_count": 116,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"print(probhistv2(agghisto80g, agghisto90g,Exponentielle_douce))\n",
"#print(probhistv2(agghisto80, agghisto100,Exponentielle_douce))\n",
"print(probhistv2(agghisto90g, agghisto100,Exponentielle_douce))\n",
"print(aggmaxprobhistv2(histo80g, histo90g,Exponentielle_douce))\n",
"#print(aggmaxprobhistv2(histo80, histo100,Exponentielle_douce))\n",
"print(aggmaxprobhistv2(histo90g, histo100,Exponentielle_douce))\n",
"plt.scatter(aggmaxprobhistv2(histo90g, histo100,Exponentielle_douce, allout=True)[1], agg_vector(histo100))"
]
},
{
"cell_type": "code",
"execution_count": 117,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.0\n",
"0.5097931574638397\n",
"0.0\n",
"0.15016129692007307\n"
]
},
{
"data": {
"text/plain": [
"<matplotlib.collections.PathCollection at 0x7f8691cb3400>"
]
},
"execution_count": 117,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAD6CAYAAABamQdMAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAAAViklEQVR4nO3df2zcd33H8ecL1y1H6eZ0davESZcghWwpGQR5EVMm1LUMlx8iVqRu2cSUPzrln04CbQrEQ2JDWpWMaIj9MSZVhS0SP6IIghsVthASENoEpA5ul6at10BLaztrwpgHBS913Pf+uK/bi3Nn39n39d33c6+HFN3d57739efTJq/7+H2f7+cUEZiZWVpe1+oOmJlZ8znczcwS5HA3M0uQw93MLEEOdzOzBDnczcwSVFe4S3pO0llJj0kaydpulnRC0jPZ7aqK44cknZc0Jmkgr86bmVl1qmedu6TngP6I+ElF2yeBn0bEAUn7gFUR8VFJm4EvAduANcA3gTdHxGyt899yyy2xfv36ZQ3EzKzTnDlz5icR0VvtueuWcd4dwJ3Z/UPAt4GPZu2HI+Iy8Kyk85SD/ru1TrR+/XpGRkaW0RUzs84j6ce1nqu35h7ANySdkbQna7stIi4AZLe3Zu19wAsVrx3P2szMbIXUO3PfHhGTkm4FTkh6eoFjVaXtmtpP9iaxB+D222+vsxtmZlaPumbuETGZ3V4Evkq5zPKipNUA2e3F7PBxYF3Fy9cCk1XO+WBE9EdEf29v1ZKRmZkt0aLhLulGSTfN3QfeDTwBHAN2Z4ftBh7O7h8Ddkm6QdIGYCNwutkdNzOz2uopy9wGfFXS3PFfjIh/lfQocETSfcDzwL0AEXFO0hHgSeAKcP9CK2XMzKz5Fg33iPgR8NYq7f8N3F3jNQ8ADyy7d2ZmiRoeneDg8TEmp6ZZ01Ni78AmBrc2b+3JcpZCmpnZEgyPTjB09CzTM+WixsTUNENHzwI0LeC9/YCZ2Qo7eHzs1WCfMz0zy8HjY037GQ53M7MVNjk13VD7UjjczcxW2JqeUkPtS+FwNzNbYXsHNlHq7rqqrdTdxd6BTU37Gf5A1cxshc19aOrVMmZmiRnc2tfUMJ/PZRkzswQ53M3MEuRwNzNLkMPdzCxBDnczswQ53M3MEuRwNzNLkMPdzCxBDnczswQ53M3MEuRwNzNLkMPdzCxBDnczswQ53M3MEuRwNzNLkMPdzCxBDnczswQ53M3MEuRwNzNLkMPdzCxBDnczswQ53M3MEnRdqztg1m6GRyc4eHyMyalp1vSU2DuwicGtfa3ulllDHO5mFYZHJxg6epbpmVkAJqamGTp6FsABb4XisoxZhYPHx14N9jnTM7McPD7Woh6ZLU3d4S6pS9KopEeyxzdLOiHpmex2VcWxQ5LOSxqTNJBHx83yMDk13VB7CoZHJ9h+4BQb9n2N7QdOMTw60eouWRM0MnP/EPBUxeN9wMmI2AiczB4jaTOwC7gDuAf4jKSu5nTXLF9rekoNtRfdXBlqYmqa4LUylAO++OoKd0lrgfcBD1U07wAOZfcPAYMV7Ycj4nJEPAucB7Y1pbdmOds7sIlS99VzkVJ3F3sHNrWoR/lyGSpd9X6g+mngI8BNFW23RcQFgIi4IOnWrL0P+F7FceNZm1nbm/vQtFNWy3RiGapTLBrukt4PXIyIM5LurOOcqtIWVc67B9gDcPvtt9dxWrOVMbi1L9kwn29NT4mJKkGeahmqk9RTltkOfEDSc8Bh4C5JnwdelLQaILu9mB0/DqyreP1aYHL+SSPiwYjoj4j+3t7eZQzBzJaq08pQnWTRcI+IoYhYGxHrKX9QeioiPggcA3Znh+0GHs7uHwN2SbpB0gZgI3C66T03s2Ub3NrH/p1b6OspIaCvp8T+nVs65jeXlC3nIqYDwBFJ9wHPA/cCRMQ5SUeAJ4ErwP0RMVv7NGbWSp1UhuokirimHL7i+vv7Y2RkpNXdMDMrFElnIqK/2nO+QtXMLEEOdzOzBDnczcwS5HA3M0uQw93MLEEOdzOzBDnczcwS5HA3M0uQw93MLEEOdzOzBDnczcwS5HA3M0uQw93MLEEOdzOzBDnczcwS5HA3M0uQw93MLEEOdzOzBC3nO1StQwyPTnDw+BiTU9Os6Smxd2CTv3PTrM053G1Bw6MTDB09y/RM+TvOJ6amGTp6FsABb9bGXJaxBR08PvZqsM+Znpnl4PGxFvXIzOrhcLcFTU5NN9RuZu3B4W4LWtNTaqjdzNqDw90WtHdgE6XurqvaSt1d7B3Y1KIemVk9/IGqLWjuQ1OvljErFoe7LWpwa5/D3KxgXJYxM0uQw93MLEEOdzOzBDnczcwS5HA3M0uQw93MLEEOdzOzBC0a7pJeL+m0pMclnZP0iaz9ZkknJD2T3a6qeM2QpPOSxiQN5DkAMzO7Vj0XMV0G7oqIlyR1A/8m6V+AncDJiDggaR+wD/iopM3ALuAOYA3wTUlvjojZWj/ArB1433pLyaIz9yh7KXvYnf0JYAdwKGs/BAxm93cAhyPickQ8C5wHtjWz02bNNrdv/cTUNMFr+9YPj060umtmS1JXzV1Sl6THgIvAiYj4PnBbRFwAyG5vzQ7vA16oePl41jb/nHskjUgauXTp0jKGYLZ83rfeUlNXuEfEbES8DVgLbJP0lgUOV7VTVDnngxHRHxH9vb29dXXWLC/et95S09BqmYiYAr4N3AO8KGk1QHZ7MTtsHFhX8bK1wORyO2qWJ+9bb6mpZ7VMr6Se7H4JeBfwNHAM2J0dtht4OLt/DNgl6QZJG4CNwOkm99usqbxvvaWmntUyq4FDkroovxkciYhHJH0XOCLpPuB54F6AiDgn6QjwJHAFuN8rZazded96S40irimHr7j+/v4YGRlpdTfMzApF0pmI6K/2nK9QNTNLkMPdzCxBDnczswQ53M3MEuRwNzNLkMPdzCxBDnczswQ53M3MEuRwNzNLkMPdzCxBDnczswQ53M3MEuRwNzNLkMPdzCxBDnczswQ53M3MEuRwNzNLkMPdzCxBDnczswQ53M3MEuRwNzNLkMPdzCxBDnczswQ53M3MEuRwNzNLkMPdzCxBDnczswQ53M3MEuRwNzNLkMPdzCxBDnczswQ53M3MErRouEtaJ+lbkp6SdE7Sh7L2myWdkPRMdruq4jVDks5LGpM0kOcAzMzsWvXM3K8AfxERvwm8A7hf0mZgH3AyIjYCJ7PHZM/tAu4A7gE+I6krj86bmVl1i4Z7RFyIiB9k938OPAX0ATuAQ9lhh4DB7P4O4HBEXI6IZ4HzwLYm99vMzBbQUM1d0npgK/B94LaIuADlNwDg1uywPuCFipeNZ21mZrZC6g53SW8EvgJ8OCJ+ttChVdqiyvn2SBqRNHLp0qV6u2FmZnWoK9wldVMO9i9ExNGs+UVJq7PnVwMXs/ZxYF3Fy9cCk/PPGREPRkR/RPT39vYutf9mZlZFPatlBHwWeCoiPlXx1DFgd3Z/N/BwRfsuSTdI2gBsBE43r8tWJMOjE2w/cIoN+77G9gOnGB6daHWXzDrCdXUcsx34E+CspMeytr8EDgBHJN0HPA/cCxAR5yQdAZ6kvNLm/oiYbXbHrf0Nj04wdPQs0zPl//0TU9MMHT0LwOBWfwxjlidFXFMOX3H9/f0xMjLS6m4kYXh0goPHx5icmmZNT4m9A5taFqTbD5xiYmr6mva+nhL/vu+uFvTILC2SzkREf7Xn6pm5W0G020x5skqwL9RuZs3j7QcScvD42KvBPmd6ZpaDx8da0p81PaWG2s2seRzuCWm3mfLegU2Uuq++OLnU3cXegU0t6Y9ZJ3G4J6TdZsqDW/vYv3MLfT0lRLnWvn/nFn+YarYCXHNPyN6BTVfV3KH1M+XBrX0Oc7MWcLgnZC5E22W1jJm1jsM9MZ4pmxm45m5mliSHu5lZghzuZmYJcs2d9rpk38ysGTo+3Nvtkn0zs2bo+LJMu12yb2bWDB0f7u12yb6ZWTN0fLi32yX7ZmbN0PHh7s2tzCxFHf+BapEv2fcqHzOrpePDHYp5yb5X+ZjZQjq+LFNUXuVjZgtxuBeUV/mY2UIc7gXlVT5mthCHe0F5lY+ZLcQfqBZUkVf5mFn+HO4FVsRVPma2MlyWMTNLkMPdzCxBDnczswQ53M3MEuQPVHPkvV/MrFUc7jnx3i9m1kouy+TEe7+YWSt55p6TZu/94hKPmTVi0Zm7pM9JuijpiYq2myWdkPRMdruq4rkhSecljUkayKvj7a6Ze7/MlXgmpqYJXivxDI9OLLOXZpaqesoy/wzcM69tH3AyIjYCJ7PHSNoM7ALuyF7zGUlddKBm7v3iEo+ZNWrRcI+I7wA/nde8AziU3T8EDFa0H46IyxHxLHAe2NacrhbL4NY+9u/cQl9PCQF9PSX279yypFKKt/c1s0YtteZ+W0RcAIiIC5Juzdr7gO9VHDeetXWkZu39sqanxESVIPf2vmZWS7NXy6hKW1Q9UNojaUTSyKVLl5rcjbR4e18za9RSw/1FSasBstuLWfs4sK7iuLXAZLUTRMSDEdEfEf29vb1L7EZnaGaJx8w6w1LLMseA3cCB7PbhivYvSvoUsAbYCJxebifN2/uaWWMWDXdJXwLuBG6RNA78FeVQPyLpPuB54F6AiDgn6QjwJHAFuD8iZque2MzMcrNouEfEH9V46u4axz8APLCcTi2VL/QxMytL5gpV7+ViZvaaZMJ9oQt9HO7L59+KzIolmXD3hT758W9FZsWTTLgvdqFPUWee7dBv/1ZkVjzJbPm70IU+eW68NTw6wfYDp9iw72tsP3CqqZt5tcuGYf6tyKx4kgn3hS70yWvjrbzDt102DGvmDpdmtjKSKctA7Qt98pp5Lha+yy2ntMuMee/Apqtq7uDtD8zaXTIz94XkNfOsFbJzM/jlzujbZcbs7Q/MiiepmXstec08a32I2yU15QPIdpoxe/sDs2LpiJl7XjPPWh/izkbVjTAbLqd4xmxmS9URM3fIZ+Y5d775tfWDx8eatv+6Z8xmthQdE+55qRW+7VJOMbPO5HDPQa0ZvWfgZrZSHO4LWM7VoUstp7TDFalmVnwO9xpasZ+K93Axs2bpiNUyS9GKq0Pb5YpUMyu+JGbueZQyWnF1aLtckWpmxVf4mXte+7u04urQdrki1cyKr/DhnlcpY6FdJvPSip9pZmkqfFkmz1LG67tf9+obR0+pm7/+wB3LKvcsVj7yEkoza5bCh/tiX9KxFPNXrQBcvvLKks9X7Zy1VsL4ilQza4bCl2XyKGUspdSz2Jd2eCWMma2kws/c8yhlNFrqqWdW7pUwZraSCh/u0PxSRqOlnnq+YzSP8pGZWS2FL8vkodFSTz2zcq+EMbOVlMTMvV71XuzUaKmnnlm5V8KY2UpS1PhiiZXU398fIyMjuf6MaitgSt1dS/7yi8o3il8tdfOLl68wM/vaf8vlnNvMrB6SzkREf7Xnkpy5V5uh11MXb+T8lW8UU9MzdL9OrHpDN1O/nPGs3MxarvDhPj/If+83evnKmYlrVq7MD/Y5S1mtUu2NYuaV4A3XX8fox9/d+CDMzJqs0OFebQniF773PPMLTdMzs3RJVb/bdCmrVbys0czaXaFXy1SbQdf6BGE24prVKgC/fPlKw5uMeYMvM2t3hQ73RmbKfT0l9u/cQk+p+6r2//nlTMO7SHpZo5m1u0KHe88buqu2a97jyuD9+f9dueb4RrcBGNzax/6dW+jrKSFee+PwB6hm1i5yq7lLugf4e6ALeCgiDjTz/MOjE7xUJai7u8Qf/vY6vvX0patWywAMHT1bte4OjdfLvcGXmbWzXMJdUhfwD8DvA+PAo5KORcSTzfoZB4+PMfPKtUF94/XX8TeDW65p337gVM0VM+B6uZmlJa+yzDbgfET8KCJeBg4DO5r5A2rNtP93eqah48H1cjNLT17h3ge8UPF4PGt7laQ9kkYkjVy6dKnhH9DoipVa7V2S6+Vmlpy8wn3+Z5owb5ViRDwYEf0R0d/b29vwD2h0xUqt4//uD97qYDez5OT1geo4sK7i8Vpgspk/oNGNuLxxl5l1klw2DpN0HfCfwN3ABPAo8McRca7a8SuxcZiZWWpWfOOwiLgi6c+A45SXQn6uVrCbmVnz5bbOPSK+Dnw9r/ObmVlthb5C1czMqnO4m5klyOFuZpagtviaPUmXgB83+LJbgJ/k0J1WSGkskNZ4UhoLpDWelMYCSxvPr0dE1QuF2iLcl0LSSK0lQEWT0lggrfGkNBZIazwpjQWaPx6XZczMEuRwNzNLUJHD/cFWd6CJUhoLpDWelMYCaY0npbFAk8dT2Jq7mZnVVuSZu5mZ1VC4cJd0j6QxSecl7Wt1f+oh6XOSLkp6oqLtZkknJD2T3a6qeG4oG9+YpIHW9Lo6SeskfUvSU5LOSfpQ1l7U8bxe0mlJj2fj+UTWXsjxQPmb0CSNSnoke1zksTwn6aykxySNZG2FHI+kHklflvR09u/nd3IdS0QU5g/lTch+CLwJuB54HNjc6n7V0e93Am8Hnqho+ySwL7u/D/jb7P7mbFw3ABuy8Xa1egwV/V4NvD27fxPl3T83F3g8At6Y3e8Gvg+8o6jjyfr458AXgUeK/Hct6+NzwC3z2go5HuAQ8KfZ/euBnjzHUrSZe+5f35eHiPgO8NN5zTso/88mux2saD8cEZcj4lngPOVxt4WIuBARP8ju/xx4ivK3bBV1PBERL2UPu7M/QUHHI2kt8D7goYrmQo5lAYUbj6RfoTzJ+yxARLwcEVPkOJaihfuiX99XILdFxAUoByZwa9ZemDFKWg9spTzbLex4sjLGY8BF4EREFHk8nwY+ArxS0VbUsUD5jfYbks5I2pO1FXE8bwIuAf+UlcweknQjOY6laOG+6Nf3JaAQY5T0RuArwIcj4mcLHVqlra3GExGzEfE2yt8Ytk3SWxY4vG3HI+n9wMWIOFPvS6q0tcVYKmyPiLcD7wHul/TOBY5t5/FcR7k0+48RsRX4BeUyTC3LHkvRwj33r+9bQS9KWg2Q3V7M2tt+jJK6KQf7FyLiaNZc2PHMyX5N/jZwD8Ucz3bgA5Keo1yyvEvS5ynmWACIiMns9iLwVcqliSKOZxwYz34rBPgy5bDPbSxFC/dHgY2SNki6HtgFHGtxn5bqGLA7u78beLiifZekGyRtADYCp1vQv6okiXLd8KmI+FTFU0UdT6+knux+CXgX8DQFHE9EDEXE2ohYT/nfxqmI+CAFHAuApBsl3TR3H3g38AQFHE9E/BfwgqRNWdPdwJPkOZZWf4K8hE+c30t5hcYPgY+1uj919vlLwAVghvI78n3ArwEngWey25srjv9YNr4x4D2t7v+8sfwu5V8P/wN4LPvz3gKP57eA0Ww8TwAfz9oLOZ6KPt7Ja6tlCjkWynXqx7M/5+b+vRd4PG8DRrK/a8PAqjzH4itUzcwSVLSyjJmZ1cHhbmaWIIe7mVmCHO5mZglyuJuZJcjhbmaWIIe7mVmCHO5mZgn6f0X2qANvZ2vIAAAAAElFTkSuQmCC\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"print(probhistv2(agghisto80, agghisto90,SoftPlus))\n",
"#print(probhistv2(agghisto80, agghisto100,Exponentielle_douce))\n",
"print(probhistv2(agghisto90, agghisto100,SoftPlus))\n",
"print(aggmaxprobhistv2(histo80, histo90,SoftPlus))\n",
"#print(aggmaxprobhistv2(histo80, histo100,Exponentielle_douce))\n",
"print(aggmaxprobhistv2(histo90, histo100,SoftPlus))\n",
"plt.scatter(aggmaxprobhistv2(histo90, histo100,SoftPlus, allout=True)[1], agg_vector(histo100))"
]
},
{
"cell_type": "code",
"execution_count": 118,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.0\n",
"0.5097931574638397\n",
"0.04487561414524595\n",
"0.1264339856609415\n"
]
},
{
"data": {
"text/plain": [
"<matplotlib.collections.PathCollection at 0x7f868f867520>"
]
},
"execution_count": 118,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"print(probhistv2(agghisto80g, agghisto90g,SoftPlus))\n",
"#print(probhistv2(agghisto80, agghisto100,Exponentielle_douce))\n",
"print(probhistv2(agghisto90g, agghisto100,SoftPlus))\n",
"print(aggmaxprobhistv2(histo80g, histo90g,SoftPlus))\n",
"#print(aggmaxprobhistv2(histo80, histo100,Exponentielle_douce))\n",
"print(aggmaxprobhistv2(histo90g, histo100,SoftPlus))\n",
"plt.scatter(aggmaxprobhistv2(histo90g, histo100,SoftPlus, allout=True)[1], agg_vector(histo100))"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.5"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment