private void computeTax2SpeciesMapRec(final Node v,int speciesId,final IntIntMap taxId2SpeciesId,final ProgressListener progress) throws CanceledException {
  final int taxId=(Integer)v.getInfo();
  if (speciesId == 0) {
    if (name2IdMap.getRank(taxId) == TaxonomicLevels.getSpeciesId()) {
      speciesId=taxId;
      taxId2SpeciesId.put(taxId,speciesId);
    }
  }
 else   taxId2SpeciesId.put(taxId,speciesId);
  for (Edge e=v.getFirstOutEdge(); e != null; e=v.getNextOutEdge(e))   computeTax2SpeciesMapRec(e.getTarget(),speciesId,taxId2SpeciesId,progress);
  progress.incrementProgress();
}

private void computeTax2SpeciesMapRec ( final Node v , int speciesId , final IntIntMap taxId2SpeciesId , final ProgressListener progress ) throws CanceledException { final int taxId = ( Integer ) v . getInfo ( ) ; if ( speciesId == 0 ) { if ( name2IdMap . getRank ( taxId ) == TaxonomicLevels . getSpeciesId ( ) ) { speciesId = taxId ; taxId2SpeciesId . put ( taxId , speciesId ) ; } } else taxId2SpeciesId . put ( taxId , speciesId ) ; for ( Edge e = v . getFirstOutEdge ( ) ; e != null ; e = v . getNextOutEdge ( e ) ) computeTax2SpeciesMapRec ( e . getTarget ( ) , speciesId , taxId2SpeciesId , progress ) ; progress . incrementProgress ( ) ; }
recursively compute the taxon - id to species - id map
