package jalview.io; import jalview.datamodel.AlignmentAnnotation; import jalview.datamodel.Annotation; import jalview.datamodel.SecondaryStructureAnnotation; import jalview.datamodel.Sequence; import jalview.datamodel.SequenceFeature; import jalview.datamodel.SequenceI; import jalview.ws.jws1.Annotate3D; import java.io.BufferedReader; import java.io.FileNotFoundException; import java.io.IOException; import java.io.Reader; import java.io.FileReader; import java.lang.reflect.Array; import java.util.ArrayList; import java.util.Collections; import java.util.Hashtable; import java.util.List; import java.util.Vector; import javax.xml.parsers.ParserConfigurationException; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; import org.xml.sax.InputSource; import org.xml.sax.SAXException; import com.stevesoft.pat.Regex; import fr.orsay.lri.varna.exceptions.ExceptionFileFormatOrSyntax; import fr.orsay.lri.varna.exceptions.ExceptionLoadingFailed; import fr.orsay.lri.varna.exceptions.ExceptionPermissionDenied; import fr.orsay.lri.varna.exceptions.ExceptionUnmatchedClosingParentheses; import fr.orsay.lri.varna.factories.RNAFactory; import fr.orsay.lri.varna.factories.RNAFactory.RNAFileType; import fr.orsay.lri.varna.models.rna.RNA; import fr.orsay.lri.varna.utils.RNAMLParser; public class RnamlFile extends AlignFile { public String id; protected ArrayList result; public RnamlFile() { super(); } public RnamlFile(String inFile, String type) throws IOException, ExceptionFileFormatOrSyntax, ParserConfigurationException, SAXException, ExceptionPermissionDenied, ExceptionLoadingFailed, InterruptedException, ExceptionUnmatchedClosingParentheses { super(inFile, type); } public RnamlFile(FileParse source) throws IOException, ExceptionFileFormatOrSyntax, ParserConfigurationException, SAXException, ExceptionPermissionDenied, ExceptionLoadingFailed, InterruptedException, ExceptionUnmatchedClosingParentheses { super(source); } // public RnamlFile(BufferedReader r) throws IOException, ExceptionFileFormatOrSyntax, ParserConfigurationException, SAXException, ExceptionPermissionDenied, ExceptionLoadingFailed // { // super(); // parse(r); // // sets the index of each sequence in the alignment // for( int i=0,c=seqs.size(); i seq =new ArrayList(); //System.out.println(r); result = RNAFactory.loadSecStrRNAML(r); System.out.println("this is the secondary scructure:" +result.size()); //System.out.println("this is the secondary scructure:" +result.toString()); //System.out.println("this is the secondary scructure:" +result.size()); SequenceI[] seqs = new SequenceI[result.size()]; System.out.println(type); //the type is "File" System.out.println(inFile );//inFile is the path for(int i=0;i seq =new ArrayList(); //System.out.println(r); result = RNAFactory.loadSecStr(r,RNAFileType.FILE_TYPE_RNAML); System.out.println("this is the secondary scructure:" +result.toArray()); System.out.println("this is the secondary scructure:" +result.toString()); System.out.println("this is the secondary scructure:" +result.size()); for(int i=0;i allbpsTmp = rnaTmp.getStructure(); // String[] annot = new String[10000]; // // //Annotation[] ann = new Annotation[allbpsTmp.size()]; // for (int i = 0; i < allbpsTmp.size(); i++) { // RNAMLParser.BPTemp bp = allbpsTmp.get(i); // //System.err.println("toto ="+bp); // int bp5 = bp.pos5; // annot[bp5]= "("; // //annot[bp5]= '('; // System.out.println(annot[bp5]); // //System.out.println("bp5 ="+bp5); // int bp3 = bp.pos3; // // annot[bp3]= ")"; // System.out.println(annot[bp3]); // //System.out.println(annot.get(bp3)); // // //String pos1 = annot.substring(bp5, bp5+1); // //String pos2 = annot.substring(bp3, bp3+1); // //ann[i] = new Annotation(pos1, "", ' ', 0f); // //ann[i+1] = new Annotation(pos2, "", ' ', 0f); // //System.out.println(pos1); // // //System.out.println("bp3 ="+bp3); // //ModeleBP newStyle = bp.createBPStyle(mb, part); // } // Annotation[] ann = new Annotation[annot.length+1]; // for(int i=0;i allbpsTmp = rnaTmp.getStructure(); // for (int i = 0; i < allbpsTmp.size(); i++) { // RNAMLParser.BPTemp bp = allbpsTmp.get(i); // //System.err.println("toto ="+bp); // int bp5 = bp.pos5; // //System.out.println("bp5 ="+bp5); // int bp3 = bp.pos3; //System.out.println("bp3 ="+bp3); //ModeleBP newStyle = bp.createBPStyle(mb, part); // } //Annotation ann; //ann = new Annotation(bp5, "", ' ', 0f); //} // return result; } public static String print(SequenceI[] s) { return "not yet implemented"; } public String print() { System.out.print("affiche :"); return print(getSeqsAsArray()); } /** * make a friendly ID string. * * @param dataName * @return truncated dataName to after last '/' */ private String safeName(String dataName) { int b = 0; while ((b = dataName.indexOf("/")) > -1 && b < dataName.length() ) { dataName = dataName.substring(b + 1).trim(); } int e = (dataName.length() - dataName.indexOf("."))+1; dataName = dataName.substring(1,e).trim(); return dataName; } public ArrayList getRNA() { return result; } public Vector getAnnot() { return annotations; } }