Commit cf3749d3 authored by Thonier Florian's avatar Thonier Florian

fuse.py; compute distribution directly at the json load

link to #3902
parent 722bafee
......@@ -362,8 +362,24 @@ class ListWindows(VidjilJson):
self.id_lengths = defaultdict(int)
print("%%")
nb_sample = self.d["samples"].d["number"]
self.d["distribution"] = {}
for filename in self.d["samples"].d["original_names"]:
self.d["distribution"][filename] = [{"axes":["lenNt"],"values":[defaultdict(lambda:[0,0])] * nb_sample}]
for clone in self:
self.id_lengths[len(clone.d['id'])] += 1
try:
lenNt = len(clone.d["sequence"])
except:
lenNt = 0
for t in range(nb_sample):
filename = self.d["samples"].d["original_names"][t]
# print( filename )
nb_reads = clone.d["reads"][t]
self.d["distribution"][filename][0]["values"][t][lenNt][0] += 1
self.d["distribution"][filename][0]["values"][t][lenNt][1] += nb_reads
print ("%% lengths .vidjil -> ", self.id_lengths)
try:
print("%% run_v ->", self.d["samples"].d["producer"], self.d["samples"].d["run_timestamp"])
......
  • Je me suis peut-être mal exprimé dans mon précédent commentaire 61e9b25e (comment 202035) : je voyais une opération juste après le chargement, appelable tout en bas et similaire à += .getTop(), pour qu'on puisse le débrayer facilement. Après tu peux mettre aussi un switch pour contrôler, mais c'est bizarre que ce ne soit pas comme le calcul du f principal.

    Ce qui me gène aussi est le fait qu'on touche directement à self.d, on s'éloigne de la sémantique de init_data, on est vraiment dans du calcul ici. Je continue à penser qu'une fonction append_distribution(distribution, jlist) qui "augmente" distribution des clones de jlist (éventuellement avec un top) serait plus modulaire (et donc aussi plus facile à tester/documenter...).

  • On n'en a pas reparlé directement hier, mais cette MR à finaliser est importante pour stats comme pour le Genescan gris.

Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment