alignment load_next_alignment(istream& ifile, const alphabet& a, const vector<string>& names) { shared_ptr<const alphabet> aa ( a.clone() ); alignment A = load_next_alignment(ifile,aa); return reorder_sequences(A,names); }
alignment::alignment(const alphabet& a1,const string& filename) :a(a1.clone()) { load(filename); }
alignment load_next_alignment(istream& ifile, const alphabet& a) { shared_ptr<const alphabet> aa ( a.clone() ); return load_next_alignment(ifile,aa); }
alignment::alignment(const alphabet& a1, const vector<sequence>& S) :sequences(S),array(0,S.size()),a(a1.clone()) {}
alignment::alignment(const alphabet& a1,int n) :sequences(vector<sequence>(n)),array(0,n),a(a1.clone()) { }
alignment::alignment(const alphabet& a1) :a(a1.clone()) {}
alignment::alignment(const alphabet& a1, const vector<sequence>& S) :array(0,S.size()),sequences(S),a(a1.clone()) { // Do NOT load the sequences here -- this is used for constructing // new alignment matrices during MCMC for some reason. }
alignment::alignment(const alphabet& a1,int n,int L) :array(L,n),sequences(vector<sequence>(n)),a(a1.clone()) { }