Contributing multiple very similar models

To easily contribute model groups with multiple models of the same kind, you can specify two files describing all the models:

  • model-template.yaml - template for model.yaml
  • models.tsv - tab-separated files holding custom model variables

First few lines of model-template.yaml:

type: keras
    url: {{ args_arch_url }}
    md5: {{ args_arch_md5 }}
    url: {{ args_weights_url }}
    md5: {{ args_weights_md5 }} 

First few lines of models.tsv:

model   args_arch   args_weights    args_arch_md5   args_weights_md5    args_arch_url   args_weights_url
A549_ENCSR000DDI    model_files/A549_ENCSR000DDI.json   model_files/A549_ENCSR000DDI.h5 6d3a971ce766128ca444dd70ef76df70    f23198b146ad8e4d6755cb215fe75e0f
BE2C_ENCSR000DEB    model_files/BE2C_ENCSR000DEB.json   model_files/BE2C_ENCSR000DEB.h5 919b2f7f675bebb9217d95021d92af74    159ea3cb7985c08eab8f64151eb1799e
BJ_ENCSR000DEA  model_files/BJ_ENCSR000DEA.json model_files/BJ_ENCSR000DEA.h5   6d3a971ce766128ca444dd70ef76df70    9ad8797caff0dd0e8274de6befded4e7
CMK_ENCSR000DGJ model_files/CMK_ENCSR000DGJ.json    model_files/CMK_ENCSR000DGJ.h5  6d3a971ce766128ca444dd70ef76df70    d5c0c9dd55f1056036cc300ec1f61e1d

One row in models.tsv will represent a single model and will be used to populate model-template.yaml and construct model.yaml using Jinja2 templating language. This allows you to even write if statements in model-template.yaml. See CpGenie model as an example.