/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package javaapplication1;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.util.ArrayList;

/**
 *
 * @author legrand
 */
public class readscore {
    String nomfichier;
    String Efname;

    public readscore(String nomfichier) {
        this.nomfichier = nomfichier;
        Efname="";
    }
    
    //recupere le nom de protéine
    String fileName() throws IOException{
        String name="";
        URL url = new URL("http://lbgi.fr/cgi-bin/WscopeServer?EFFamily&GscopeFileContent&EF"+nomfichier);
        InputStreamReader ipsr = new InputStreamReader(url.openStream());
        BufferedReader br = new BufferedReader(ipsr);
        String line = null;
        StringBuilder buffer = new StringBuilder();
        try {
        while ((line = br.readLine()) != null) {
        buffer.append(line).append('\n');
        String[] lineSplit=line.split("");
        boolean test=false;
        for (int i=0;i<lineSplit.length;i++){
           if (lineSplit[i].equals(")")){
                test=false;
            }
            if(test){name+=lineSplit[i];}
             if (lineSplit[i].equals("(")){
                test=true;
            }
            
        }
        
     
        }
        br.close();
            System.out.println("");
}
        
        
    catch (IOException e) {
} 
        
        name=name.toUpperCase();
        System.out.println(name);
        String[] splitename=name.split("");
        String[] realname=new String[7];
        realname[0]=splitename[0];
        realname[1]=splitename[1];
        realname[2]=splitename[2];
        realname[3]=splitename[3];
        realname[4]=splitename[4];
        realname[5]=splitename[6];
        realname[6]="_";
        name="";
        for (int i=0;i<7;i++){
            name+=realname[i];
        }
        Efname= name;
        return name;
    }
    
    
    /**
     * liste des score obtenu
     * @return liste des scores -= pas catalytique 1=catalytique
     */
    ArrayList scores(){
    ArrayList scores=new ArrayList();
        boolean endOfFile = false;
		try	{
                    //System.out.println("/home/legrand/Documents/EF_family/"+fileName()+".fea");
			FileReader fileAlignement = new FileReader("/home/legrand/Documents/EF_family/"+fileName()+".fea");
			BufferedReader fileBuffer = new BufferedReader(fileAlignement);
			while (!endOfFile) {
				String fileLine = fileBuffer.readLine();
				if (fileLine == null) {
					endOfFile = true;
				} else {
                                        String[] fileLineArray =fileLine.split("");
                                        try {//cas ou fileLineArray[1] n'existe pas
					
                                            
                                            for(int i=0;i<fileLineArray.length;i++){
                                               if (fileLineArray[i].matches("\\p{Lu}") ){
                                                   if(fileLineArray[i+5].equals("-")){
                                                       scores.add((double)0);
                                                   }else{
                                                       scores.add((double)1);
                                                   }
                                                    
                                               }
                                            }
                                        
                                        
                                            
                                        
                                          } catch (Exception e) {
                                    }
				}
			}
			fileBuffer.close();
		} catch (IOException e)	{
                    System.out.println("ERREUR");
		}
                return scores;
}
        
}
