diff --git a/load-from-url.html b/load-from-url.html
index 62cb1fe..d17f83d 100644
--- a/load-from-url.html
+++ b/load-from-url.html
@@ -7,15 +7,15 @@
@@ -33,7 +33,7 @@
height: 600,
mapFileURL: document.getElementById('mapfile').value,
genotypeFileURL: document.getElementById('genofile').value,
- phenotypeFileURL: document.getElementById('phenofile').value,
+ featureFileURL: document.getElementById('featurefile').value,
});
return false;
});
diff --git a/src/flapjack-bytes.js b/src/flapjack-bytes.js
index b066e9f..0a7e8e5 100644
--- a/src/flapjack-bytes.js
+++ b/src/flapjack-bytes.js
@@ -935,11 +935,11 @@ export default function GenotypeRenderer() {
clearParent(config.domParent);
createRendererComponents(config, true);
- let mapFile, genotypeFile, phenotypeFile;
+ let mapFile, genotypeFile, phenotypeFile, featureFile;
let germplasmData;
let loadingPromises = [];
- let mapLoaded = 0, genotypeLoaded = 0, phenotypeLoaded = 0;
- let mapSize = 0, genotypeSize = 0, phenotypeSize = 0;
+ let mapLoaded = 0, genotypeLoaded = 0, phenotypeLoaded = 0, featureLoaded = 0;
+ let mapSize = 0, genotypeSize = 0, phenotypeSize = 0, featureSize = 0;
setProgressBarLabel("Downloading data...");
setAdvancement(0);
@@ -951,7 +951,7 @@ export default function GenotypeRenderer() {
if (progressEvent.lengthComputable){
mapLoaded = progressEvent.loaded;
mapSize = progressEvent.total;
- setAdvancement((mapLoaded + genotypeLoaded + phenotypeLoaded) / (mapSize + genotypeSize + phenotypeSize));
+ setAdvancement((mapLoaded + genotypeLoaded + phenotypeLoaded + featureLoaded) / (mapSize + genotypeSize + phenotypeSize +featureSize));
}
}
}).then((response) => {
@@ -970,7 +970,7 @@ export default function GenotypeRenderer() {
if (progressEvent.lengthComputable){
phenotypeLoaded = progressEvent.loaded;
phenotypeSize = progressEvent.total;
- setAdvancement((mapLoaded + genotypeLoaded + phenotypeLoaded) / (mapSize + genotypeSize + phenotypeSize));
+ setAdvancement((mapLoaded + genotypeLoaded + phenotypeLoaded + featureLoaded) / (mapSize + genotypeSize + phenotypeSize +featureSize));
}
}
}).then((response) => {
@@ -982,13 +982,32 @@ export default function GenotypeRenderer() {
loadingPromises.push(phenotypePromise);
}
+ if (config.featureFileURL){
+ let featurePromise = axios.get(config.featureFileURL, {
+ headers: { 'Content-Type': 'text/plain' },
+ onDownloadProgress: function (progressEvent){
+ if (progressEvent.lengthComputable){
+ featureLoaded = progressEvent.loaded;
+ featureSize = progressEvent.total;
+ setAdvancement((mapLoaded + genotypeLoaded + phenotypeLoaded + featureLoaded) / (mapSize + genotypeSize + phenotypeSize + featureSize));
+ }
+ }
+ }).then((response) => {
+ featureFile = response.data;
+ }).catch((error) => {
+ console.error(error);
+ });
+
+ loadingPromises.push(featurePromise);
+ }
+
let genotypePromise = axios.get(config.genotypeFileURL, {
headers: { 'Content-Type': 'text/plain' },
onDownloadProgress: function (progressEvent){
if (progressEvent.lengthComputable){
genotypeLoaded = progressEvent.loaded;
genotypeSize = progressEvent.total;
- setAdvancement((mapLoaded + genotypeLoaded + phenotypeLoaded) / (mapSize + genotypeSize + phenotypeSize));
+ setAdvancement((mapLoaded + genotypeLoaded + phenotypeLoaded + featureLoaded) / (mapSize + genotypeSize + phenotypeSize +featureSize));
}
else
setProgressBarLabel("Downloading genotype file... " + formatFileSize(progressEvent.loaded));
@@ -1009,6 +1028,14 @@ export default function GenotypeRenderer() {
genomeMap = mapImporter.parseFile(mapFile);
}
+ setAdvancement(0);
+ setProgressBarLabel("Processing the features...");
+
+ if (featureFile !== undefined) {
+ const featureImporter = new FeatureImporter();
+ genomeFeatures = featureImporter.parseFile(featureFile, genomeMap);
+ }
+
setAdvancement(0);
setProgressBarLabel("Processing the phenotypes...");