public Nuccore(GenomeData gen) throws Exception { if (nb_proc > 4) { nb_proc = 4; } int used_core = 0; NuccoreProcessThread[] npts = new NuccoreProcessThread[nb_proc]; listErr = new ArrayList<Erreur>(); if (gen.chromosomes.size() > 0) { w.add_to_log("Analysis of chromosomes..."); npts[used_core] = new NuccoreProcessThread(gen.chromosomes, gen.name, gen.path, "chromosomes", listErr); npts[used_core].start(); used_core++; } if (used_core >= nb_proc) { for (int i = 0; i < used_core; i++) { try { npts[i].join(); } catch (InterruptedException ie) { } } used_core = 0; } if (gen.mitochondrions.size() > 0) { w.add_to_log("Analysis of mitochondrions..."); npts[used_core] = new NuccoreProcessThread( gen.mitochondrions, gen.name, gen.path, "mitochondrions", listErr); npts[used_core].start(); used_core++; } if (used_core >= nb_proc) { for (int i = 0; i < used_core; i++) { try { npts[i].join(); } catch (InterruptedException ie) { } } used_core = 0; } if (gen.plasmids.size() > 0) { w.add_to_log("Analysis of plasmids..."); npts[used_core] = new NuccoreProcessThread(gen.plasmids, gen.name, gen.path, "plasmids", listErr); npts[used_core].start(); used_core++; } if (used_core >= nb_proc) { for (int i = 0; i < used_core; i++) { try { npts[i].join(); } catch (InterruptedException ie) { } } used_core = 0; } if (gen.chloroplasts.size() > 0) { w.add_to_log("Analysis of chloroplasts..."); npts[used_core] = new NuccoreProcessThread(gen.chloroplasts, gen.name, gen.path, "chloroplasts", listErr); npts[used_core].start(); used_core++; } for (int i = 0; i < used_core; i++) { try { npts[i].join(); } catch (InterruptedException ie) { } } } // Nuccore