Changeset 944 for js/human_3d_alignment/src
- Timestamp:
- 06/05/20 17:27:32 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
js/human_3d_alignment/src/utils/genotypes.js
r911 r944 30 30 rawFile.onload = (e) => { 31 31 if (rawFile.readyState === 4) { 32 if (rawFile.status === 200 ) {33 this.readGenotypesFromText(rawFile.responseText);32 if (rawFile.status === 200 || rawFile.status === 0) { 33 this.readGenotypesFromGenotypeLoader(rawFile.responseText); 34 34 } else { 35 35 console.error(rawFile.statusText); … … 44 44 45 45 /** 46 * Read genotypes from text read from genotypes.gen. TODO mk> This function should be removed; use SDK functionality instead for reliable parsing.46 * Read genotypes from text read from genotypes.gen. 47 47 * @param {string} text 48 48 */ 49 readGenotypesFromText(text) { 50 let textTable = text.split('org:\n'); 51 let i = 1; 52 while (i < textTable.length) { 53 let lines = textTable[i].split('\n'); 54 if (lines[0].includes('name:')) { 55 let j = 0; 56 let gen = ''; 57 let name = ''; 58 let id = ''; 59 while (j < lines.length) { 60 if (lines[j].includes('name:')) { 61 name += lines[j].split(':')[1]; 62 } else if (lines[j].includes('genotype:')) { 63 gen += lines[j].replace('genotype:', ''); 64 let k = j + 1; 65 while (!lines[k].includes('info_timestamp:')) { 66 if (lines[k] != '\n') { 67 gen += ' ' + lines[k]; 68 } else { 69 gen += ' ' 70 } 71 k++; 72 } 73 gen = gen.split('~').join(''); 74 } else if (lines[j].includes('num:')) { 75 id += lines[j].split(':')[1]; 76 } 77 j++; 78 } 79 if (!gen.includes('//0')) { 80 this.name.push(name); 81 this.genotype.push(gen); 82 this.id.push(id); 83 } 84 } 49 readGenotypesFromGenotypeLoader(text) { 50 let textStringFile = new Module.StringFILE2(text, 0); 51 let genotypeLoader = new Module.GenotypeMiniLoader(textStringFile); 52 let loaded = genotypeLoader.loadNextGenotype(); 53 let i = 0; 54 while (loaded.genotype.c_str()!="") 55 { 56 this.name.push(loaded.name.c_str()); 57 this.genotype.push(loaded.genotype.c_str()); 58 this.id.push(i); 59 i++; 85 60 86 i++;61 loaded = genotypeLoader.loadNextGenotype(); 87 62 } 88 63 this.loaded = true; 89 64 this.parent.start(); 90 65 } 91 92 66 } 93 67
Note: See TracChangeset
for help on using the changeset viewer.