From: Joan M. <ma...@pc...> - 2003-01-15 18:33:15
|
Hi Arnand, I have been very busy and have not had the time to follow these thread messages, completely but I have a request for GUS30. Since there have been many controlled vocabulary tables created, perhaps some that are not covered by the existing ontologies (e.gs., DoTS::InteractionType, DoTS::EffectorActionType, DoTS::ComplexType, also any that have been mentioned previously, see below). Could you provide the terms and definitions that will be in these tables as the controlled vocabularies, this would best be in an XML format representing the table, so the table can be populated by a plugin, and also document these tables using the format that is required by the documentation plugin (I believe when you were here we mentioned this plugin). In addition, if other tables have been created by Crabtree for you please do this for the documentation of these tables. If you had already planned to do this then sorry for the push. Thanks, Joan Jonathan Crabtree wrote: > Arnaud- > > Thanks for the feedback; I think we're getting close to agreement here. > > > I have noticed that your changes don't cover the DNA/RNA features. Is > > there any reason for this ? I know there are quite a lot of them and > > there might be another way of storing data some information such as > > telomere or centromere regions, origin of replication, inflection point > > etc. All these features are covered by Sequence Ontology, so a new > > ChromosomeElement or ChromosomeRegion feature could be generic enough to > > cover most of them. > > Let me know what you think. > > Which DNA/RNA features do you mean (other than those mentioned above)? > It's possible that I misplaced the e-mail or notes where we discussed > these. Or are you just saying that we will eventually have a view for > each type of DNA/RNA feature in the Sequence Ontology? I think that > this is true, although I hadn't planned to make the change immediately, > since I believe we had agreed on a "transitional" period in which the > various NAFeature views would first be given a nullable sequence_ontology_id > and we would then decide how to best rearrange the views to more closely > match the ontology terms. I haven't added the sequence_ontology_id > column to the NAFeature views, but I will do so right away. We do > currently have some relevant NAFeature views in gusdev that have not > been migrated into 3.0: > > CentromereFeature > LowComplexityNAFeature > ScaffoldGapFeature > TelomereFeature > > I have no objection to merging the telomere and centromere features into > a single view--along with any other chromosomal regions covered by the > ontology--although it would mean that we wouldn't have a 1-1 mapping > between sequence ontology terms and views on NAFeature. I think that > at one point this was proposed as the eventual goal of the rearrangement. > Anyway, given that I'm not certain of the plan here, I'm going to add > the sequence_ontology_id column but leave the views unchanged for now. > They can easily be changed without interfering with our data migration, > so their fate doesn't have to be settled immediately. We have yet to > establish a consistent set of rules for deciding when different types > of features get grouped into a single view and when they get their own > views, so this is probably a good opportunity to settle the question > once and for all. The Sequence Ontology is big enough that we probably > *don't* want a view for each and every term in the ontology; it would > make maintenance quite difficult. But we could, for example, create a > view for every top-level (or second-level) sequence ontology term. > However, even a relatively high-level feature like "chromosomal region" > (SO:0000711) looks like it's already a 4th or 5th level feature... At > the other extreme, we could continue what we're doing now, i.e. using > an ad-hoc classification of features based on the data we actually have > available, and just make sure that every feature is tagged with the > correct sequence ontology term. Any thoughts? > > >> > >> alter table DOTS.PROTEINPROPERTY add constraint PROTEINPROPERTY_CK01 check > >> (property_name in ('isoelectric point', 'molecular mass', 'charge', 'average residue mass')); > >> > >> The table allows multiple protein properties of the same type to be associated with > >> entries in DoTS.AASequenceImp. Arnaud had suggested originally that the last > >> property, average residue mass, could actually be an attribute of the table that > >> stores the protein sequence itself. However, it seemed that if the molecular > >> mass attribute could have multiple values (e.g., from different experiments) then > >> the same should be true of the average residue mass, which is essentially a > >> derived property. Let me know if you disagree with this, or think we should > >> create an explicit controlled vocab. for these 4 properties. > >> > >> > > A controlled vocabulary table with the four attributes you've mentioned > > is fine. > > OK, I'll make this change. > > >>-Protein features > >> *Signal peptide features (stored in DoTS.SignalPeptideFeature) > >> This view exists already, as DoTS.SignalPeptideFeature, but we need to add the > >> ability to store curated data, such as targetting information. It should be > >> straightforward to modify the view to accomodate this, but I'm not sure exactly > >> what needs to be stored. Currently we use the view exclusively for SignalP > >> predictions, and from what I understand SignalP is only concerned with predicting > >> secreted proteins, meaning that we don't currently have any explicit targetting > >> information. Is this something we could represent using the GO ontology for cellular > >> localization? Do we also need some free text columns? Let me know and I'll make > >> the changes. All the SignalP-specific columns appear to be nullable, so we don't > >> necessarily have to do anything except add the new columns for the manually curated > >> information. > >> > >> > > After talking to the curators it appears that GO component suplements > > targetting information at the feature level but will not be enough. > > The targeting information is represented by the component ontology in > > one context i.e. mitochondrial, nuclear, membrane localization but not > > in the context of the actual residues involved. > > The actual residues involved in the targeting (or any other phenomena) > > need to be represented by a protein feature ontology can be mapped onto > > specific amino acids of a protein. > > This ontology is the equivalent of Sequence Ontology (SO) which is meant > > for DNA features. It is being prepared by Val Wood with input from > > Swiss-prot. > > OK, so the idea is that the various signal peptides have been classified > into named classes that should be represented by some kind of ontology? > > > As you're going to add a extra attribute sequence_ontology_id to the NA > > Features, could you do the same to any AA Features ? > > This will only work if the new ontology is actually part of the Sequence > Ontology (or if we use the SequenceOntology table to store both ontologies.) > Do you know if this is the case? It's quite possible, since the SO does > already cover amino acid features. Otherwise we'll have to create a > separate AASequenceOntology (or whatever the new ontology is called). > > >> *Transmembrane domain features (stored in DoTS.PredictedAAFeature) > >> "PlasmoDB web site shows hydrophobicity graphics, where is it stored in GUS?" > >> The hydrophobicity plots are computed dynamically based on the amino acid sequence. > >> Transmembrane domains are currently stored in the PredictedAAFeature view, although > >> I will probably create a new view for them when I get around to eliminating > >> PredictedAAFeature. Another possibility would be to treat TM domains as another > >> type of domain, and store them in DomainFeature. What do you think about this? > >> > >> > > I reckon they could be merged. > > OK, sounds good. > > >> *Post-translational modification features (new view: DoTS:PostTranslationalModFeature) > >> Has a "type" column to represent the type of modification. It was also suggested > >> that we have a column called "modified_by", which would be a reference to the > >> Interaction table. However, isn't it possible that the same post-translational > >> modification (e.g., phosphorylation of a specific amino acid) could be the result > >> of one of several Interactions? > >> > > yes you're right, the effector could be different. In that case the > > attribute > > "modified_by" is not useful. > > > >> This argues for an additional relationship > >> between Interaction and PostTranslationalModFeature, unless we're OK creating > >> multiple PostTranslationalModFeatures, identical except for their modified_by > >> attribute. Comments on this? > >> > >> > > I don't think they should be duplicated as they corresponds to a unique > > site. This unique feature would > > be associated with different interaction entries. We might not need an > > extra table between Interaction and PostTranslationalModFeature though. > > We still can do the following query : "give me all the interaction > > entries which target is a PostTranslationalModFeature which id is ...". > > How does it sound ? > > We could do this, although one question is whether, semantically speaking, > the "target" of an Interaction should be "the thing to be modified" (e.g. an > unphosphorylated sequence or residue) or "the resulting modification" (e.g. > the feature that represents a phosphorylated residue at the appropriate > location.) The answer is probably that we just shouldn't worry about it > and should just do whatever is most convenient on a case-by-case basis. > To do it "correctly" would be problematic either way. For example, if we > say that the target is the thing to be modified, then we have to create a > feature that represents a region of sequence that *could* be modified in > some way and then create another feature to represent the actual modification. > But if we say that the target is the result of the modification then we may > have to create equally unusual tables/views. For example, if the result of > a given interaction is to degrade a protein, then do we have to create a > table/object that represents a degraded protein (or "nothing", or whatever > it is that's left after the modification)? For now I have no problem with > interpreting the "target" based on context, but in the longer term we may > want to consider separating the notions of "target prior to modification" > and either "target after modification" or "effect of modification". > > I also realized belatedly that I could have left the Interaction table > unchanged, rather than introducing specific references to RowSet. This > would have allowed us to represent either singleton effectors/targets or > set-valued effectors/targets, without having to always join through RowSet > in the singleton case. On the other hand, if we do associate some > additional information with the RowSets, then the current representation > is correct. > > >> *AA repeats (new view: RepeatRegionAAFeature) > >> I called this view RepeatRegionAAFeature in case we want to have a similar view > >> for NASequences. I also created only a single view, instead of following Arnaud's > >> original suggestion, which was for both: > >> > >> * RepeatRegionFeature as a set of RepeatUnitFeatures, > >> * RepeatUnitFeature, with the consensus sequence, name and size > >> > >> I based the design of this view on that of TandemRepeatFeature, which we have for > >> NASequences already. Instead of splitting the consensus sequence, name, and size > >> into a separate table, they occupy columns in RepeatRegionAAFeature. This works > >> quite well for the tandem repeats we already have (for DNA sequences.) However, if > >> there is a known set of named amino acid sequence repeats, then it would probably > >> make sense to do what Arnaud suggested, and store these in a separate table > >> (likely named RepeatUnit, not RepeatUnitFeature, since they would have no unique > >> locations.) Does this sound reasonable? That is, put the consensus seqs in the > >> repeat region table itself if they're anonymous, but if they've been named, then > >> store them in a separate table. Also note that this view has a reference to > >> RepeatType, although the current contents of this table are probably applicable > >> only to DNA sequence repeats (LINEs, SINEs, ALUs, etc.), since I believe that I > >> parsed them out of RepBase. > >> > >> > > I proposed a separate repeat feature because one may want to annotate a > > repeat outside a repeat region, for example LTR repeats attached to a > > given transposable element. These RepeatFeatures or RepeatUnitFeatures > > can then have a location. > > The other case is when a repeat region is made of a set of different > > repeat units. > > OK, I didn't realize that this was what you were trying to represent. As > currently conceived, RepeatRegionAAFeature is meant to represent a region > that contains one or more immediately adjacent copies of the same type > of (amino acid sequence) repeat. The assumption is also that these regions > will typically be maximal (with respect to the chosen repeat type, consensus, > and max. mismatch, the last of which is not represented directly in the > table.) We can still represent more complex repeat structures using this > single table, but the representation is implicit, not explicit (i.e. you > have to do a query to find out what other repeats lie within the bounds of > the transposon, meaning that there's no easy way to query for all transposable > elements with a particular flanking LTR structure.) Do you want to come up > with a 2-table version of what I've done? The use cases aren't clear enough > in my mind yet for me to be able to do it. It seems that the bare minimum we > need is just another column in the RepeatRegionAAFeature, parent_id; which > would let us represent explicitly that a particular repeat is a *necessary* > (versus incidental) component of another NA/AAFeature. Both AAFeatureImp > and NAFeatureImp already have a parent_id, so this would be a straightforward > change. The queries still might not be terribly efficient, but I don't know > what exactly you wanted to support in terms of queries, versus just making > sure that the representation is sufficiently rich to capture the structure. > > > In any case, NA repeats and AA repeats should have the same design. Just > > the controlled vocabulary representing the types of repeats will be > > different. > > Absolutely, yes, although one question is whether AA repeats can have the > same kind of nested structure that you mention as a possibility for NA > repeats (the transposon with LTRs). I don't know the answer to this. > > >>-DoTS.Interaction (table modified, dependent tables added) > >> *Added "has_direction" column, as discussed previously. The idea here is that > >> not all interactions (particularly physical ones, e.g., dimerization) have a > >> direction. If has_direction == 0, then the value of direction_is_known can > >> be ignored. > >> *Added non-nullable "effector_action_type_id" column, referencing > >> DoTS.EffectorActionType (a new table.) This column/table represents the possible > >> things that an effector can do to a target. For example, the InteractionType > >> associated with the Interaction could be "binds to" (e.g., a promoter region), and > >> the EffectorActionType for that Interaction could be to either "inhibit" or "enhance" > >> expression of the coresponding gene. > >> *Replaced effector_table_id and effector_row_id with effector_row_set_id, and > >> similarly for the target_table_id and target_row_id. This allows us to represent > >> the interaction of a set of objects (the effector) with another set of objects > >> (the target.) Previously the Interaction table could only represent the interaction > >> between a single pair of entities (OK if they happened to be Complexes, for example, > >> but a potential problem in other situations.) Now both effector and target are > >> represented as references to DoTS.RowSet, which in tun references DoTS.RowSetMember, > >> which...in turn...references the individual database rows that comprise the effector > >> or target. These tables (RowSet and RowSetMember) are essentially the same as > >> Complex and ComplexComponent, except that they are totally generic; they can be > >> used to group any set of rows in the database and they store no additional information. > >> However, if there are any additional columns that we can think of (that are specific > >> to Interactions) then these tables should be replaced by less generic ones (e.g. > >> InteractingEntitySet or InteractionSet, or something along those lines.) > >> > >> > > Sounds fine. The only thing I can see is regarding the > > EffectorActionType. If each effector, member of a RowSet, has a > > different action type, the attribute, effector_action_type_id, should go > > in the RowSetMember table. I don't have any example though. > > OK, I think I'd be inclined to wait until we have some use cases for this. > Although the current schema lets us group effectors together, it doesn't let > us say (for example) that E1 interacts *directly* with T1 to phosphorylate > it, but that E1's active site is only exposed when E1 is bound to E2. In > other words, E1's role in the activity can be viewed as "primary", and E2's > role is secondary (in some sense) but all we can say in the schema is that > the Complex consisting of E1 and E2 interacts with T1 to phosphorylate it. > I think that the solution we have now is OK, but it only lets us represent > the overall action of the entire set of effectors. > > Jonathan > > -- > Jonathan Crabtree > Center for Bioinformatics, University of Pennsylvania > 1406 Blockley Hall, 423 Guardian Drive Philadelphia, PA 19104-6021 > 215-573-3115 > > ------------------------------------------------------- > This SF.NET email is sponsored by: Take your first step towards giving > your online business a competitive advantage. Test-drive a Thawte SSL > certificate - our easy online guide will show you how. Click here to get > started: http://ads.sourceforge.net/cgi-bin/redirect.pl?thaw0027en > _______________________________________________ > Gusdev-gusdev mailing list > Gus...@li... > https://lists.sourceforge.net/lists/listinfo/gusdev-gusdev -- Joan Mazzarelli Computational Biology and Informatics Laboratory Center for Bioinformatics 1429 Blockley Hall University of Pennsylvania Philadelphia, PA 19104 |