/*
 * NewInstance.h
 * This file is part of isoLasso library; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public License as
 * published by the Free Software Foundation; version 2.1 of the License.
 *
 *  Created on: 2011-10-14
 *      Author: daniel
 */

#ifndef NEWINSTANCE_H_
#define NEWINSTANCE_H_
#include <string>
#include <vector>
using namespace std;

class NewInstance {
public:
	NewInstance();
	virtual ~NewInstance();
public:
	string id;
	string chromosome;
	int dir;
	vector<long> boundary;
	long nExons;
	vector<vector<long> > exonBoundary;
	vector<long> exonLen;
	vector<vector<double> > exonStat;
	long readLen, readCnt, totalReadCnt;
	vector<long> seExon;
	vector<vector<long> > rcount;
	vector<long> rcountRowSum, rcountColSum;
	vector<vector<long> > SGTypes;
	vector<long> SGCounts;
	vector<long> SGDirs;
	long peReadLen, peReadDis, peReadDisSTD, peReadCnt;
	vector<vector<long> > PETypes;
	vector<vector<long> > PETypesDistance;
	vector<vector<long> > PETypesDistanceCount;
	vector<vector<vector<long> > >Coverage;

  	/* Reference */
	vector<vector<long> > Refs;
	vector<char>  RefDirs;
	vector<string>  RefIDs;
	
	/* Prediction */
	vector<vector<long> > Pred;
	vector<double> PredExp;
	vector<long> PredSubInst;
	vector<char> PredDir;
	vector<string> PredID;

	//TODO
	/*
        % a cell array for other uncommon use (for example, calculating
        % repeat regions)
        otherinfo
  */
	//TODO
	/*
    methods
        function len=getisolen(isos)
            if size(isos,2)~=nExons
                error('Error: incorrect exon number in isos.');
                len=zeros(size(isos,1),1);
            else
                len=sum(isos.*repmat(exonLen',[size(isos,1) 1]),2);
            end
        end
        function len=getreflen()
            if isempty(Refs)
                len=zeros(size(Refs,1),1);
            else
                len=getisolen(Refs);
            end
        end
    end

end
 */


};

#endif /* NEWINSTANCE_H_ */
