Computing set-up and some simple tests

On the ms system (hilbert.ms.washington.edu), in my home directory (~thompson), I have put a version of the MORGAN_V1.1 software, in a subdirectory of that name. However, you do not need to know this.

In my home directory, I have also set up a subdirectory Class578C. Everything in MORGAN_V1.1 and in Class578C should be readable by anyone, but that is not easy for me to check, so please let me know if you have problems accessing things.

In Class578C/ there are currently two subdirectories, Splus and Test. The Splus directory contains a few crude bits of Splus to do the EM iterations we have talked about. I'm sure some of you can do better, and putting together Splus code for some of these multinomial genetic problems (some we have met, and a couple more we will meet) is one potential project for someone.

In Test are so far a few simple things that will let you test the basic set-up of MORGAN_V1.1. In your account on hilbert.ms, make a directory in which you will do your MORGAN stuff.

Call it anything you like:               mkdir MyTest
Go in to your new directory:             cd MyTest
Copy the files from my Test directory:   cp ~thompson/Class578C/Test/* .
  (don't miss the final "." on this command -- it's important)
Clean any unwanted stuff:                make ultraclean
Make the test program:                   make set_up
Run the test program:                    make test_set_up
Look at the output:                      more out4
Clean up again:                          make ultraclean
You can do the above as a robot-- the computer doesn't care -- but you might want to understand what you have done? The Makefile, which you have copied, contains specifications of these make commands. Makefiles are really neat once you have learned to use them, but can also be a really finicky pain -- for example, it needs tabs not spaces as certain separators. So do not (yet) try to edit the Makefile, and, if you do, do not use cut and paste!

The make clean and make ultraclean commands that are set up there just delete extra files, and output files, and get you back to starting point.

The make set_up command compiles and loads a small program in MORGAN_V1.1, and also incorporates some MORGAN libraries. The make test_set_up runs the program, using a small data file in the MORGAN_V1.1/Data directories. All the program does is read in the pedigree, and tell you it has done so -- later we will do more things. In fact, you do not need to do the make set_up step -- if you omit it and go straight to make test_set_up, the Makefile understands it needs to do the compiling and loading first -- that's one thing that makes Makefiles neat.

Why is the output in the file out4?? Well that's specified in the Makefile too, and is just because of a long history, that that has become my default output file name for most things.

Another neat thing about Makefiles is that they can contain definitions of all sorts of things via substitution macros: for example we can define
DATA = /user0/thompson/MORGAN_V1.1/Data/Course
and later substitute it in any command using the notation $(DATA). That way the make command knows where to find the data, program, libraries, header files, what compiler and compiler options to use etc. etc.
So now look at the Makefile. Don't worry about the format, but try to figure out where is the actual data file the test_set_up program is running. Look at this file -- does it look like the pedigree the make test_set_up command told you about? There is extraneous info in this file-- just try to identify the pedigree specification.

If you have done all this, you know as much as you need to about this at this stage. Now help one of the other students in the class get this far.