ComboScreen A program for resolving and tracking combinatorial screen results. Release 1.0 March, 1999 Written by D. Curtis Jamison (cjamison@nhgri.nih.gov) National Human Genome Research Institute National Institutes of Health --------------------------------------------------------------------------- CHANGES 9-20 fixed a picket fence error which prevented the last record from being shown from the VIEW table and EXPORT table features. --------------------------------------------------------------------------- REQUIREMENTS UNIX (SGI, SUN) This package uses the wxWindows GUI toolkit, which may be obtained at http://www.wxwindows.org The current release has only been tested under the Motif version of wx2.0. The current release also requires Sybase. Support for other SQL RDBS may be added in the future. (see below). --------------------------------------------------------------------------- PUBLIC DOMAIN NOTICE This software/database is ``United States Government Work'' under the terms of the United States Copyright Act. It was written as part of the authors' official duties for the United States Government and thus cannot be copyrighted. This software/database is freely available to the public for use without a copyright notice. Restrictions cannot be placed on its present or future use. Although all reasonable efforts have been taken to ensure the accuracy and reliability of the software and data, the National Human Genome Research Institute (NHGRI) and the U.S. Government does not and cannot warrant the performance or results that may be obtained by using this software or data. NHGRI and the U.S. Government disclaims all warranties as to performance, merchantability or fitness for any particular purpose. In any work or product derived from this material, proper attribution of the authors as the source of the software or data should be made. --------------------------------------------------------------------------- INSTALLATION UNIX 1. Install wxWindows and Sybase, if needed. 2. Unpack the source tree. In the CS2 directory, you should have three directories (graphics, src, and include) and one file (makefile). 3. Follow the instructions to set up the database (see below). 4. Set up the CB_LIBRARY table. 5. Edit src/makefile.unx to point at the proper places. 6. Edit src/LoginBox.C to set the names for Sybase database(s) (See below). 7. Do a "make all" at the top of the source tree. --------------------------------------------------------------------------- DATABASE SETUP ComboScreen relies upon a backend database to store information. You can define multiple databases on your server and access them using ComboScreen. You _must_ edit LoginBox.C to tell the program how to connect to your server and the databases. There are three variables that need to be changed. LoginBox.C line 17: #define DBNUM 4 LoginBox.C line 18: #define DBSERVER "quark" LoginBox.C line 32: wxString c1[DBNUM] = {wxString("dev_cjamison"), wxString("mh7synteny"), wxString("rh7synteny"), wxString("hRPC11")}; First change DBNUM to reflect the actual number of databases you're setting up. Then alter DBSERVER to be the name of the database server you have defined in the system (for Sybase, it is the alias specified in the interfaces file). Finally, edit the wxString array c1 to contain the name(s) of your database(s). It is very important that the number of wxStrings defined in the array matches DBNUM, or your compiler will barf when you do the make. The table structures are given in the text file DB_Setup.txt. Another possible method is to use the (thus far untested) SQL script in DB_Setup.sql. Make sure to edit the script to replace with the database name you are using, to bring it in line with the databse names in Login.C. However you create the database, it is important to PRESERVE THE TABLE NAMES EXACTLY! There are SQL statements embedded in the program which will fail if the tables are not right. Bad things may happen to your data if you change the table names or structures without fixing the sourcecode. --------------------------------------------------------------------------- LIBRARY SETUP You must initialize the CB_LIBRARY table with your library. The best way to do that is to use the bulk-copy routine provided with your database. The three fields you need are filter_panel, pattern, and plate. Filter_panel is the filter number and the panel number concatenated with a period. Pattern is the pattern number, derived from the stamping patterns found in the pattern#.xpm files. Plate is the library plate which the pattern resolves to. For example: 1.1,1,1 1.1,2,7 1.1,3,13 1.1,4,19 1.1,5,25 1.1,6,31 1.1,7,37 1.1,8,43 defines the 8 plates stamped on filter 1, panel 1 in the RPCI23 library. The program is written for the RPCI23, a 60 panel library with 6 panels per filter, stamped in duplicate. This is unfortunately hard-coded. If you need to alter this, check out LibraryObject.C and make the appropriate changes there. You will also probably want to check out the stamping patterns. These are in the graphics subdirectory. If you alter or add patterns, make sure you include the .xpm files needed to draw the patterns. --------------------------------------------------------------------------- USING OTHER DATABASES ComboScreen is capable of utilizing any SQL database. Simply subclass the dbConnector class (connector.h) and provide the proper methods. Classes inheriting from dbConnector act as adaptors to the database. database <----> your db class <--> program ^ | dbConnector In theory, you could even write an adaptor that took the SQL queries and translates them into a non-SQL query language (like ACEDB). You could also play games with what the tables look like through your adaptor. The dbConnector is instantiated at line 128 of ComboScreen.C. You will also have to fix the header files which refer directly to Sybase.C (there are three or four), since I was bad and used the superclass rather than the parent class in some places. Sorry about that. --------------------------------------------------------------------------- OTHER PLATFORMS One of the attractive features of wxWindows is the multi-platform support. Even though the current ComboScreen release supports only Motif UNIX systems, wxWindows supports MSWindows, Linux, GTK, and hopefully soon Macintosh. In theory, the only limiting factor should be the availablity of the database libraries. In order to migrate to another platform, create a makefile.XXX in the src directory, paralleling the structure of makefile.unx. Then create a dependancy in the makefile, and change the "all" dependancy to point at your dependancy. For example, to create a Visual C version for Windows, create a src/makefile.vc, then edit the make file to look like this: all: make vc; cp src/ComboScreen_vc ComboScreen motif: cd src; make -f makefile.unx motif vc: cd src; make -f makefile.vc clean: rm ComboScreen; cd src; make -f makefile.vc clean Note the three places there is a change from "motif" to "vc": Twice in the all dependancy and once in the clean dependancy. I expect the makefile will get a little more sophisticated in future releases so this will get easier. --------------------------------------------------------------------------- SUPPORT and OPEN SOURCE This is a program which I've written for use in our lab. Since the release of the software, I've gone on to other things. While I'm perfectly willing to answer an occassional question, I'm not able to provide custom programming changes and alterations. That is why I'm distributing source code so you can make the changes you need to make. If you do make changes which you think are sufficiently general enough to warrant inclusion in the release, please contact me and we'll talk about incorporating them. Examples of the kind of thing I'm talking about here are new database connector classes, or makefiles for other platforms (or even better ones for UNIX). ---------------------------------------------------------------------------