/*
* Jalview - A Sequence Alignment Editor and Viewer (Version 2.8)
* Copyright (C) 2012 J Procter, AM Waterhouse, LM Lui, J Engelhardt, G Barton, M Clamp, S Searle
*
* This file is part of Jalview.
*
* Jalview is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
*
* Jalview is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty
* of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with Jalview. If not, see .
*/
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.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;
}
}