X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=forester%2Fjava%2Fsrc%2Forg%2Fforester%2Fio%2Fwriters%2FSequenceWriter.java;h=ddcb378f16c43f06311ac32deb38b17f2f56ee95;hb=e8890012b315b30af8bf6c90db6e800b7d046147;hp=b4135d1e7e9291b2d14b3614607cbd048da32b3e;hpb=48f7a89be9d34f1930a1f863e608235cc27184c5;p=jalview.git diff --git a/forester/java/src/org/forester/io/writers/SequenceWriter.java b/forester/java/src/org/forester/io/writers/SequenceWriter.java index b4135d1..ddcb378 100644 --- a/forester/java/src/org/forester/io/writers/SequenceWriter.java +++ b/forester/java/src/org/forester/io/writers/SequenceWriter.java @@ -1,11 +1,11 @@ package org.forester.io.writers; +import java.io.File; import java.io.IOException; import java.io.Writer; import java.util.List; -import org.forester.sequence.BasicSequence; import org.forester.sequence.Sequence; import org.forester.util.ForesterUtil; @@ -15,41 +15,30 @@ public class SequenceWriter { FASTA; } - public static void main( final String[] args ) { - final Sequence s = BasicSequence.createAaSequence( "name", "abcdefghiiklmnap" ); - System.out.println( s.toString() ); - System.out.println( SequenceWriter.toFasta( s, 0 ).toString() ); - System.out.println( SequenceWriter.toFasta( s, 5 ).toString() ); - System.out.println( SequenceWriter.toFasta( s, 8 ).toString() ); - System.out.println( SequenceWriter.toFasta( s, 4 ).toString() ); - System.out.println( SequenceWriter.toFasta( s, 3 ).toString() ); - System.out.println( SequenceWriter.toFasta( s, 2 ).toString() ); - System.out.println( SequenceWriter.toFasta( s, 1 ).toString() ); - System.out.println( SequenceWriter.toFasta( s, 100 ).toString() ); - System.out.println( SequenceWriter.toFasta( s, 15 ).toString() ); - System.out.println( SequenceWriter.toFasta( s, 16 ).toString() ); + public static StringBuilder toFasta( final Sequence seq, final int width ) { + return toFasta( seq.getIdentifier(), seq.getMolecularSequenceAsString(), width ); } - public static StringBuilder toFasta( final Sequence seq, final int width ) { + public static StringBuilder toFasta( final String name, final String mol_seq, final int width ) { final StringBuilder sb = new StringBuilder(); sb.append( ">" ); - sb.append( seq.getIdentifier().toString() ); + sb.append( name ); sb.append( ForesterUtil.LINE_SEPARATOR ); - if ( ( width < 1 ) || ( width >= seq.getLength() ) ) { - sb.append( seq.getMolecularSequence() ); + if ( ( width < 1 ) || ( width >= mol_seq.length() ) ) { + sb.append( mol_seq ); } else { - final int lines = seq.getLength() / width; - final int rest = seq.getLength() - ( lines * width ); + final int lines = mol_seq.length() / width; + final int rest = mol_seq.length() - ( lines * width ); for( int i = 0; i < lines; ++i ) { - sb.append( seq.getMolecularSequence(), i * width, width ); + sb.append( mol_seq, i * width, ( i + 1 ) * width ); if ( i < ( lines - 1 ) ) { sb.append( ForesterUtil.LINE_SEPARATOR ); } } if ( rest > 0 ) { sb.append( ForesterUtil.LINE_SEPARATOR ); - sb.append( seq.getMolecularSequence(), lines * width, rest ); + sb.append( mol_seq, lines * width, mol_seq.length() ); } } return sb; @@ -78,6 +67,13 @@ public class SequenceWriter { } } + public static void writeSeqs( final List seqs, final File file, final SEQ_FORMAT format, final int width ) + throws IOException { + final Writer w = ForesterUtil.createBufferedWriter( file ); + SequenceWriter.writeSeqs( seqs, w, format, width ); + w.close(); + } + public static void writeSeqs( final List seqs, final Writer writer, final SEQ_FORMAT format,