diff --git a/find_the_biggest.cc b/find_the_biggest.cc
deleted file mode 100644
index efc0f85fd80439aa8e5cfe9d2be6365ea76f64ec..0000000000000000000000000000000000000000
--- a/find_the_biggest.cc
+++ /dev/null
@@ -1,217 +0,0 @@
-/*  Copyright (C) 2004 University of Oxford  */
-
-/*  CCOPYRIGHT  */
-
-#include <iostream>
-#include <fstream>
-#include "newimage/newimageall.h"
-#include <vector>
-using namespace std;
-using namespace NEWIMAGE;
-
-void biggest_from_volumes(vector<string> innames,string oname){
-  vector<volume<float> > tmpvec;
-  tmpvec.reserve(innames.size());
-  volume<float> tmp;
-  cout<<"number of inputs "<<innames.size()<<endl;
-  cout<<"Indices"<<endl;
-  for(unsigned int i=0;i<innames.size();i++){
-    cout<<i+1<<" "<<innames[i]<<endl;
-    read_volume(tmp,innames[i]);
-    tmpvec.push_back(tmp);
-  }
-  volume<int> output(tmp.xsize(),tmp.ysize(),tmp.zsize());
-  copybasicproperties(tmp,output);output=0;
-
-  for(int z=tmp.minz();z<=tmp.maxz();z++){
-    for(int y=tmp.miny();y<=tmp.maxy();y++){
-      for(int x=tmp.minx();x<=tmp.maxx();x++){
-	RowVector bum(innames.size());
-	Matrix bugger;
-	ColumnVector index;
-	for(unsigned int i=0;i<innames.size();i++ ){
-	    bum(i+1)=tmpvec[i](x,y,z);
-	} 
-	bugger=max(bum,index);
-	bool flag=true;
-	if(index.AsScalar()==1){
-	  // Check to see whether they're all zero.
-	  flag=false;
-	  for(unsigned int i=1;i<=innames.size();i++ ){
-	    if(bum(i)!=0){
-	      flag=true;break;
-	    }
-	      
-	  }
-	}
-	if(flag)
-	  output(x,y,z)=(int)index.AsScalar();
-	else
-	  output(x,y,z)=0;
-      }  
-    }
-  }
-
-  output.setDisplayMaximumMinimum(innames.size(),0);
-  save_volume(output,oname);
-
-}
-
-ReturnMatrix read_label(const string& labelfile,string& firstline){
-  Matrix L;
-  ifstream fs(labelfile.c_str());
-  if (!fs) { 
-    cerr << "Could not open label file " << labelfile << endl;
-    L.Release();
-    return L;
-  }
-
-  // read first line
-  char str[200];
-  FILE *fp;
-  fp = fopen(labelfile.c_str(), "r");
-  fscanf(fp, "%[^\n]", str);
-  firstline = str;
-
-  string cline;
-  // skip header
-  cline = skip_alpha(fs);
-  // read number of vertices
-  string ss="";
-  fs >> ss;
-  float nrows = atof(ss.c_str());
-  L.ReSize(int(nrows),5);
-  for(int r=1;r<=nrows;r++)
-    for(int c=1;c<=5;c++){
-      if(!fs.eof()){
-	fs >> ss;
-	while ( !isNumber(ss) && !fs.eof() ) {
-	  fs >> ss;
-	}
-	L(r,c) = atof(ss.c_str());
-      }
-    }
-  
-  L.Release();
-  return L;
-}
-void write_label(const Matrix& L,const string& filename,const string& firstline){
-  ofstream fs(filename.c_str());
-  if (!fs) { 
-    cerr << "Could not open file " << filename << " for writing" << endl;
-    exit(1);
-  }
-  fs << firstline << endl;
-  fs << L.Nrows() << endl;
-
-#ifdef PPC64	
-  int n=0;
-#endif
-  for (int i=1; i<=L.Nrows(); i++) {
-    for (int j=1; j<=L.Ncols(); j++) {
-      fs << L(i,j) << "  ";
-#ifdef PPC64	
-      if ((n++ % 50) == 0) fs.flush();
-#endif
-    }
-    fs << endl;
-  }
-  
- 
-  fs.close();
-}
-
-void biggest_from_matrix(vector<string> innames,string oname){
-  if(innames.size()!=2){
-    cerr<<"usage: find_the_biggest <Matrix> <Label> <Output>"<<endl;
-    exit(1);
-  }
-
-  cout << innames[0] << endl;
-  Matrix M = read_ascii_matrix(innames[0]);
-  ColumnVector maxMrow(M.Nrows()),coordMax(M.Nrows());
-  maxMrow = sum(abs(M),2);
-
-  cout << "number of vertices: " << M.Nrows() << endl;
-  cout << "number of targets:  " << M.Ncols() << endl;
-
-  cout << endl << "read label file" << endl;
-  string firstline;
-  Matrix L = read_label(innames[1],firstline);
-  
-  cout << "number of vertices: " << L.Nrows() << endl;
-  cout << "number of columns:  " << L.Ncols() << endl;
-
-  if(M.Nrows() != L.Nrows()){
-    cerr<<"Error: matrix and label file do not have the same number of entries"<<endl;
-    exit(1);
-  }
-
-  // test this (i think M and L do not come in the same order...)
-  vector< pair<int,int> > labels(L.Nrows());
-  for(unsigned int i=0;i<labels.size();i++){
-    labels[i].first=(int)L(i+1,1);
-    labels[i].second=i+1;
-  }
-  sort(labels.begin(),labels.end());
-  Matrix sL=L;
-  for(int i=1;i<=L.Nrows();i++)
-    sL.Row(i)=L.Row(labels[i-1].second);
-  
-		      
-  vector< vector<int> > Clusters(M.Ncols());
-  float val;
-  int cmax;
-  for(int i=1;i<=M.Nrows();i++){
-    val=(M.Row(i)).MaximumAbsoluteValue1(cmax);
-    if(val!=0)
-      Clusters[cmax-1].push_back(int(i));
-  }
-  // now store these into files
-  for(unsigned int i=0;i<Clusters.size();i++){
-    if(Clusters[i].size()>0){
-      Matrix C(Clusters[i].size(),5);
-      for(unsigned int j=0;j<Clusters[i].size();j++){
-	C.Row(labels[j].second) = L.Row(Clusters[i][j]); 
-	C(labels[j].second,5) = i+1;
-      }
-      write_label(C,oname+"_"+num2str(i+1)+".label",firstline);
-    }
-  }
-  
-}
-
-int main ( int argc, char **argv ){
-  if(argc<3){
-    cerr<<" "<<endl;
-    cerr<<"usage: find_the_biggest <lots of volumes> output"<<endl;
-    cerr<<"output is index in order of inputs"<<endl;
-    cerr<<"Or: find_the_biggest <singleMatrixFile> <labelfile> output"<<endl;
-    cerr<<" "<<endl;
-    exit(1);
-  }
-
-  vector<string> innames;
-  innames.clear();
-  for(int i=1;i<=argc-2;i++){
-    innames.push_back(argv[i]);
-  }
-  if(!fsl_imageexists(innames[0])){
-    biggest_from_matrix(innames,argv[argc-1]);
-  }
-  else{
-    biggest_from_volumes(innames,argv[argc-1]);
-  }
-
-  return(0);
-
-}
-
-
-
-
-
-
-
-
-
diff --git a/proj_thresh.cc b/proj_thresh.cc
deleted file mode 100644
index fb59ee7b3af75bea406fe4e62c82088107604c41..0000000000000000000000000000000000000000
--- a/proj_thresh.cc
+++ /dev/null
@@ -1,59 +0,0 @@
-/*  Copyright (C) 2004 University of Oxford  */
-
-/*  CCOPYRIGHT  */
-
-#include <iostream>
-#include <fstream>
-#include "newimage/newimageall.h"
-#include <vector>
-using namespace std;
-using namespace NEWIMAGE;
-
-int main ( int argc, char **argv ){
-  if(argc<3){
-    cerr<<"usage:proj_thresh <lots of volumes> threshold"<<endl;
-    exit(1);
-  }
-  vector<volume<float> > tmpvec;
-  //  vector<volume<float> > outvec;
-  float thresh=atof(argv[argc-1]);
-  tmpvec.reserve(argc-2);
-  //  outvec.reserve(argc-2);
-  volume<float> tmp;
-  cout<<"number of inputs "<<argc-2<<endl;
-  for(int i=1;i<=argc-2;i++){
-    cout<<i<<" "<<argv[i]<<endl;
-    read_volume(tmp,argv[i]);
-    tmpvec.push_back(tmp);
-  }
-  cerr<<"threshold "<<thresh<<endl;
-
-  volume<float> total;
-  volume<float> total_thresh;
-  total=tmp*0;
-
-  for(unsigned int i=0;i<tmpvec.size();i++){
-    total+=tmpvec[i];
-  }
-  
-  total_thresh=binarise(total,thresh);
-  save_volume(total,"total");
-  for(unsigned int i=0;i<tmpvec.size();i++){
-    tmp=divide(tmpvec[i],total,total_thresh);
-    string outname =argv[i+1];
-    make_basename(outname);
-    string thrname="_thr_"+num2str(thresh);
-    save_volume(tmp,outname+"_proj_seg"+thrname);
-  }
-  
-}
-
-
-
-
-
-
-
-
-
-