Advertisement
Danny_Berova

03.DNAEx

Oct 10th, 2018
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function calcGenes(input) {
  2.     let pattern = /([a-z!@#$?]+)=([\d]+)--([\d]+)<<([a-z]+)/g;
  3.     let organismos = new Map();
  4.     let exec;
  5.     for (let line of input) {
  6.         while(exec = pattern.exec(line)) {
  7.            let geneName = exec[1].replace(/[!@#$?]/g, '');
  8.            let nameLength = exec[2];
  9.            let countOfGenes = exec[3];
  10.            let organism = exec[4];
  11.            if(geneName && nameLength && countOfGenes && organism && geneName.length === +nameLength) {
  12.                 if(!organismos.has(organism)) {
  13.                     organismos.set(organism, 0)
  14.                 }
  15.                 let sum = organismos.get(organism)
  16.                 organismos.set(organism, sum + +countOfGenes)
  17.            }
  18.         }
  19.     }
  20.     let result = [];
  21.     let sortedOrganismos = Array.from(organismos.keys())
  22.     .sort((k1, k2) => {
  23.         return organismos.get(k2) - organismos.get(k1);
  24.     })
  25.  
  26.     for (let key of sortedOrganismos) {
  27.         result.push(`${key} has genome size of ${organismos.get(key)}`);
  28.     }
  29.     return result.join('\n');
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement