diff --git a/downloads-generation/models_class1_experiments1/GENERATE.sh b/downloads-generation/models_class1_experiments1/GENERATE.sh
index 50d39f496e7fe929ad577f804b025dbd8f96b1cb..148bd15f360a2806f6dec92c122b102931fdc8e3 100755
--- a/downloads-generation/models_class1_experiments1/GENERATE.sh
+++ b/downloads-generation/models_class1_experiments1/GENERATE.sh
@@ -23,6 +23,8 @@ git status
 
 cd $SCRATCH_DIR/$DOWNLOAD_NAME
 
+ALLELES="HLA-A*01:01 HLA-A*02:01 HLA-A*02:03 HLA-A*02:07 HLA-A*03:01 HLA-A*11:01 HLA-A*24:02 HLA-A*29:02 HLA-A*31:01 HLA-A*68:02 HLA-B*07:02 HLA-B*15:01 HLA-B*35:01 HLA-B*44:02 HLA-B*44:03 HLA-B*51:01 HLA-B*54:01 HLA-B*57:01"
+
 # Standard architecture on quantitative only
 cp $SCRIPT_DIR/hyperparameters-standard.json .
 mkdir models-standard-quantitative
@@ -31,7 +33,8 @@ time mhcflurry-class1-train-allele-specific-models \
     --only-quantitative \
     --hyperparameters hyperparameters-standard.json \
     --out-models-dir models-standard-quantitative \
-    --min-measurements-per-allele 100 &
+    --percent-rank-calibration-num-peptides-per-length 0 \
+    --alleles $ALLELES &
 
 # Model variations on qualitative + quantitative
 for mod in 0local_noL1 0local 1local dense16 dense64 noL1 
@@ -42,7 +45,8 @@ do
         --data "$(mhcflurry-downloads path data_curated)/curated_training_data.csv.bz2" \
         --hyperparameters hyperparameters-${mod}.json \
         --out-models-dir models-${mod} \
-        --min-measurements-per-allele 100 &
+        --percent-rank-calibration-num-peptides-per-length 0 \
+        --alleles $ALLELES &
 done
 wait
 
diff --git a/downloads-generation/models_class1_experiments1/hyperparameters-0local.yaml b/downloads-generation/models_class1_experiments1/hyperparameters-0local.yaml
index d6ddd3d1991f6d69aa6199f045b3798bd39dde1b..bab321573a211027629dff1c9880f9b61dbc0170 100644
--- a/downloads-generation/models_class1_experiments1/hyperparameters-0local.yaml
+++ b/downloads-generation/models_class1_experiments1/hyperparameters-0local.yaml
@@ -1,26 +1,44 @@
-[
-    {
-        "n_models": 12,
-        "max_epochs": 500,
-        "patience": 10,
-        "early_stopping": true,
-        "validation_split": 0.2,
+[{
+##########################################
+# ENSEMBLE SIZE
+##########################################
+"n_models": 8,
 
-        "random_negative_rate": 0.0,
-        "random_negative_constant": 25,
+##########################################
+# OPTIMIZATION
+##########################################
+"max_epochs": 500,
+"patience": 10,
+"early_stopping": true,
+"validation_split": 0.2,
 
-        "use_embedding": false,
-        "kmer_size": 15,
-        "batch_normalization": false,
-        "locally_connected_layers": [],
-        "activation": "relu",
-        "output_activation": "sigmoid",
-        "layer_sizes": [
-            32
-        ],
-        "random_negative_affinity_min": 20000.0,
-        "random_negative_affinity_max": 50000.0,
-        "dense_layer_l1_regularization": 0.001,
-        "dropout_probability": 0.0
-    }
-]
+##########################################
+# RANDOM NEGATIVE PEPTIDES
+##########################################
+"random_negative_rate": 0.0,
+"random_negative_constant": 25,
+"random_negative_affinity_min": 20000.0,
+"random_negative_affinity_max": 50000.0,
+
+##########################################
+# PEPTIDE REPRESENTATION
+##########################################
+# One of "one-hot", "embedding", or "BLOSUM62".
+"peptide_amino_acid_encoding": "BLOSUM62",
+"use_embedding": false,  # maintained for backward compatability
+"kmer_size": 15,
+
+##########################################
+# NEURAL NETWORK ARCHITECTURE
+##########################################
+"locally_connected_layers": [
+],
+"activation": "relu",
+"output_activation": "sigmoid",
+"layer_sizes": [
+    32
+],
+"dense_layer_l1_regularization": 0.001,
+"batch_normalization": false,
+"dropout_probability": 0.0,
+}]
diff --git a/downloads-generation/models_class1_experiments1/hyperparameters-0local_noL1.yaml b/downloads-generation/models_class1_experiments1/hyperparameters-0local_noL1.yaml
index 52fdeee8e3cc8f9fe07fa9f28c562120e715c556..62d506372eeabd6f066e6554fb76d55ebd7d0290 100644
--- a/downloads-generation/models_class1_experiments1/hyperparameters-0local_noL1.yaml
+++ b/downloads-generation/models_class1_experiments1/hyperparameters-0local_noL1.yaml
@@ -1,26 +1,44 @@
-[
-    {
-        "n_models": 12,
-        "max_epochs": 500,
-        "patience": 10,
-        "early_stopping": true,
-        "validation_split": 0.2,
+[{
+##########################################
+# ENSEMBLE SIZE
+##########################################
+"n_models": 8,
 
-        "random_negative_rate": 0.0,
-        "random_negative_constant": 25,
+##########################################
+# OPTIMIZATION
+##########################################
+"max_epochs": 500,
+"patience": 10,
+"early_stopping": true,
+"validation_split": 0.2,
 
-        "use_embedding": false,
-        "kmer_size": 15,
-        "batch_normalization": false,
-        "locally_connected_layers": [],
-        "activation": "relu",
-        "output_activation": "sigmoid",
-        "layer_sizes": [
-            32
-        ],
-        "random_negative_affinity_min": 20000.0,
-        "random_negative_affinity_max": 50000.0,
-        "dense_layer_l1_regularization": 0.0,
-        "dropout_probability": 0.0
-    }
-]
+##########################################
+# RANDOM NEGATIVE PEPTIDES
+##########################################
+"random_negative_rate": 0.0,
+"random_negative_constant": 25,
+"random_negative_affinity_min": 20000.0,
+"random_negative_affinity_max": 50000.0,
+
+##########################################
+# PEPTIDE REPRESENTATION
+##########################################
+# One of "one-hot", "embedding", or "BLOSUM62".
+"peptide_amino_acid_encoding": "BLOSUM62",
+"use_embedding": false,  # maintained for backward compatability
+"kmer_size": 15,
+
+##########################################
+# NEURAL NETWORK ARCHITECTURE
+##########################################
+"locally_connected_layers": [
+],
+"activation": "relu",
+"output_activation": "sigmoid",
+"layer_sizes": [
+    32
+],
+"dense_layer_l1_regularization": 0.0,
+"batch_normalization": false,
+"dropout_probability": 0.0,
+}]
diff --git a/downloads-generation/models_class1_experiments1/hyperparameters-1local.yaml b/downloads-generation/models_class1_experiments1/hyperparameters-1local.yaml
deleted file mode 100644
index dde317fa2e2f1601b71e54629c11c2f8ef660d41..0000000000000000000000000000000000000000
--- a/downloads-generation/models_class1_experiments1/hyperparameters-1local.yaml
+++ /dev/null
@@ -1,32 +0,0 @@
-[
-    {
-        "n_models": 12,
-        "max_epochs": 500,
-        "patience": 10,
-        "early_stopping": true,
-        "validation_split": 0.2,
-
-        "random_negative_rate": 0.0,
-        "random_negative_constant": 25,
-
-        "use_embedding": false,
-        "kmer_size": 15,
-        "batch_normalization": false,
-        "locally_connected_layers": [
-            {
-                "filters": 8,
-                "activation": "tanh",
-                "kernel_size": 3
-            }
-        ],
-        "activation": "relu",
-        "output_activation": "sigmoid",
-        "layer_sizes": [
-            32
-        ],
-        "random_negative_affinity_min": 20000.0,
-        "random_negative_affinity_max": 50000.0,
-        "dense_layer_l1_regularization": 0.001,
-        "dropout_probability": 0.0
-    }
-]
diff --git a/downloads-generation/models_class1_experiments1/hyperparameters-2local.yaml b/downloads-generation/models_class1_experiments1/hyperparameters-2local.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..128355604a568fcf791e31d348d9a53f11ee5c14
--- /dev/null
+++ b/downloads-generation/models_class1_experiments1/hyperparameters-2local.yaml
@@ -0,0 +1,54 @@
+[{
+##########################################
+# ENSEMBLE SIZE
+##########################################
+"n_models": 8,
+
+##########################################
+# OPTIMIZATION
+##########################################
+"max_epochs": 500,
+"patience": 10,
+"early_stopping": true,
+"validation_split": 0.2,
+
+##########################################
+# RANDOM NEGATIVE PEPTIDES
+##########################################
+"random_negative_rate": 0.0,
+"random_negative_constant": 25,
+"random_negative_affinity_min": 20000.0,
+"random_negative_affinity_max": 50000.0,
+
+##########################################
+# PEPTIDE REPRESENTATION
+##########################################
+# One of "one-hot", "embedding", or "BLOSUM62".
+"peptide_amino_acid_encoding": "BLOSUM62",
+"use_embedding": false,  # maintained for backward compatability
+"kmer_size": 15,
+
+##########################################
+# NEURAL NETWORK ARCHITECTURE
+##########################################
+"locally_connected_layers": [
+    {
+        "filters": 8,
+        "activation": "tanh",
+        "kernel_size": 3
+    },
+    {
+        "filters": 8,
+        "activation": "tanh",
+        "kernel_size": 3
+    }
+],
+"activation": "relu",
+"output_activation": "sigmoid",
+"layer_sizes": [
+    32
+],
+"dense_layer_l1_regularization": 0.001,
+"batch_normalization": false,
+"dropout_probability": 0.0,
+}]
diff --git a/downloads-generation/models_class1_experiments1/hyperparameters-dense16.yaml b/downloads-generation/models_class1_experiments1/hyperparameters-dense16.yaml
index c25383f5428ffef261b11bc3041a5d7481983018..b7e4ee4400db4b15cf863da0b0456bc75f4b665f 100644
--- a/downloads-generation/models_class1_experiments1/hyperparameters-dense16.yaml
+++ b/downloads-generation/models_class1_experiments1/hyperparameters-dense16.yaml
@@ -1,37 +1,49 @@
-[
-    {
-        "n_models": 12,
-        "max_epochs": 500,
-        "patience": 10,
-        "early_stopping": true,
-        "validation_split": 0.2,
+[{
+##########################################
+# ENSEMBLE SIZE
+##########################################
+"n_models": 8,
+
+##########################################
+# OPTIMIZATION
+##########################################
+"max_epochs": 500,
+"patience": 10,
+"early_stopping": true,
+"validation_split": 0.2,
 
-        "random_negative_rate": 0.0,
-        "random_negative_constant": 25,
+##########################################
+# RANDOM NEGATIVE PEPTIDES
+##########################################
+"random_negative_rate": 0.0,
+"random_negative_constant": 25,
+"random_negative_affinity_min": 20000.0,
+"random_negative_affinity_max": 50000.0,
 
-        "use_embedding": false,
-        "kmer_size": 15,
-        "batch_normalization": false,
-        "locally_connected_layers": [
-            {
-                "filters": 8,
-                "activation": "tanh",
-                "kernel_size": 3
-            },
-            {
-                "filters": 8,
-                "activation": "tanh",
-                "kernel_size": 3
-            }
-        ],
-        "activation": "relu",
-        "output_activation": "sigmoid",
-        "layer_sizes": [
-            16
-        ],
-        "random_negative_affinity_min": 20000.0,
-        "random_negative_affinity_max": 50000.0,
-        "dense_layer_l1_regularization": 0.001,
-        "dropout_probability": 0.0
+##########################################
+# PEPTIDE REPRESENTATION
+##########################################
+# One of "one-hot", "embedding", or "BLOSUM62".
+"peptide_amino_acid_encoding": "BLOSUM62",
+"use_embedding": false,  # maintained for backward compatability
+"kmer_size": 15,
+
+##########################################
+# NEURAL NETWORK ARCHITECTURE
+##########################################
+"locally_connected_layers": [
+    {
+        "filters": 8,
+        "activation": "tanh",
+        "kernel_size": 3
     }
-]
+],
+"activation": "relu",
+"output_activation": "sigmoid",
+"layer_sizes": [
+    16
+],
+"dense_layer_l1_regularization": 0.001,
+"batch_normalization": false,
+"dropout_probability": 0.0,
+}]
diff --git a/downloads-generation/models_class1_experiments1/hyperparameters-dense64.yaml b/downloads-generation/models_class1_experiments1/hyperparameters-dense64.yaml
index e54f47b837927211e98e6e3b4810356c9d5d7b49..c63c399d22913e7ae9c1efb744d18c75ce5bf6b9 100644
--- a/downloads-generation/models_class1_experiments1/hyperparameters-dense64.yaml
+++ b/downloads-generation/models_class1_experiments1/hyperparameters-dense64.yaml
@@ -1,37 +1,49 @@
-[
-    {
-        "n_models": 12,
-        "max_epochs": 500,
-        "patience": 10,
-        "early_stopping": true,
-        "validation_split": 0.2,
+[{
+##########################################
+# ENSEMBLE SIZE
+##########################################
+"n_models": 8,
+
+##########################################
+# OPTIMIZATION
+##########################################
+"max_epochs": 500,
+"patience": 10,
+"early_stopping": true,
+"validation_split": 0.2,
 
-        "random_negative_rate": 0.0,
-        "random_negative_constant": 25,
+##########################################
+# RANDOM NEGATIVE PEPTIDES
+##########################################
+"random_negative_rate": 0.0,
+"random_negative_constant": 25,
+"random_negative_affinity_min": 20000.0,
+"random_negative_affinity_max": 50000.0,
 
-        "use_embedding": false,
-        "kmer_size": 15,
-        "batch_normalization": false,
-        "locally_connected_layers": [
-            {
-                "filters": 8,
-                "activation": "tanh",
-                "kernel_size": 3
-            },
-            {
-                "filters": 8,
-                "activation": "tanh",
-                "kernel_size": 3
-            }
-        ],
-        "activation": "relu",
-        "output_activation": "sigmoid",
-        "layer_sizes": [
-            64
-        ],
-        "random_negative_affinity_min": 20000.0,
-        "random_negative_affinity_max": 50000.0,
-        "dense_layer_l1_regularization": 0.001,
-        "dropout_probability": 0.0
+##########################################
+# PEPTIDE REPRESENTATION
+##########################################
+# One of "one-hot", "embedding", or "BLOSUM62".
+"peptide_amino_acid_encoding": "BLOSUM62",
+"use_embedding": false,  # maintained for backward compatability
+"kmer_size": 15,
+
+##########################################
+# NEURAL NETWORK ARCHITECTURE
+##########################################
+"locally_connected_layers": [
+    {
+        "filters": 8,
+        "activation": "tanh",
+        "kernel_size": 3
     }
-]
+],
+"activation": "relu",
+"output_activation": "sigmoid",
+"layer_sizes": [
+    64
+],
+"dense_layer_l1_regularization": 0.001,
+"batch_normalization": false,
+"dropout_probability": 0.0,
+}]
diff --git a/downloads-generation/models_class1_experiments1/hyperparameters-noL1.yaml b/downloads-generation/models_class1_experiments1/hyperparameters-noL1.yaml
index d4e1a4b5832808ab60473340d9659ffbdbd5865e..5b046c9a6a19007a9533d5b7a77b498aa1448cff 100644
--- a/downloads-generation/models_class1_experiments1/hyperparameters-noL1.yaml
+++ b/downloads-generation/models_class1_experiments1/hyperparameters-noL1.yaml
@@ -1,37 +1,49 @@
-[
-    {
-        "n_models": 12,
-        "max_epochs": 500,
-        "patience": 10,
-        "early_stopping": true,
-        "validation_split": 0.2,
+[{
+##########################################
+# ENSEMBLE SIZE
+##########################################
+"n_models": 8,
+
+##########################################
+# OPTIMIZATION
+##########################################
+"max_epochs": 500,
+"patience": 10,
+"early_stopping": true,
+"validation_split": 0.2,
 
-        "random_negative_rate": 0.0,
-        "random_negative_constant": 25,
+##########################################
+# RANDOM NEGATIVE PEPTIDES
+##########################################
+"random_negative_rate": 0.0,
+"random_negative_constant": 25,
+"random_negative_affinity_min": 20000.0,
+"random_negative_affinity_max": 50000.0,
 
-        "use_embedding": false,
-        "kmer_size": 15,
-        "batch_normalization": false,
-        "locally_connected_layers": [
-            {
-                "filters": 8,
-                "activation": "tanh",
-                "kernel_size": 3
-            },
-            {
-                "filters": 8,
-                "activation": "tanh",
-                "kernel_size": 3
-            }
-        ],
-        "activation": "relu",
-        "output_activation": "sigmoid",
-        "layer_sizes": [
-            32
-        ],
-        "random_negative_affinity_min": 20000.0,
-        "random_negative_affinity_max": 50000.0,
-        "dense_layer_l1_regularization": 0.0,
-        "dropout_probability": 0.0
+##########################################
+# PEPTIDE REPRESENTATION
+##########################################
+# One of "one-hot", "embedding", or "BLOSUM62".
+"peptide_amino_acid_encoding": "BLOSUM62",
+"use_embedding": false,  # maintained for backward compatability
+"kmer_size": 15,
+
+##########################################
+# NEURAL NETWORK ARCHITECTURE
+##########################################
+"locally_connected_layers": [
+    {
+        "filters": 8,
+        "activation": "tanh",
+        "kernel_size": 3
     }
-]
+],
+"activation": "relu",
+"output_activation": "sigmoid",
+"layer_sizes": [
+    32
+],
+"dense_layer_l1_regularization": 0.0,
+"batch_normalization": false,
+"dropout_probability": 0.0,
+}]