Usage:

./colremoval.sh filename

where filename is a qualitative character matrix (see Example1.dat and Example2.dat). The first line of the file is the name of the experiment. The name itself is irrelevent, but the file line must exist. The second line of the file is of the form "n m" where n is the number of rows and m is the number of columns in the data. The remaining lines in the file correspond to rows in the data matrix, with either an natural number for a character state or "?" for missing data (see Example2.dat).


To test the pipeline, run the data files as:

./colremoval.sh Example1.dat

./colremoval.sh Example2.dat

This will take an input matrix (e.g. Example1.dat) and output an
integer linear programming formulation to be solved using c-plex. The
examples I provided have some important characteristics:

-Example1.dat has a partition intersection graph that is already
chordal; thus the data has a perfect phylogeny. The shell script
doesn't check for this - instead, you need to check Example1.sep for
this. Example1.sep should be a single line as follows:
"20 11 0"
Here, only the third number is important. When the third number is 0,
the partition intersection graph is chordal and the data has a perfect
phylogeny. Because of this, no ILP formulation is generated.

-Example2.dat has data with only one crossing relation. Example2.lp
will contain the ILP formulation. In this file, the b#i variables
represent the characters that are being removed ( b#i = 1 in a
solution iff it is removed).



If you are using a Mac:
You need to use the "ChordAlg_MacOS" executable (instead of ChordAlg). Delete the "ChordAlg" executable and rename "ChordAlg_MacOS" to "ChordAlg".
