// %W%    %G%
// models.wrm - main file defining tree class structures
// This file is read only when starting a new database or when you select 
// "Read Models" or "Add Update File" from the main menu.

//
// Basic Map classes
//

?Map	No_cache // Don't cache segs for this map.
        Display Non_graphic  // Prevents a graphic display!
                Title UNIQUE ?Text
		Flipped // Then coordinates go upwards
                Unit UNIQUE Text 
			// e.g. kb, centiMorgan, MegaParsec
		Centre UNIQUE Float UNIQUE Float  
			// default centre, width - else 0, 10
	    	Extent UNIQUE Float UNIQUE Float  
			// min, max - else min, max gene/locus
		Default_view UNIQUE ?View
		Minimal_view UNIQUE ?View // use this when >1 map displayed
		View ?View                // Columns to display
        Inherits  From_map UNIQUE ?Map 	// To locally edit
		  Author Text	// login name of who created it
 	Main_Marker Main_Locus ?Locus 	// XREF Main_Marker removed to
					// allow tag2 system
		// tag2 system for items shown left of locator
	Map ?Map XREF Map_shown #Map_position
// Include all objects in these maps (must be mapped and have extents)
	Includes ?Map
	Contains Locus ?Locus XREF Map
        	 Rearrangement ?Rearrangement XREF Map
		 Contig ?Contig XREF Map
		 Clone ?Clone XREF Map
		 Sequence ?Sequence XREF Map
		 Allele ?Allele XREF Map
		 Map_shown ?Map XREF Map
		// tag2 system for items shown in main region
	EMBL_chromosome UNIQUE Text

?Map_position UNIQUE	Position UNIQUE Float #Map_error
			Ends Left UNIQUE Float #Map_error
			     Right UNIQUE Float #Map_error
			Multi_Position  Float #Map_error
			Multi_Ends Float UNIQUE Float
			With UNIQUE With_locus UNIQUE ?Locus #Map_offset
				    With_clone UNIQUE ?Clone #Map_offset
				// tag2 system for "burying"

?Map_error Error UNIQUE Float

?Map_offset Relative #Map_position

?MultiMap Map ?Map
          Min Int // keep loci appearing on at least min maps. Default = 2 
          Anchor UNIQUE Text UNIQUE Text UNIQUE Text  // Class tag1 tag2
                            // i.e Locus Homeology_group Homelogs
                            // class members on different maps with the
                            // same Anchor tag will be chained

?ManyMap Map ?Map UNIQUE ?View

//
// Views and Columns
//

?View 	Type 	UNIQUE 	Pepmap
			Fmap
		  	Gmap
			Grid  Grid_map Int #View_tags // Int is priority
			      Grid_edit_default UNIQUE Text UNIQUE Text 
			      Grid_edit_menu Text UNIQUE Text 
			Pmap  Pmap_probes Pmap_probe_query Text
					  Pmap_probe_height Int
			      Pmap_YAC  Pmap_YAC_query Text
					Pmap_YAC_bold_query Text
					Pmap_YAC_height Int
			      Pmap_cmid Pmap_cmid_query Text
					Pmap_cmid_bold_query Text
					Pmap_cmid_height Int
			      Pmap_locus Pmap_locus_query Text
					 Pmap_locus_height Int
			      Pmap_remark Pmap_remark_query Text
					  Pmap_remark_height Int
				// 1st text tag name, 2nd text optional "Negative"
	Display Submenus	// BOOL for submenus on item boxes
		Cambridge	// Cambridge v. Montpellier behaviour
		No_buttons      // suppress header buttons for WWW 
                Hide_header     // No headers and footers 
	Name 	UNIQUE 	Text
	Columns	Text UNIQUE Int #Column	// Int is BOOL for Hidden/Visible

?Column	UNIQUE	Scale Scale_unit UNIQUE Float	// minimum increment
		      Cursor Cursor_on
			     Cursor_unit UNIQUE Float
		Scroller
		Locator Magnification UNIQUE Float
			Projection_lines_on
		Marker_points
		Marker_intervals
		Contigs
		Reversed_physical
		Physical_genes
		Two_point
		Multi_point
		Likelihood
		Points	Point_query UNIQUE Text
			Point_yellow UNIQUE Text // To be made redundant.
                        Point_colour Text #Colour // to replace above
			Point_width UNIQUE Int	// max width if not at RHS
                        Point_error_scale UNIQUE Float
			Point_segregate_ordered
                        Point_show_marginal
			Point_pne #Colour // positive, no error
			Point_pe  #Colour // positive, error
			Point_nne #Colour // negative, no error
                	Point_ne  #Colour // negative, error
			Point_symbol Text // can now have more than one of these
		Interval_JTM	#Interval_col_conf
		Interval_RD	#Interval_col_conf
               	Interval_SRK 	#Interval_col_conf
		Derived_tags	DT_query UNIQUE Text
				DT_width UNIQUE Int
				DT_no_duplicates
                                DT_neighbours
                                DT_parents
				DT_follow_parent
                                DT_symbol_query
                                DT_tag Text Int
                                DT_hide
 		Spacer          Spacer_colour #Colour
                                Spacer_width Float
		RH_data		RH_query UNIQUE Text
				RH_spacing UNIQUE Float
				RH_show_all
				RH_positive #Colour
				RH_negative #Colour
				RH_contradictory #Colour
                pepSequence	PS_Highlight_residue   // il all needed for colomn display of peptides
				PS_Residues_per_wrap Int
				PS_Colours Text #Colour
		Hydrophobicity	HP_Show_Zero_bar
				HP_Fixed_Scaling
				HP_Calculation_window Int
				HP_Display_width Int
                Homol           HOM_bump
                pepFeature      FEA_bump
                                FEA_Query Text
                Homol_Name      HOM_NAME_bump
				HOM_NAME_width Int
                pepActiveZone

?View_tags	Colour #Colour
		Surround_colour #Colour	// colour when surround
		Tag Text		// could be many tags

?Interval_col_conf 	Query UNIQUE Text // Query
			Names_on
                        No_neighbours
			Show_multiple
			Width UNIQUE Int
			Symbol UNIQUE Text
			Colours Text #Colour // Only for chrom_bands.
			Pne #Colour // positive, no error
			Pe  #Colour // positive, error
			Nne #Colour // negative, no error
                	Ne  #Colour // negative, error

?Allele Name	Other_name ?Text
		Qualifier Text	    // sd, sm, ts etc.  Not systematic just now
		Rearrangement ?Rearrangement XREF Allele
	Source	UNIQUE Gene ?Locus XREF Allele
	               Gene_class ?Gene_Class XREF Allele
	Sequence ?Sequence XREF Allele
        Reference_Allele
	Isolation	Author	Text	// Isolator - should be ?Author
			Date	DateType
		        Mutagen UNIQUE Text UNIQUE Text
			Procedure Text
			Transposon_insertion Text  // Text Transposon type
			Derived_from ?Allele XREF Derivative
		// for revertants and deletions from Transposon alleles
			Isolated_for ?Author  
		// person requesting allele -- for transposon insertion
        Location ?Laboratory #Lab_Location
	Derivative ?Allele XREF Derived_from
        Strain ?Strain XREF Allele
        Genetics        Map ?Map #Map_position
                        Mapping_data    2_point ?2_point_data
                                        Multi_point ?Multi_pt_data
	                                Pos_neg_data ?Pos_neg_data
				// above three are for mapping on its own behalf
	                                In_2_point ?2_point_data
                                        In_multi_point ?Multi_pt_data
	                                In_pos_neg_data ?Pos_neg_data
				// these are for when the locus is mapped
			Covers Text // from MRC allele list
	Description     Phenotype       ?Text
			Recessive
                        Dominant
			Semi_dominant
			Weak
                        Temperature_sensitive	Heat_sensitive
						Cold_sensitive
			Amber
                        Ochre
                        Opal
                        Missense
                        Maternal	Strictly_Maternal
					With_Maternal_Effect
                        Paternal
	Remark	?Text
        Reference ?Paper XREF Allele               // Mary
        Rescued_by_Transgene ?Transgene XREF Rescue

?Gene_Class     Phenotype ?Text
                Designating_laboratory UNIQUE ?Laboratory XREF Gene_classes
                Allele ?Allele	XREF Gene_class
                Loci ?Locus XREF Gene_Class
                Main_name  ?Gene_Class XREF Other_name
		Other_name ?Gene_Class XREF Main_name

?Locus  Name    Other_name ?Text
                Gene_Class  ?Gene_Class XREF Loci
                Old_name ?Locus XREF New_name
                New_name ?Locus XREF Old_name
	Description ?Text
	Type	Gene	Reference_Allele ?Allele Text
                        Phenotype ?Text
                        Complementation_data Text
                        Controlled_phenotype ?Phenotype XREF Locus          // added for Lincoln RNAi [001213 dl]
		Polymorphism    RFLP	Text
				Transposon_insertion  Text
				Detection_method Text
		PCR_product	Primers  Text
				Length   Int	// bp
        Molecular_information	Genomic_Sequence ?Sequence XREF Locus_genomic_seq // Split genomic and other XREFs
                                Other_sequence ?Sequence XREF Locus_other_seq     // dl 001128
				Product ?Text
				Enzyme ?Enzyme XREF Locus
	Remark ?Text
	Map    ?Map XREF Locus #Map_position
        Hide_under ?Locus XREF Representative_for
        Representative_for ?Locus XREF Hide_under
	Positive Inside_rearr ?Rearrangement XREF Locus_inside ?Author
		 Positive_clone ?Clone XREF Positive_locus ?Author
	Negative Outside_rearr ?Rearrangement XREF Locus_outside ?Author
		 Negative_clone ?Clone XREF Negative_locus ?Author
	Mapping_data	Well_ordered		// "on the line"
			2_point ?2_point_data
                        Multi_point ?Multi_pt_data
			Pos_neg_data ?Pos_neg_data
        Allele  ?Allele XREF Gene
        Strain  ?Strain XREF Gene
	Laboratory ?Laboratory
        Reference ?Paper XREF Locus
	Expr_pattern ?Expr_pattern XREF Locus
        Contained_in ?Locus XREF Contains //sdm put in to accomodate HISTONE geneclusters
        Contains ?Locus XREF Contained_in
        Drives_Transgene ?Transgene XREF Driven_by_Locus	
	Transgene_product ?Transgene XREF Worm_gene
	Rescued_by_Transgene ?Transgene XREF Rescue

?Balancer From_left_end
          To_right_end
          Locus ?Locus

?Rearrangement 	Name    Other_name ?Text
			Allele ?Allele XREF Rearrangement
		Type    Deletion
			Duplication	Free_dup
			Translocation
			Compound	Text
                        Phenotype ?Text
		Balances ?Map #Balancer
//	possibility to refer to other Intervals to describe a complex rearrangement
//	for the worm this is not too necessary, but important for fly and mouse
//	or perhaps there should be another class Complex_Rear that refers to
//	several intervals.
	        Reference_strain ?Strain
		Remark ?Text
		Isolation	Author Text	// should be ?Author
				Date DateType
				Mutagen UNIQUE Text UNIQUE Text // Text is dose
                Map     ?Map XREF Rearrangement #Map_position
		Positive Locus_inside ?Locus XREF Inside_rearr ?Author
			 Clone_inside  ?Clone XREF Inside_rearr ?Author
                         Rearr_inside ?Rearrangement
		Negative Locus_outside ?Locus XREF Outside_rearr ?Author
			 Clone_outside ?Clone XREF Outside_rearr ?Author
                         Rearr_outside ?Rearrangement
		Mapping_data	Pos_neg_data ?Pos_neg_data
				2_point ?2_point_data
        	                Multi_point ?Multi_pt_data
		Display	Hide_under UNIQUE ?Rearrangement XREF Hides
			Hides ?Rearrangement	// no XREF on purpose
		Location ?Laboratory #Lab_Location
	        Strain   ?Strain XREF Rearrangement
        	Reference ?Paper XREF Rearrangement
      
?Strain  Genotype Text
	 Contains  Gene	 ?Locus XREF Strain
	  	   Allele  ?Allele XREF Strain 
		   Rearrangement	 ?Rearrangement XREF Strain
                   Clone ?Clone XREF In_strain
	 Properties  Males Text
		     Reference_strain Text
		     Outcrossed
		     Mutagen Text
		     CGC_received DateType
         Location ?Laboratory #Lab_Location
	 Made_by Text
	 Remark	?Text
         Reference ?Paper XREF Strain
         Transgene ?Transgene XREF Strain

?Lab_Location	Freezer		Text
		LiquidN2        Text
		Minus70		Text
                Remark		?Text

//
//worm physical map classes
//

?Clone  Remark  General_remark ?Text
		Y_remark ?Text
		PCR_remark ?Text
	Position  Map ?Map XREF Clone #Map_position
        	  pMap UNIQUE  ?Contig XREF Clone  UNIQUE Int UNIQUE Int 
						// pMap units are bands
		  Clone_left_end ?Sequence	// filled by XREF
		  Clone_right_end ?Sequence	// filled by XREF
		  Pos_neg_data ?Pos_neg_data
	Positive  Inside_rearr ?Rearrangement XREF Clone_inside ?Author
		  Positive_locus ?Locus XREF Positive_clone ?Author
		  Hybridizes_to ?Clone XREF Positive_probe ?Grid
		  Hybridizes_weak ?Clone XREF Pos_probe_weak ?Grid
		  Positive_probe ?Clone XREF Hybridizes_to ?Grid
		  Pos_probe_weak ?Clone XREF Hybridizes_weak ?Grid
	Negative  Negative_locus ?Locus XREF Negative_clone ?Author
		  Outside_rearr ?Rearrangement XREF Clone_outside ?Author
		  Negative_probe ?Clone XREF Does_not_hybridize_to ?Grid
		  Does_not_hybridize_to ?Clone XREF Negative_probe ?Grid
        In_strain ?Strain XREF Clone
	Sequence    ?Sequence XREF Clone
	Length	Seq_length UNIQUE Int 			// bp
		Gel_length UNIQUE Float			// Kb
	Location ?Laboratory #Lab_Location
	Gridded ?Grid
	Grid_data ?Grid_data 
        FingerPrint     Gel_Number UNIQUE Int
                        Approximate_Match_to UNIQUE ?Clone XREF Canonical_for
                        Exact_Match_to UNIQUE ?Clone XREF Canonical_for 
                        Funny_Match_to UNIQUE ?Clone XREF Canonical_for 
                        Canonical_for ?Clone UNIQUE Int UNIQUE Int 
				// start and stop offsets from self start
                        Bands   UNIQUE Int UNIQUE Int
                        Gel ?Motif  #Lane               // Magic tag2 construct
	Contig9	Chromosome UNIQUE ?Map 
                Vaxmap UNIQUE Float
		In_Situ  UNIQUE Int UNIQUE Int // percent of physical chromosome
		Cosmid_grid
                Canon_for_cosmid
	        Flag    UNIQUE Int
		Autopos
	Expression_construct	Pattern ?Text	// archaic
  	Reference ?Paper XREF Clone
        cDNA_group Contains ?Clone XREF Contains Text
                   Contained_in ?Clone XREF Contained_in
                   Best_match UNIQUE ?Text
	Expr_pattern ?Expr_pattern XREF Clone
        Sequence_status	Shotgun	UNIQUE DateType
			Finished UNIQUE DateType
			Accession_number UNIQUE Text
	Type Cosmid  // 000824 Lincoln's additions to segregate clones
  	     YAC
  	     cDNA
             Plasmid
	Transgene ?Transgene XREF Clone
        Derived_from	?Clone

#Lane UNIQUE Bands UNIQUE Float REPEAT // In base pairs: if you prefer to minimise the ace format
             Band_Lengths  UNIQUE Float REPEAT // in mm: if you prefer to minimise the ace format
             Band Float Text    // if you wish to comment single band value

?Grid	Title	?Text
	Layout	Columns	UNIQUE Int
		Lines_at UNIQUE Int UNIQUE Int	// x, y spacing
		Space_at UNIQUE Int UNIQUE Int	// x, y spacing
		No_stagger // default is with alternate lines staggered
		Size UNIQUE Int UNIQUE Int
                      // idea is to give box size here
		Labels 	UNIQUE	A1_labelling
		    // label spaced blocks a-h down LHS, 1-12 across top
				XY_labelling UNIQUE Text UNIQUE Text
		    // X-axis and Y-axis labels in the form of
		    // 01-XX or XX-01, for ascending vs. descending.
		    // Append an 'A', eg. 01-10A, for alphabetic.
	View ?View
	Row Int #Grid_row

?Grid_row UNIQUE Clone UNIQUE ?Clone XREF Gridded REPEAT
		 Mixed #Mixed_grid_row

?Mixed_grid_row UNIQUE Clone UNIQUE ?Clone XREF Gridded #Mixed_grid_row

?Contig Map ?Map XREF Contig #Map_position
        pMap UNIQUE Int UNIQUE Int         // extremities in pMap units
	Clone ?Clone XREF pMap

?Species Common_name ?Text
         Phylogeny Kingdom UNIQUE Text
		   Phylum UNIQUE Text
		   Subphylum UNIQUE Text
		   Class UNIQUE Text
		   Order UNIQUE Text 
		   Family UNIQUE Text 
		   Genus UNIQUE Text
         Protein ?Protein XREF Species
//
// Map data classes
//

?2_point_data   Genotype  UNIQUE Text
		Results  UNIQUE Text
		Experiment	Mapper ?Author
				Laboratory ?Laboratory
				Date  UNIQUE DateType
				Temperature UNIQUE Text
		Point_1 UNIQUE Locus_1	UNIQUE ?Locus XREF 2_point UNIQUE ?Allele XREF In_2_point
			       Allele_1 UNIQUE ?Allele XREF 2_point
			       Rearrangement_1 UNIQUE ?Rearrangement XREF 2_point
                               Transgene_1 UNIQUE ?Transgene XREF 2_point
		Point_2 UNIQUE Locus_2	UNIQUE ?Locus XREF 2_point UNIQUE ?Allele XREF In_2_point
			       Allele_2 UNIQUE ?Allele XREF 2_point
			       Rearrangement_2 UNIQUE ?Rearrangement XREF 2_point
                               Transgene_2 UNIQUE ?Transgene XREF 2_point
			// Point_1 and Point_2 are tag2 for the mapped loci
			// for now to use this on a map both must be on it with Position type Map info.
		Calculation UNIQUE Full UNIQUE Int UNIQUE Int UNIQUE Int UNIQUE Int // WT X Y XY
				   One_recombinant UNIQUE Int UNIQUE Int // WT X
				   Selected UNIQUE Int UNIQUE Int // X XY
				   One_all UNIQUE Int UNIQUE Int // X ALL
				   Recs_all UNIQUE Int UNIQUE Int UNIQUE Int UNIQUE Int // X Y ALL
				   One_let UNIQUE Int UNIQUE Int // X ALL
				   Tested UNIQUE Int UNIQUE Int // X H
				   Selected_trans UNIQUE Int UNIQUE Int // X XY
				   Backcross UNIQUE Int UNIQUE Int UNIQUE Int UNIQUE Int // WT X Y XY
				   Back_one UNIQUE Int UNIQUE Int // WT X
				   Sex_full UNIQUE Int UNIQUE Int UNIQUE Int UNIQUE Int // WT X Y XY
				   Sex_one UNIQUE Int UNIQUE Int // WT X
				   Sex_cis UNIQUE Int UNIQUE Int // X ALL
				   Dom_one UNIQUE Int UNIQUE Int // WT nonWT
				   Dom_selected UNIQUE Int UNIQUE Int // WT X
				   Dom_semi UNIQUE Int UNIQUE Int // XD ALL
				   Dom_let UNIQUE Int UNIQUE Int // WT ALL
				   Direct UNIQUE Int UNIQUE Int // R T
				   Complex_mixed UNIQUE Int UNIQUE Int // X ALL
			// calculation fields can be used for full likelihood calculations
		Calc  Calc_distance UNIQUE Float
		      Calc_lower_conf UNIQUE Float
		      Calc_upper_conf UNIQUE Float
			// these fields are filled in by software from the Calculation data
	        Simple_distance	Min      UNIQUE Float 
                                Distance UNIQUE Float
                                Max      UNIQUE Float
                                Error    UNIQUE Float
                                Linkage  UNIQUE Text
			// some of these are used for drawing in the absence of Calculation data
		Remark ?Text
	// code uses Point_1, Point_2, Calculation and all its subtags, all the Calc subtags,
	// and most of the Simple_distance subtags.
		
?Pos_neg_data	Genotype  UNIQUE Text
		Results  UNIQUE Text
		Experiment Mapper ?Author
			   Laboratory ?Laboratory
			   Date  UNIQUE DateType
		Item_1	UNIQUE	Locus_1	UNIQUE ?Locus XREF Pos_neg_data UNIQUE ?Allele XREF In_pos_neg_data
			     	Rearrangement_1 UNIQUE ?Rearrangement XREF Pos_neg_data
				Allele_1 UNIQUE ?Allele XREF Pos_neg_data
				Clone_1 UNIQUE ?Clone XREF Pos_neg_data
		Item_2	UNIQUE	Locus_2	UNIQUE ?Locus XREF Pos_neg_data UNIQUE ?Allele XREF In_pos_neg_data
			     	Rearrangement_2 UNIQUE ?Rearrangement XREF Pos_neg_data
				Allele_2 UNIQUE ?Allele XREF Pos_neg_data
				Clone_2 UNIQUE ?Clone XREF Pos_neg_data
		Calculation UNIQUE Positive
				   Negative
		Remark ?Text
	// code uses Item_1, Item_2, Positive and Negative

?Multi_pt_data	Genotype  UNIQUE Text
		Experiment  Mapper ?Author
			    Laboratory ?Laboratory
			    Date  UNIQUE DateType
		Selected A UNIQUE Locus_A UNIQUE ?Locus UNIQUE ?Allele XREF In_multi_point
				  Allele_A UNIQUE ?Allele
				  Rearrangement_A UNIQUE ?Rearrangement
                                  Transgene_A UNIQUE ?Transgene XREF Multi_point
			 B UNIQUE Locus_B UNIQUE ?Locus UNIQUE ?Allele XREF In_multi_point
				  Allele_B UNIQUE ?Allele
				  Rearrangement_B UNIQUE ?Rearrangement
                                  Transgene_B UNIQUE ?Transgene XREF Multi_point 
		Locus ?Locus UNIQUE ?Allele XREF In_multi_point	    // just to pair up alleles
		Results A_non_B #Multi_counts
			B_non_A	#Multi_counts
			Combined #Multi_counts
		Old_CGC_results Text
		Remark ?Text
	// code uses all the Results subtags, and the #Multi_counts structure

?Multi_counts	UNIQUE Locus UNIQUE ?Locus XREF Multi_point UNIQUE Int #Multi_counts
		       Allele UNIQUE ?Allele XREF Multi_point UNIQUE Int #Multi_counts
		       Rearrangement UNIQUE ?Rearrangement XREF Multi_point UNIQUE Int #Multi_counts

?Grid_data	Experiment  Mapper ?Author
			    Laboratory ?Laboratory
			    Date  UNIQUE DateType
		Positive Hybridizes_to ?Clone
			 Positive_product ?Clone
		Grid_data Grid UNIQUE ?Grid
			  Probe	UNIQUE Clone UNIQUE ?Clone XREF Grid_data
		// tag 2 for probe - REQUIRED
			  Default_negative
		// if set then all non-explicit elements on Grid score -ve

//
// Laboratory/Bibliography
//

?Laboratory     Address Mail Text
                        Phone Text
                        E_mail Text
			Fax Text
                CGC     Representative UNIQUE ?Author XREF Laboratory 
                        Strain_designation Text
                        Allele_designation Text
                        Gene_classes ?Gene_Class XREF Designating_laboratory
		Staff   ?Author XREF Laboratory

?Author Full_name Text
	EMBL_name Text
        Also_known_as Text
	Laboratory UNIQUE ?Laboratory XREF Staff
	Old_lab ?Laboratory
        Address Mail Text
                E_mail Text
                Phone Text
		Fax   Text
        Paper ?Paper
	Sequence ?Sequence XREF From_author
        Keyword ?Keyword

?Journal Paper ?Paper XREF Journal

?Paper  Reference       Title UNIQUE ?Text 
                        Journal UNIQUE ?Journal XREF Paper
			Publisher UNIQUE Text
			Editor ?Text		//used for books put in as whole objects
                        Page  UNIQUE  Text UNIQUE Text
                        Volume UNIQUE Text Text
                        Year UNIQUE Int
			In_book #Paper
			Contained_in ?Paper XREF Contains	// old form
			Medline_acc UNIQUE Int
        Author ?Author XREF Paper #Affiliation
	Affiliation Text	// Authors' affiliation if available
        Brief_citation UNIQUE Text
        Abstract ?LongText
	Type UNIQUE Text        //meaning review, article, chapter, monograph, news, book, meeting_abstract
	Contains ?Paper XREF Contained_in
        Refers_to Locus ?Locus XREF Reference
                  Allele ?Allele XREF Reference
		  Rearrangement ?Rearrangement XREF Reference
		  Sequence ?Sequence XREF Reference
		  Strain ?Strain XREF Reference
		  Clone ?Clone XREF Reference
		  Protein ?Protein XREF Reference
		  Expr_pattern ?Expr_pattern XREF Reference
                  Cell ?Cell XREF Reference
                  Cell_group ?Cell_group XREF Reference
                  Life_stage ?Life_stage XREF Reference
                  RNAi ?RNAi XREF Reference  // added for Lincoln RNAi [001213 dl]
                  Transgene ?Transgene XREF Reference
        Keyword ?Keyword

#Affiliation Affiliation_address UNIQUE Text

//Affiliation Text	// Authors' affiliation if available
//usually comes with wbg abstracts and worm meeting abstracts
//new ones used the hash structure, some old ones probably still use this

//
// Cell models
//

?Cell   Other_name Text
        Fate    ?Text
        Embryo_division_time Text
        Remark        ?Text
        Lineage Parent  UNIQUE  ?Cell XREF Daughter
                Daughter      ?Cell XREF Parent
                Lineage_name    Text
                Equivalence_fate ?Cell XREF Equivalence_origin
                Equivalence_origin ?Cell XREF Equivalence_fate
		Sex_dimorphism Herm_origin ?Cell XREF Herm_fate // Added according to Sylvia 5/06/2000
			       Herm_fate ?Cell XREF Herm_origin
			       Male_origin ?Cell XREF Male_fate
			       Male_fate ?Cell XREF Male_origin
	Cell_group ?Cell_group XREF Cell
	Life_stage ?Life_stage XREF Cell
        Tree_Node ?TreeNode XREF Cell
        Reference ?Paper XREF Cell
	Data	Expr_pattern ?Expr_pattern XREF Cell
		Reconstruction ?Reconstruction XREF Cell #ReconCellInfo
	        Neurodata ?Cell #Neurodata
        Atlas ?Atlas XREF Cell
        Link_diagram Text
 
// MODEL FOR WORMBASE ATLAS (VIRTUAL WORM)
// 000824 added for Lincoln

?Atlas  Cell ?Cell XREF Atlas
	Name UNIQUE Text
 	Location UNIQUE Text
 	Title UNIQUE Text
 	Comments UNIQUE Text
 	Banner UNIQUE Text
 	Up_arrow UNIQUE Text
 	Down_arrow UNIQUE Text
 	Sx_arrow UNIQUE Text
 	Dx_arrow UNIQUE Text	
 	X_position UNIQUE Text
 	Y_position UNIQUE Text	

?Neurodata      Send    Text    UNIQUE Int              // series count
                Send_joint      Text    UNIQUE Int      // ditto for the rest
                Receive Text    UNIQUE Int
                Receive_joint   Text    UNIQUE Int
                Gap_junction    Text    UNIQUE Int
                Contact Text    UNIQUE Int

?Reconstruction Cell ?Cell
		Author ?Author
		Date UNIQUE DateType
		Remark ?Text
		Description ?LongText

?ReconCellInfo	Birth UNIQUE Float
	 	Timepoint Float #Timepoint

?Timepoint XYZ UNIQUE Float UNIQUE Float UNIQUE Float


//
// Sequence models 
//

?Sequence DNA UNIQUE ?DNA UNIQUE Int		// Int is the length
		// if you want to register a length without a DNA sequence, then use
		// a dummy sequence object, say "-".  This ensures that when a real
		// sequence appears, its length dominates.
	  SMap S_Parent Canonical_parent UNIQUE ?Sequence XREF Genomic_non_canonical 
	       S_Child Homol_data ?Homol_data XREF Sequence UNIQUE Int UNIQUE Int #SMap_info
		       Feature_data ?Feature_data XREF Sequence UNIQUE Int UNIQUE Int #SMap_info
		       Genomic_non_canonical ?Sequence XREF Canonical_parent UNIQUE Int UNIQUE Int #SMap_info
                       RNAi ?RNAi XREF Sequence UNIQUE Int UNIQUE Int #SMap_info   // added for Lincoln RNAi [001213 dl]
	  Structure  From	Source UNIQUE ?Sequence XREF Subsequence
				Source_Exons Int UNIQUE Int // start at 1
		     Subsequence ?Sequence XREF Source UNIQUE Int UNIQUE Int
		     Overlap_right UNIQUE ?Sequence XREF Overlap_left UNIQUE Int
			// potentially use Overlap_right integer for auto-linking
		     Overlap_left UNIQUE ?Sequence XREF Overlap_right
		     Gap_right UNIQUE Int Text            // 000909 dl added to track gap sizes
		     Clone_left_end ?Clone XREF Clone_left_end UNIQUE Int
		     Clone_right_end ?Clone XREF Clone_right_end UNIQUE Int
		     Flipped
	  DB_info	Database ?Database Text ?Accession_number XREF Sequence UNIQUE Int 
				  // ID  Accession_number & sequence version [dl 2000-07-27]
                        AC_number Text
			Secondary_accession ?Accession_number XREF Sequence
                        NI_number UNIQUE Text
			Protein_id ?Sequence UNIQUE Text UNIQUE Int
				   // modified to deal with multiple protein_ids [dl 1999-12-22]
			DB_remark ?Text		// EMBL/Genbank
			Keyword ?Keyword	// EMBL/Genbank
			DB_annotation ?Database UNIQUE ?LongText
			EMBL_dump_info #EMBL_dump_info
	  Annotation	SwissProt_DE	UNIQUE	Text
			EC_number	?Url
			Pfam	UNIQUE	Text
	  Origin  From_Database UNIQUE ?Database UNIQUE Int	// release number
		  From_Author ?Author XREF Sequence
		  From_Laboratory ?Laboratory
		  Production_group Text
		  Finishing_group Text
		  Date DateType Text			// Text for comments on operation
		  Date_directory UNIQUE Text	// date of this version for cosmids, changed sdm 000731 to text
		  Species ?Species
	  Map ?Map XREF Sequence #Map_position		// use in particular for Genomic_canonical
	  Interpolated_gMap ?Map UNIQUE Float
	  Visible	Title UNIQUE ?Text
	  		Other_name ?Text	// for repeats
			Matching_Genomic ?Sequence XREF Matching_cDNA
		 	Matching_cDNA ?Sequence XREF Matching_Genomic
                        Spliced_cDNA ?Sequence XREF Component_of Int UNIQUE Int UNIQUE Int UNIQUE Int
                        Component_of ?Sequence XREF Spliced_cDNA
			Corresponding_protein UNIQUE ?Protein XREF Corresponding_DNA
		  	Clone ?Clone XREF Sequence 
          	        Locus_genomic_seq ?Locus XREF Genomic_sequence   // Split genomic and other Locus XREFs
			Locus_other_seq ?Locus XREF Other_sequence       // dl 001128
			Enzyme ?Enzyme XREF DNA
		        Related_DNA ?Sequence XREF Related_DNA
		        Related_protein ?Protein XREF Related_DNA
			Remark ?Text
			Confidential_remark ?Text
			Brief_identification UNIQUE ?Text
	  		Reference ?Paper XREF Sequence
			Expression_construct ?Clone	// archaic
			Expr_pattern ?Expr_pattern XREF Sequence
                        RNAi_result ?RNAi XREF Predicted_gene // added for Lincoln RNAi [001213 dl]
		// tag2 system: names of all objects following next tag are shown in the 
		//   general annotation display column as "tag:objname"
	  Properties    Pseudogene Text		// explanation
			Transposon Text		// transposon type
			Genomic_canonical
                        Briggsae_canonical
			Wormpep  
			cDNA cDNA_EST
			RNA	// if set then use U in place of T
			Coding	CDS UNIQUE Int UNIQUE Int
				CDS_predicted_by ?Method Float // score of method
				Precursor
			End_not_found
			Start_not_found
			Transcript	UNIQUE	mRNA	UNIQUE  Processed_mRNA
								Unprocessed_mRNA
						tRNA UNIQUE Text
						rRNA UNIQUE Text
						snRNA UNIQUE Text
						scRNA UNIQUE Text
						misc_RNA UNIQUE Text
			Status	Received UNIQUE DateType
				Library_construction UNIQUE DateType
				Shotgun	UNIQUE DateType
				Shotgun_complete UNIQUE DateType
				Contiguous UNIQUE DateType
				Finished UNIQUE DateType
				Submitted UNIQUE DateType
                                Annotated UNIQUE DateType
				Archived UNIQUE DateType UNIQUE Text // Date Disk
			Match_type  UNIQUE Match_with_function
					   Match_without_function
				// These are designed specifically for measuring 
				// statistics.  What you match should be listed in 
				// Brief_id, Remark etc.  The aim now is to use Brief_id
				// exactly for what you would like a half-line summary to
				// contain, for making tables etc.
	  Quality UNIQUE ?BaseQuality UNIQUE Int
	  SCF_Position UNIQUE ?BasePosition UNIQUE Int
          Assembly  Total_contig_length Int
		    Nbr_gel_readings Int
		    Nbr_contigs Int			// total number
		    Nbr_large_contigs Int		// number > 750bp
		    Large_contig_length Int		// lengths > 750bp
		    Pads_in_large_contigs Int
		    Ns_in_large_contigs Int
		    Double_strand Int	// amount of sequence left to double strand
		// Should most of these be UNIQUE, giving the current status, or is
		// the idea that they will show the time progression?
	  Splices	Confirmed_intron  Int Int #Splice_confirmation
			Predicted_5 ?Method Int Int UNIQUE Float // (x, x+1) or (x, x-1)
			Predicted_3 ?Method Int Int UNIQUE Float // (x, x+1) or (x, x-1)
          Oligo ?Oligo XREF In_sequence Int UNIQUE Int  // for OSP and human mapping mostly
	  Assembly_tags	Text Int Int Text // type, start, stop, comment
	  Allele ?Allele XREF Sequence UNIQUE Int UNIQUE Int UNIQUE Text
		// start, stop, replacement sequence
		// if an insertion point Text is transposon name (distinguished
		// by containing non ACTG letters), and (n, n+1) = T A, so indicates 
		// direction (if known).
		// if a deletion, put '-' as the replacement sequence
	  EMBL_feature  CAAT_signal	Int Int Text #EMBL_info
			GC_signal	Int Int Text #EMBL_info
			TATA_signal	Int Int Text #EMBL_info
			allele_seq	Int Int Text #EMBL_info
			conflict	Int Int Text #EMBL_info
			mat_peptide	Int Int Text #EMBL_info
			misc_binding	Int Int Text #EMBL_info
			misc_feature	Int Int Text #EMBL_info
			misc_signal	Int Int Text #EMBL_info
			misc_recomb	Int Int Text #EMBL_info
			modified_base	Int Int Text #EMBL_info
			mutation	Int Int Text #EMBL_info
			old_sequence	Int Int Text #EMBL_info
			polyA_signal	Int Int Text #EMBL_info
			polyA_site	Int Int Text #EMBL_info
			prim_binding	Int Int Text #EMBL_info
			prim_transcript Int Int Text #EMBL_info
			promoter	Int Int Text #EMBL_info
			repeat_region	Int Int Text #EMBL_info
			repeat_unit	Int Int Text #EMBL_info
			satellite	Int Int Text #EMBL_info
			sig_peptide	Int Int Text #EMBL_info
			variation	Int Int Text #EMBL_info
			enhancer	Int Int Text #EMBL_info
			protein_bind	Int Int Text #EMBL_info
			stem_loop	Int Int Text #EMBL_info
			primer_bind	Int Int Text #EMBL_info
			transit_peptide Int Int Text #EMBL_info
			misc_structure  Int Int Text #EMBL_info
			precursor_RNA   Int Int Text #EMBL_info
			LTR             Int Int Text #EMBL_info
			terminator      Int Int Text #EMBL_info
		// EMBL_features are for legitimate EMBL feature table entries only
	  Analysis_details Analysis_history ?Method DateType
                           Parent_model ?Sequence XREF Child_model DateType    // parent/child relationship for history models [dl 000727]
                           Child_model ?Sequence XREF Parent_model DateType    //
	  Homol	DNA_homol ?Sequence XREF DNA_homol ?Method Float Int UNIQUE Int Int UNIQUE Int #Homol_info
		Pep_homol ?Protein XREF DNA_homol ?Method Float Int UNIQUE Int Int UNIQUE Int #Homol_info
		Motif_homol ?Motif XREF DNA_homol ?Method Float Int UNIQUE Int Int UNIQUE Int #Homol_info
		Homol_homol ?Homol_data XREF DNA_homol ?Method Float Int UNIQUE Int Int UNIQUE Int #Homol_info
			// We will generate a column for each distinct ?Method.  So for
			// distinct Worm_EST and Worm_genomic columns, use ?Method objects
			// Worm_EST_Blastn and Worm_genomic_Blastn.
	  Feature ?Method Int Int UNIQUE Float UNIQUE Text #Feature_info
		// Float is score
		// Text is shown on select, and same Text are neighbours
		// again, each method has a column
		// double-click shows the method
		// absorb TSL_site, TSL, Inverted, Tandem as features
		// and probably Assembly_tags (not yet)
          In_alignment ?Alignment XREF Sequence Int UNIQUE Int
          Method UNIQUE ?Method
          Tree_Node ?TreeNode XREF Sequence // Phylogenetic trees
          Drives_Transgene ?Transgene XREF Driven_by_Sequence
	  Transgene_product ?Transgene XREF Worm_sequence

#EMBL_info	Location UNIQUE Text	// full location if non-trivial
		Qualifier Note Text	// all qualifiers correctly
			  Product Text
	// We could have in #EMBL_info a more complete representation of
	// feature table qualifiers/syntax.  I doubt this is worth it.

#EMBL_dump_info EMBL_dump_method UNIQUE ?Method
                ID_template UNIQUE Text
                ID_division UNIQUE Text
                DE_format UNIQUE Text  
                OS_line UNIQUE Text    
                OC_line Text           
                RL_submission Text     
                EMBL_reference ?Paper  
                CC_line Text           
                source_organism UNIQUE Text
		gene_from_name   

#Splice_confirmation cDNA
                     EST
		     Homology
		     UTR	

// Homol and Feature info

#Homol_info Align Int UNIQUE Int UNIQUE Int 
		        // not needed if full alignment is ungapped
			// one row per ungapped alignment section
			// first int is position in query, second in target
			// third int is length - only necessary when gaps in both sequences align
	    EMBL_dump UNIQUE EMBL_dump_YES
			     EMBL_dump_NO
			// overrides for embl dump based on method
	    EMBL_qualifier Text
			// additional to those in the method, includes '/'

#Feature_info	EMBL_dump UNIQUE EMBL_dump_YES
				 EMBL_dump_NO
			// overrides for embl dump based on method
	        EMBL_qualifier Text
			// additional to those in the method, includes '/'

// Repeat_info - do we need this?

#Repeat_info	Percent_Identity UNIQUE Int
		Score ?Method UNIQUE Float
		N_gaps UNIQUE Int
		Loop UNIQUE Int UNIQUE Int	// rel start, stop
		Unit_Length UNIQUE Int

// SMap stuff

#SMap_info Method ?Method    // methods used in child (optional)
	   Content Homol_only // useful for -nohomol gff option
		   Feature_only // useful for -nofeature gff option
	   Mapping Align Int UNIQUE Int UNIQUE Int 
		        // not needed if full alignment is ungapped
			// one row per ungapped alignment section
			// first int is position in parent, second in child
			// third int is length - only necessary when gaps in both sequences align
		   Mismatch Int
			// Int give position(s) in parent of mismatches (technically in which they will
			// not create an error if they occur
			// if just the tag is set without values, then accept mismatches anywhere
	   Display Max_mag UNIQUE Float	// don't show if more bases per line
		   Min_mag UNIQUE Float	// don't show if fewer bases per line

?Homol_data SMap S_Parent Sequence ?Sequence
	    Homol DNA_homol ?Sequence XREF Homol_homol ?Method Float Int UNIQUE Int Int UNIQUE Int #Homol_info
		  Pep_homol ?Protein XREF Homol_homol ?Method Float Int UNIQUE Int Int UNIQUE Int #Homol_info
		  Motif_homol ?Motif XREF Homol_homol ?Method Float Int UNIQUE Int Int UNIQUE Int #Homol_info
	    // keep the standard model structure, so same code works

?Feature_data SMap S_Parent Sequence ?Sequence
	      Feature ?Method Int Int UNIQUE Float UNIQUE Text #Feature_info
              Method ?Method // added for Lincoln RNAi [001213 dl]
	    // keep the same model as in Sequence, so same code works

?Oligo  Sequence UNIQUE Text  // verbatim sequence 
        Length UNIQUE Int
        GC UNIQUE Float
//        STS STS1 UNIQUE ?STS XREF Oligo1
//            STS2 UNIQUE ?STS XREF Oligo2
        OSP  Score UNIQUE Float
             Tm UNIQUE Float
             Pairwise_scores ?Oligo XREF Pairwise_scores UNIQUE Float Float // score and Tm
        In_sequence ?Sequence XREF Oligo

// Protein class

?Protein  Title UNIQUE ?Text
	  Other_name ?Text	// for repeats
	  Peptide UNIQUE ?Peptide UNIQUE Int UNIQUE Int // Length + checksum
	  Display  View ?View
		   Default_view UNIQUE ?View
	  DB_info	Database ?Database Text ?Accession_number XREF Protein // ID  Accession_number
		  	DB_remark ?Text		// Swissprot CC entries
			Keyword ?Keyword	// Swissprot
	  		DB_searched ?Database Int // Int = version - should this be here?
	  Origin  From_Database ?Database UNIQUE Int	// release number
		  Date DateType Text			// Text for comments on operation
		  Species ?Species               //XREF Protein in geneace
		  Wormpep Replaces ?Protein XREF Replaced_by
			  Inactive Replaced_by ?Protein XREF Replaces
		// inactive wormpep entries won't be output in standard wormpep dumps
	  Visible	Corresponding_DNA ?Sequence XREF Corresponding_protein
		        Related_DNA ?Sequence XREF Related_protein
		        Related_protein ?Protein XREF Related_protein
			Enzyme ?Enzyme XREF Protein
			Reference ?Paper XREF Protein
			Expr_pattern ?Expr_pattern XREF Protein
		// tag2 system.  For now I have not populated this column.  For C. elegans
		// wormpep we want to get the information from the ?Corresponding_DNA 
		// object.  Because those objects have long term continuity, while wormpep
		// objects are one per protein sequence.  At least that is the current 
		// plan.
	  Swiss_feature	Text Int Int Text // feature name, start, stop, note
	  Analysis_details Analysis_history ?Method DateType
	  Homol	DNA_homol ?Sequence XREF Pep_homol ?Method Float Int UNIQUE Int Int UNIQUE Int  #Homol_info
		Pep_homol ?Protein XREF Pep_homol ?Method Float Int UNIQUE Int Int UNIQUE Int  #Homol_info
		Motif_homol ?Motif XREF Pep_homol ?Method Float Int UNIQUE Int Int UNIQUE Int  #Homol_info
                Align_homol ?Alignment XREF Pep_homol ?Method Float Int UNIQUE Int Int UNIQUE Int #Homol_info
                Homol_homol ?Homol_data XREF Pep_homol ?Method Float Int UNIQUE Int Int UNIQUE Int #Homol_info
	  Feature ?Method Int Int UNIQUE Float	// display according to method
					// double-click shows the method
          In_alignment ?Alignment XREF Protein Int UNIQUE Int
          Tree_Node ?TreeNode XREF Protein // Phylogenetic trees

?Motif	Match_sequence  UNIQUE Text	// Text is the DNA or protein sequence
	Num_mismatch UNIQUE Int		// Allowed number of mismatches when matching
					// (default 0)
	Restriction     Isoschizomer ?Motif XREF Isoschizomer
		        Offset UNIQUE Int   
			Cleavage UNIQUE Text  // will show the cleavage points ex: G_ACGT'C
		        Overhang UNIQUE Int
		        Company UNIQUE Text
                        Redundant
        Remark ?Text
	Title ?Text
	DB_info	Database ?Database Text ?Accession_number XREF Motif // ID  Accession_number
	  	DB_remark ?Text
		DB_text ?LongText
		Template ?Url //old way of making and clling URLs
		Web_location ?WWW_server
	Substrate UNIQUE DNA
			 Peptide
	Homol	DNA_homol ?Sequence XREF Motif_homol ?Method Float Int UNIQUE Int Int UNIQUE Int #Homol_info
		Pep_homol ?Protein XREF Motif_homol ?Method Float Int UNIQUE Int Int UNIQUE Int #Homol_info
		Motif_homol ?Motif XREF Motif_homol ?Method Float Int UNIQUE Int Int UNIQUE Int #Homol_info
		Homol_homol ?Homol_data XREF Motif_homol ?Method Float Int UNIQUE Int Int UNIQUE Int #Homol_info

?Accession_number  Entry Sequence ?Sequence
			 Protein ?Protein
			 Motif ?Motif
		   Web_location ?Database // use for WWW display

// The following is the model supported by wwwDisplay() in w4/display.c
// UNIQUE URL UNIQUE Text
//	  Web_location UNIQUE ?<class> // class should have the Build_URL submodel
//	  Build_URL Reference_tag Text Text // tag class(optional)
//		        // use Text following tag if exists
//		        // restricted to class if specified
//		    Use_name Text // class(optional)
//		        // applies only if no Reference_tag found
//		        // restrict to class if specified
//		      // one of Reference_tag or Use_name must succeed		      
//		    Rewrite Text UNIQUE Text Text UNIQUE Text
//		      // prefix_to_add postfix_to_add   prefix_to_remove postfix_to_remove
//		      // once (optional) prefix and postfix are removed, escape necessary chars
//		      // then add specified prefix and postfix

?Database	Name ?Text // Full name
		Contents ?Text // Description of material included
		WWW Reference_tag Text Text // tag class(optional)
		    Use_name Text // class(optional)
		    Rewrite Text UNIQUE Text Text UNIQUE Text
		      // prefix_to_add postfix_to_add   prefix_to_remove postfix_to_remove
		
// Method

?Method	Remark ?Text
	  // the Display information controls how the column looks.
	Display Colour #Colour
		Frame_sensitive
		Strand_sensitive Show_up_strand #Colour
		Score	Score_by_offset	// has priority over width, for Jean
			Score_by_width
			Score_by_histogram UNIQUE Float	// baseline value
			Score_bounds UNIQUE Float UNIQUE Float 
				// limits for squashing
			Percent // '%' in text, + default bounds 25, 100
		Overlap_mode UNIQUE	Overlap		  // draw on top - default
					Bumpable	  // bump to avoid overlap
			     		Cluster		  // one column per homol target
		Width UNIQUE Float
		Symbol UNIQUE Text	// first char only is used
		Right_priority UNIQUE Float // the greater the more right
		Max_mag UNIQUE Float	// don't show if more bases per line
		Min_mag UNIQUE Float	// don't show if fewer bases per line
		Show_text      // only put text in right-hand column if set
	Blastn		// can calculate percent from score if blastn
	Blixem  Blixem_X
		Blixem_N
                Blixem_P
	Belvu
        Gene_assemble	Gene_assemble_method ?Method UNIQUE Float
				// Float factor to multiply score by
			Intron_min UNIQUE Int
			Exon_min UNIQUE Int
			Intron_cost UNIQUE Float UNIQUE Float UNIQUE Int
				// base cost, cost per log bp beyond min
				// Int is min for this if not Intron_min
			Inter_gene_cost UNIQUE Float
        GF_parameters	GF_range UNIQUE Int
				// +- range for genefinder feature calculation
			GF_ATG_cutoff UNIQUE Float
			GF_5_cutoff UNIQUE Float
			GF_3_cutoff UNIQUE Float
	EMBL_dump_info #EMBL_dump_info
	EMBL_dump EMBL_feature UNIQUE Text		// require this
		  EMBL_threshold UNIQUE Float		// apply to score unless overridden
		  EMBL_qualifier Text UNIQUE Text
	  // if 1 Text, it is the entire qualifier including '/'
	  // if 2 Texts, 1st is an sprintf format and 2nd is
	  //   an argument.  If this is "score", "note", "y1", "y2" or "target"
	  //   then use the corresponding field of the Feature or Homol line.
	  // multiple formats will be concatenated until one starts with '/'.
	GFF	GFF_source UNIQUE Text
		GFF_feature UNIQUE Text

//
// METABOLIC SECTION - from Stan Letovsky and the Soybase project
//

?Pathway	Structure Components ?Pathway XREF In_Pathway
			  In_Pathway ?Pathway XREF Components
			  Diagram UNIQUE ?PathwayDiagram XREF Pathway
		Enzyme ?Enzyme XREF Catalyzes #Reference
		Metabolites 	Major_Reactant ?Metabolite XREF Consumed_by #ReactantInfo
				Minor_Reactant ?Metabolite XREF Consumed_by #ReactantInfo
				Major_Product ?Metabolite XREF Produced_by #ReactantInfo
				Minor_Product ?Metabolite XREF Produced_by #ReactantInfo
				Cofactor_Reactant ?Metabolite XREF Consumed_by #ReactantInfo
				Cofactor_Product ?Metabolite XREF Produced_by #ReactantInfo
				Additional_Cofactor_Reactant ?Metabolite XREF Consumed_by #ReactantInfo
				Additional_Cofactor_Product ?Metabolite XREF Produced_by #ReactantInfo
		Ancillary	Anc_reactants ?Metabolite #ReactantInfo
				Anc_products ?Metabolite #ReactantInfo // e.g. for transport. 
				Anc_Enzyme ?Enzyme #Reference
		Activator ?Metabolite XREF Activates #RegulatorInfo
		Inhibitor ?Metabolite XREF Inhibits #RegulatorInfo
		Remark ?Text

?RegulatorInfo	Type UNIQUE Active_site
		Ki Text  //for inhibitor
		Remark ?Text
		Reference ?Paper

?ReactantInfo	Major_Role
		Minor_Role
		Cofactor
		N Int // etc.
		Km Text #Reference
		Vmax Text #Reference
		Substrate_specificity ?Text #Reference
		Remark ?Text
		Reference ?Paper
	
?Enzyme		Other_name ?Text
		EC_Number ?Text #Reference  // probably should be under reaction
		Corresponds_to	Locus ?Locus XREF Enzyme
				DNA ?Sequence XREF Enzyme
				Protein ?Protein XREF Enzyme
		Catalyzes ?Pathway
		Remark ?Text
		Reference ?Paper

?Metabolite	Consumed_by	?Pathway
		Produced_by	?Pathway
		Activates	?Pathway
		Inhibits ?Pathway XREF Inhibitor
		Remark ?Text

?PathwayDiagram	Name ?Text
		Pathway ?Pathway		
		Node Int Float Float Int ?Metabolite // ID X Y LabelID Metabolite
		Arc  Int Int Int  Int Int Float  ?Pathway
		   // ID  Label From To  Curvature Radius Step
		TangentArc Int Int
		   // Arc Tangent
		Label Int Float Float Text // ID X Y Label

?Reference	Reference ?Paper
		Remark ?Text
		Species ?Species
		Description ?Text //For trait information

//NEW - one  new tag added by Paul Sternberg and tag order reversed by SDM

?Expr_pattern	Expression_of	Sequence ?Sequence XREF Expr_pattern
				Clone ?Clone XREF Expr_pattern
				Locus ?Locus XREF Expr_pattern
				Protein ?Protein XREF Expr_pattern
		Expressed_in	Cell ?Cell XREF Expr_pattern
				Cell_group ?Cell_group XREF Expr_pattern
				Life_stage ?Life_stage XREF Expr_pattern
                Localisation ?Text
                Subcellular_localization ?Text
		Type	Reporter_gene ?Text
			In_situ ?Text
			Antibody ?Text
		Pattern ?Text
		Picture ?Picture XREF Expr_pattern	
                Remark ?Text
                Experiment	Laboratory ?Laboratory
				Author ?Author 
				Date UNIQUE DateType
				Strain UNIQUE ?Strain
		Reference ?Paper XREF Expr_pattern
                Transgene ?Transgene XREF Expr_pattern

?Picture Description ?Text
	 Pick_me_to_call Text Text
	 Expr_pattern ?Expr_pattern XREF Picture

?Cell_group	Fate ?Text	
		Remark	?Text
		Contains	Cell ?Cell XREF Cell_group
				Sub_group ?Cell_group XREF Contained_in
		Contained_in ?Cell_group XREF Sub_group
		Type	UNIQUE  Tissue
				Organ
				Region
		Expr_pattern ?Expr_pattern XREF Cell_group	
		Life_stage ?Life_stage XREF Cell_group
                Reference ?Paper XREF Cell_group
                Tree_Node ?TreeNode XREF Cell_group

?Life_stage	Contains Cell ?Cell XREF Life_stage
			 Cell_group ?Cell_group XREF Life_stage
                         Sub_stage ?Life_stage XREF Contained_in
                Contained_in ?Life_stage XREF Contains
                Preceded_by ?Life_stage XREF Followed_by
		Followed_by ?Life_stage XREF Preceded_by
		Expr_pattern ?Expr_pattern XREF Life_stage
		Remark	?Text
                Reference ?Paper XREF Life_stage

//
// Alignment models
//

?Alignment Description ?Text
	   Consensus UNIQUE Verbatim UNIQUE Text
	   Alignment	Sequence ?Sequence XREF In_alignment Int UNIQUE Int #Align_component  // Member_Alignment
			Protein ?Protein XREF In_alignment Int UNIQUE Int #Align_component
			Include_alignment ?Alignment XREF In_alignment UNIQUE Int UNIQUE Int #Align_component
	   In_alignment #Alignment
	   Parent ?Alignment XREF Child
	   Child ?Alignment XREF Parent Int UNIQUE Int #Align_component
	   Is_subalign
	   Homol Pep_homol ?Protein XREF Align_homol ?Method Float Int UNIQUE Int Int UNIQUE Int #Homol_info

#Align_component  Verbatim UNIQUE Text				// use this not extracted seq if present
		  Extract UNIQUE DNA #Extract_info
				 Peptide #Extract_info
				 Translate #Extract_info
				 Alignment #Extract_info
		  Partial UNIQUE Int UNIQUE Int			// start, end of self
                  Properties  Is_frame_shifted
			      Has_introns
			      Checked
			      Core
				 
#Extract_info UNIQUE Gap UNIQUE Int #Extract_info
		     Seg UNIQUE Int UNIQUE Int #Extract_info
		     Insert UNIQUE Int #Extract_info		// add X's, not .'s

#Match_seg UNIQUE Int UNIQUE Int UNIQUE Int UNIQUE Int #Match_seg  // Start, End of Aligment;  Start, End of Subject

// URL and WWW

?Url    Url UNIQUE Text // Simple, text of URL
        Template UNIQUE ?Url // use this object as a generic template
        Reference_tag UNIQUE Text // look for this tag in the reffing object for url
        Remove_prefix UNIQUE Text // prefix to remove to make url
        Remove_postfix UNIQUE Text // postfix to remove to make url
        Prepend UNIQUE Text // then add this to the beginning
        Append UNIQUE Text // then add this to the end
	Web_location UNIQUE ?WWW_server

?WWW_server	Url UNIQUE Text // Simple, text of URL 	
		Use_name Text // (optional) Classname
		Rewrite Text UNIQUE Text Text UNIQUE Text 
		Reference_tag UNIQUE Text // look for this tag in the reffing object for url

///////////////////////////////////////////////////////////////////////////////
//
//      The Tree Classes from Richard Bruskiewich with a few fields commented out
//       species class not put in because we already have a different one in the worm database

?Tree    Description UNIQUE ?Text		// Used as graph display title if present
         Type UNIQUE Taxonomy			// Controls semantics of tree display
                     DNA
                     Protein
                     Cell_Lineage
         Root UNIQUE ?TreeNode
         Display     No_Header			// Suppresses display "header"
                     Descriptive_Labels		// Show descriptive labels
                     Colour			// Taxon_colouring if present
                     Normalization    UNIQUE Float	// Normalization factor for display (defaults to 1.0)
                     Bootstrap_Factor UNIQUE Float	// Normalization factor for bootstrap values (defaults to 1.0)
                     Hide_Bootstraps
                     Alignment UNIQUE Top	// How the dendrogram is to be drawn
                                      Middle
                                      Bottom
                                      Unrooted  // Unrooted "star" tree
	 Embedded_tree ?Tree			      

?TreeNode       Label UNIQUE ?Text		// Tree vertex label, e.g. sequence name or taxon   
                Id    UNIQUE Int		// Node numbering...
                Description  ?Text
		Type UNIQUE  Root		// Root ?TreeNode should be so designated!
                             Interior
		             Leaf
                Distance UNIQUE	Float		// "Evolutionary distance" or branch length
                Bootstrap UNIQUE	Float		// Node subtree "bootstrap" values
                Tree   UNIQUE   ?Tree
		Parent UNIQUE   ?TreeNode XREF  Child
		Child           ?TreeNode XREF  Parent
                Display  Hide			// Hide the subtree (children) of this node
                         Colour   UNIQUE #Colour // Fixes the colour of the subtree; 
                                                 // overridden by child node settings
                         Hide_Bootstraps         // Hide all bootstraps in subtree...
                         Show_Bootstrap          // ... except those with the "Show_Bootstrap" tag set
                Contains Sequence UNIQUE ?Sequence XREF Tree_Node
		         Protein  UNIQUE ?Protein  XREF Tree_Node
                         Cell     UNIQUE ?Cell     XREF Tree_Node
                         Cell_group UNIQUE ?Cell_group  XREF Tree_Node     //URL UNIQUE ?Url XREF Tree_Node
                         Pick_me_to_call UNIQUE Text Text
                         Embedded_Tree ?Tree
//              Positive Has_Gene_Function           ?Gene_Function XREF PosTreeNode
//                       Family_Member               ?Gene_Family XREF PosTreeNode
//              Negative Does_NOT_Have_Gene_Function ?Gene_Function XREF NegTreeNode
//                       NOT_Family_Member           ?Gene_Family XREF NegTreeNode
//              Map ?Map XREF      Tree_Node #Map_Position  // Leaf node ordinate

// Jade model for Lincoln/Jean added by rd 000307

?Jade Display Text Text Text UNIQUE Text 
      StandAloneDisplay Text


//transgene from Wen Chen 12/00

#Transgene      Summary UNIQUE ?Text //Searchable description of the transgene
		Driven_by Driven_by_Sequence ?Sequence XREF Drives_Transgene Text //driving promoter
			  Driven_by_Locus    ?Locus    XREF Drives_Transgene	
		Reporter_product UNIQUE	     GFP
					     LacZ
					     Other_reporter ?Text
					     Worm_gene ?Locus XREF Transgene_product Text
					     Worm_sequence ?Sequence XREF Transgene_product Text
		Isolation Author ?Author
			  Clone ?Clone XREF Transgene Text //injected clone conc.
			  Fragment Text Text //injected DNA fragment conc. 
			  Injected_into_CGC_strain ?Strain
			  Injected_into Text 	// for strains not available in CGC
			  Integrated_by UNIQUE Gamma_ray
					       X_ray
				   	       Spontaneous
				     	       UV
				     	       Not_integrated
				     	       Other_integration_method	Text 
		Location ?Laboratory #Lab_Location //Which Labs have the transgene.
		Strain ?Strain XREF Transgene //All strains in CGC with the transgene.
		Map ?Map  #Map_position 
		Mapping_data 2_point ?2_point_data 
			     Multi_point ?Multi_pt_data
		Phenotype	?Text	//Phenotype should be described as "Unc. With other ..."
		Rescue ?Locus XREF Rescued_by_Transgene ?Allele XREF Rescued_by_Transgene
		Expr_pattern ?Expr_pattern XREF Transgene //Related Expr_pattern
		Remark ?Text //More comments on the transgene
		Reference ?Paper XREF Transgene //papers refered to the transgene.


// RNAi from Lincoln Stein 001213

?RNAi   SMap S_Parent Sequence ?Sequence                       // canonical parent (reliable)
        Method ?Method
        Experiment      Laboratory ?Laboratory
                        Author ?Author
                        Date UNIQUE DateType
                        Strain UNIQUE ?Strain
        Inhibits  Predicted_gene ?Sequence XREF RNAi_result    // "gene" parent (unreliable)
        Reference ?Paper XREF RNAi
        Phenotype ?Phenotype XREF RNAi #Phenotype_info

#Phenotype_info Remark ?Text	                        // specific remarks about this instance
                Penetrance UNIQUE Int	                // estimated percent penetrance (0-100)
                Temperature_sensitive Int UNIQUE Int	// temperature (degrees C), penetrance
                Quantity UNIQUE Int UNIQUE Int          // for quantitative phenotypes low/high
 
?Phenotype Description ?Text
           Assay ?Phenotype_assay
           Remark ?Text
           Related_phenotypes Specialisation_of ?Phenotype XREF Generalisation_of
                              Generalisation_of ?Phenotype XREF Specialisation_of
                              Equivalent_to ?Phenotype XREF Equivalent_to
                              Similar_to ?Phenotype XREF Similar_to
           Attribute_of       RNAi ?RNAi XREF Phenotype
                              Locus ?Locus XREF Controlled_phenotype
 
?Phenotype_Assay Description ?Text

// end of file

