Giter Club home page Giter Club logo

ecm-frontendserver's People

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

Forkers

etnalubma

ecm-frontendserver's Issues

[MEDIUM] CSV Output Processing

Para cualquier modelo que elija el usuario, además de generarse el gráfico de las curvas y el csv, hay 3 variables que deberían calcularse a partir del csv:

1- Número de infectados en el pico
2- Tiempo del pico de infectados
3- Número de infectados totales

1-
El número de infectados en el pico corresponde al mayor valor calculado para el compartimento I durante toda la simulación. Para los modelos donde cada compartimento (S, E, I, R) está separado en 2 (SIR-HL, SIR-HLalfa, SEIR-HL, SEIR-HLalfa) o en 5 sub-poblaciones (SEIR-5G), esta variable debe obtenerse de la columna suma I

Ejemplo con SEIR-5G:
image

2-
El tiempo del pico de infectados es el tiempo que corresponde al número de infectados en el pico

Ejemplo con SEIR-5G:
image

3-
El número de infectados totales puede obtenerse como el mayor valor que alcanza R durante toda la simulación. Como R aumenta asintóticamente, tomemos como punto de corte el tiempo en que I llega a ser menor a 0,5.

Ejemplo con SEIR-5G:
image

OUTPUT:
Las tres variables pueden presentarse en un cuadro con un formato como el siguiente (redondear a números enteros):
image

Ejemplo con SEIR-5G:
image

CONSIDERACIONES:

  • Es posible que para algunas simulaciones, dependiendo de los parámetros y condiciones iniciales, no haya un pico de infectados, sino que I descienda monótonamente a partir del valor inicial. En ese caso esto debería reflejarse en el output de la siguiente manera:

image

  • Si el usuario elige una duración muy corta para la simulación, de manera que la epidemia no llegue a terminar, las variables calculadas no van a tener sentido. Por ahora podemos dejar que el usuario se dé cuenta solo al mirar el gráfico, o agregar una advertencia como "Verifique en el gráfico que el tiempo de la simulación haya sido suficiente"
    image

Add extra graphs to plot

[9:01, 20/5/2020] Daniel Gutson: En la respuesta de Daniel hay un nuevo feature request: la capacidad de agregar curvas que no participan de las ecuaciones diferenciales, sino que son en funcion de lo que se calcula, por ejemplo lo que él pide. Algo así como extra_graphs: "S+I" o algo así
[9:01, 20/5/2020] Daniel Gutson: (extra_graphs sería un array de expresiones)

Config breaks simulation

{
    "duration" : 180,
    "runs" : 1,
    "samples" : 180,
    "solver" : "R",
    "output" : {
        "headers" : true
    },
    "tau-leaping" : {
        "epsilon" : 0.01
    },
    "r-leaping" : {}
}

Docs

README, Credits, licence, MANTAINERS, contributing. etc

[HIGH] Remove number of individuals (NG1, NG2, ...) from parameters

image

El usuario no debería ingresar el número total de individuos por grupo en "Params" (Ng1, Ng2, ...), porque ya los ingresó indirectamente en "Initial conditions" (Ng1 = Sg1 + Eg1 + Eg1 + Rg1, Ng2 = Sg2 + Eg2 + Eg2 + Rg2, ...).

En "Params sólo deberían estar p, gama, sigma y los números de contacto por grupo (Cg1, Cg2, ...)

[HIGH] Ro Calculator

Habría que agregar una "solapa" que contenga la siguiente hoja de cálculo (implementada de la manera más conveniente):

Calculadora Ro.xlsx

La idea es que el usuario sólo pueda ingresar números en las celdas que figuran en blanco. Los valores por default sean cero.

Esta hoja de cálculo debería ser independiente de la elección de modelos, por ejemplo, podría accederse como en la siguiente imagen:

Ro Calculator

[HIGH] Contact Matrix Model

Modelo SEIR con 𝑛 subpoblaciones, 𝜆𝑖 es la fuerza de infección para los susceptibles de la subpoblación 𝑖 (𝑆𝑖), que es la sumatoria de 𝜆𝑖𝑗, las fuerzas de infección para 𝑆𝑖 con los infectados de cada subpoblación 𝑗. A su vez 𝜆𝑖𝑗 es el producto de la tasa de contactos efectivos (𝛽𝑖𝑗, que es a su vez el producto de la tasa de contactos 𝑐𝑖𝑗 y la probabilidad de transmisión por contacto 𝑝𝑖𝑗) y la proporción de infectados 𝑗 en la población. 𝑃 y 𝐶 son las matrices de probabilidades de transmisión y de tasas de contacto, respectivamente. Ambas matrices son simétricas (𝑝𝑖𝑗 = 𝑝𝑗𝑖 y 𝑐𝑖𝑗 = 𝑐𝑗𝑖).

image

En el caso de 𝑛=2, sería un SEIR-HL con matriz de contacto, y en caso 𝑛=5, sería un SEIR-5G con matriz de contacto.

El input del usuario sería el mismo que en el SEIR-HL y SEIR-5G ya implementados pero en lugar de dar un valor único de 𝑝 debe llenar una matriz de probabilidades de transmisión (𝑃) y en lugar de dar un único valor de 𝑐 para cada subpoblación, debe llenar una matriz de tasas de contactos (𝐶).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.