X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=forester%2Fjava%2Fsrc%2Forg%2Fforester%2Fapplication%2Fcheck_fasta.java;h=dd312e845659164cc32e2dfa63b6c269c3e9ccfa;hb=91d1f3e69ae616d45f4f2f421cbb436aaccc7cfc;hp=2bac934259c626d369b0ac339d9593fc0180a10d;hpb=e8890012b315b30af8bf6c90db6e800b7d046147;p=jalview.git diff --git a/forester/java/src/org/forester/application/check_fasta.java b/forester/java/src/org/forester/application/check_fasta.java index 2bac934..dd312e8 100644 --- a/forester/java/src/org/forester/application/check_fasta.java +++ b/forester/java/src/org/forester/application/check_fasta.java @@ -96,10 +96,15 @@ public final class check_fasta { try { final List seqs = FastaParser.parse( new FileInputStream( infile ) ); final Map names = new HashMap(); + int duplicates = 0; for( final Sequence seq : seqs ) { - procSeq( infile.toString(), names, seq ); + if ( procSeq( infile.toString(), names, seq ) ) { + ++duplicates; + } + } + if ( duplicates > 0 ) { + SequenceWriter.writeSeqs( seqs, outfile, SEQ_FORMAT.FASTA, 60 ); } - SequenceWriter.writeSeqs( seqs, outfile, SEQ_FORMAT.FASTA, 60 ); } catch ( final IOException e ) { ForesterUtil.fatalError( PRG_NAME, e.getMessage() ); @@ -107,17 +112,20 @@ public final class check_fasta { } } - private static void procSeq( final String infile, final Map names, final Sequence seq ) { + private static boolean procSeq( final String infile, final Map names, final Sequence seq ) { + boolean duplicate = false; final String name = seq.getIdentifier(); if ( !names.containsKey( name ) ) { names.put( name, ( short ) 1 ); } else { + duplicate = true; final short i = names.get( name ); ( ( BasicSequence ) seq ).setIdentifier( name + "_" + i ); names.put( name, ( short ) ( i + 1 ) ); - System.out.println( " " + infile + i + ": " + seq.getIdentifier() ); + System.out.println( " " + infile + " " + i + ": " + seq.getIdentifier() ); } + return duplicate; } private static void argumentsError() {