<%@ page import="java.io.*,java.util.*,java.net.*,javax.servlet.http.*,javax.servlet.jsp.*" %> <%@ page import="iubio.readseq.*,iubio.bioseq.*" %> <%! ///////////// static/global code ////////////////// // readseq.jsp // using http://iubio.bio.indiana.edu/soft/molbio/readseq/java/readseq.jar // readseq-2.1.23 patched to work inside servlets (ClassLoader issue) String TEST_SEQ="http://iubio.bio.indiana.edu/soft/molbio/readseq/java/test-seq.gb"; String HOME_URL="http://iubio.bio.indiana.edu/soft/molbio/readseq/java/"; BioseqRecord testSeq() throws Exception { Bioseq seq = new Bioseq( "ccggagtgaggagcaacatgaactacgtgggactgggacttatcattgtgctgagctgcc"); BasicBioseqDoc seqdoc= new BasicBioseqDoc("DMU57488"); seqdoc.addDocField( seqdoc.kAccession, "U57488"); seqdoc.addComment("Just a test sequence"); seqdoc.addDate( new Date("February 11, 1997")); seqdoc.addSequenceStats( seq); seqdoc.addFeature("gene", new SeqRange("18..1684")); seqdoc.addFeatureNote("symbol", "est-6"); seqdoc.addFeature("intron", new SeqRange("1405..1455")); BioseqRecord seqrec= new BioseqRecord( seq, seqdoc); return seqrec; } String selectFormat(String param, String current) { boolean isout= (!param.startsWith("in")); StringBuffer sb= new StringBuffer(); sb.append("\n"); return sb.toString(); } boolean nullstr(String s) { return (s==null||s.trim().length()==0||"null".equals(s)); } Object writeSeq(Object seqrec, String format, JspWriter out) throws Exception { //ByteArrayOutputStream os= new ByteArrayOutputStream(); try { BioseqWriterIface writer= BioseqFormats.newWriter( BioseqFormats.getFormatId(format) // "GenBank" "EMBL" "fasta" "XML" ); writer.setOutput( out) ; //writer.setOutput( os) ; writer.writeHeader(); if(seqrec instanceof List) for (int i=0, ns= ((List)seqrec).size(); i ReadSeq

<%= Readseq.version %>

<% String self_url= request.getRequestURI(); String format= request.getParameter("format"); if(nullstr(format)) format="EMBL"; String input = request.getParameter("in"); if(nullstr(input)) input=""; %>

Example:

readseq.jsp?format=embl&in=<%= TEST_SEQ %>
Using software from <%= HOME_URL %>

Format: <%= selectFormat("format",format) %> In:

Reformat:

<% ArrayList seqlist= new ArrayList(); if (nullstr(input)) seqlist.add( testSeq() ); else { Readseq rd= new Readseq(); String seqname= rd.setInputObject( input ); if ( rd.isKnownFormat() && rd.readInit() ) { while (rd.readNext()) seqlist.add( rd.nextSeq() ); } } %>
<%= writeSeq( seqlist, format, out)%>