Spring 2014 Journal
Week of March 24
We realized that there is a problem with copying files to Excel using a Mac. Although I did find a | package that uses some Java, I haven't tested it yet. Our priorities will now be to make this file an executable on PC first, and once that code is finalized we can think about having a version that will run on Macs. I became familiarized with the parameter tab in the Excel spreadsheet, particularly with the cells fix_b and fix_p. I created this page today, Wednesday March 26 and I will update it everyday I have interesting developments.
Week of May 19
May 19 - First meeting of SURP with Dr. Fitzpatrick and Ms. Sherbina. We spoke about modifying the program into function based programming rather than a script based one. Started writing estimation_driver2, which uses the uigetfile function in MATLAB to open up a navigation window which allows the user to open a file. This is so the user can select a worksheet without ever having to modify the MATLAB code. So far the driver has a check which terminates the program if no file is selected or if a file with the wrong format is chosen. So far the script allows .xls and .xlsx files. log2FC will probably be partitioned to better fit the final structure that we hope to achieve. I have also begun to clean up the code a little be getting rid of superfluous global variables.
May 20 - Cleaned up some code with two nearly identical structures by consolidating them into a single structure. While testing realized that global variables were unintentionally being preserved. The next step will be to figure out which variables fit into which structure of the GRNstruct and which will need duplicates in the globals. log2FC, the most complicated structure, has already been figured out. Tomorrow will be dedicated mostly to writing the function based code versions of the rest of the code.
May 21 - Spent most of today rewriting the first script into a function. To do so I had to figure out where in the structure all the remaining variables will go. I also ran into the problem of trying to figure out which variables will remain local, which will become part of the structure, and which must become global. I finished today by deciding that I will load the structure first with all necessary variables and lad the globals last. I haven't finished the first function, but it's also the most complicated of the group so after finishing up this function, hopefully by tomorrow, I should breeze by the remaining functions. I don't anticipate being able to test the code until probably next week.
May 22 - Much progress today. Completely finished the second function and began modification of the second function. The rest of the coding seems to be straight forward enough and testing will be needed. Hope to finish the remaining functions by tomorrow and be ready to test by Monday.
May 27 - Finished writing code. Started testing today and I ran into some problems. I believe it has to do with how log2FC was defined. I made minimal changes to the code so hopefully and change that I made is easily traceable. I believe that by tomorrow I should be able to do more different tests.
May 28 - Ran into problems today and the new code is still not able to do a clean run of the control test. Will have to further work on code.
May 29 - First successful run of new code. Now further testing is needed and we'll see where we move on from there.
June 2 - Moved on to implementing Michaelis-Menten model and ran into problems. Neither the function-based code or the script-based code worked.
June 3 - It was discovered what edit I made caused the scripts to fail. Testing today resulted in different results for the two versions of the program.
June 4 - I was able to get both programs to yield the same results.
June 12 - Very excited, executable works! However, due to a difference in versions, the optimized weights are different because the functions ode45 and fmincon are using different algorithms. We might consider keeping the new 2014 algorithm, because overall, the function ode45 is still solving a differential equation, but the algorithm changed, hopefully getting better in the new release in MATLAB. I verified that the difference is not a mistake in the executable; both the scripts and the executable in the 2014 version of MATLAB yielded the same optimized weights.
June 16 - Was able to get the executable to work on a computer that didn't have MATLAB installed. However, the difference in fmincon from one version to the other results in differences in the outputs that are worrisome.