Permalink
Browse files

J2 version

git-svn-id: svn+ssh://svn.internal.sanger.ac.uk/repos/svn/pathsoft/artemis/trunk@1642 ee4ac58c-ac51-4696-9907-e4b3aa274f04
  • Loading branch information...
1 parent 05f1f1e commit 086a234ddca43622fd3e2db27a52d57db38462a7 tjc committed Jun 9, 2004
Showing with 1,544 additions and 0 deletions.
  1. +206 −0 corba/apollo.idl
  2. +53 −0 corba/ensembl.idl
  3. +560 −0 corba/nsdb.idl
  4. +260 −0 corba/nsdb_write.idl
  5. +131 −0 corba/seqdb.idl
  6. +334 −0 corba/types.idl
View
@@ -0,0 +1,206 @@
+// Apollo transport layer
+// all syntax subject to change
+// typedef sequence <Xxx> XxxList assumed
+// maybe some of the paramsets should be
+// more strongly typed
+//
+// Ewan Birney and Chris Mungall. Apollo list apollo@ebi.ac.uk
+//
+
+module Apollo {
+
+ exception NotSupported { string reason; }; // more exceptions to come
+ exception ProcessError { string reason; };
+ exception OutOfRange { string reason; };
+ exception NeedsUpdate { string reason;};
+
+ struct Param {
+ string name;
+ string value;
+ };
+ typedef sequence <Param> ParamList;
+
+ // use a enum for unit (%, ratio, etc)?
+ struct Score {
+ string type;
+ string value;
+ // EB - lets also have this as a number. Clients have to figure out by the
+ // type.
+ double double_value;
+ };
+ typedef sequence <Score> ScoreList;
+
+ // we should abstract out identifier aspects into
+ // a seperate struct - that way we can attach this to
+ // any kind of object
+ struct Identifier {
+ string name; //main display label
+ string description; //detailed desc
+ sequence <string> synonyms;
+ // DbXrefList dbxrefs;
+ };
+ typedef sequence <Identifier> IdentifierList;
+
+
+ enum StrandType { plus, minus};
+ // a range can be attached to any seq-featurey object
+ struct Range {
+ long range_min;
+ long range_max;
+ StrandType strand;
+ };
+
+
+ struct ResultSpan {
+ string result_id;
+ ScoreList scores;
+ Range range1;
+ Range range2;
+ };
+ typedef sequence<ResultSpan> ResultSpanList;
+
+
+ // any kind of analysis result or alignment
+ // (genscan-gene, genscan-exon, sim4exonset, sim4exon, blasthit,
+ // blast-hsp, etc)
+ struct ResultSet {
+ string result_id;
+ ScoreList scores;
+ string type;
+ ResultSpanList ResultSpans; // eg hsps for a blast hit
+ Range range1; // eg query start/end
+ Range range2; // eg subject start/end
+ };
+ typedef sequence <ResultSet> ResultSetList;
+
+
+
+ // Evidence is one of the Result lists
+ typedef string Evidence;
+
+ typedef sequence <Evidence> EvidenceList;
+
+ // collection of analysis results
+ struct Analysis {
+ // eg Blast, Pfam
+ string program;
+ ParamList parameters;
+ ResultList results;
+ };
+ typedef sequence <Analysis> AnalysisList;
+
+ // Annotation Comments etc
+
+
+ struct Person {
+ string readable_name;
+ string person_id;
+ }
+
+ typedef long TimeStamp;
+
+
+ struct Comment {
+ string comment_id;
+ string text;
+ Person person;
+ TimeStamp time;
+ };
+ typedef sequence<Comment> CommentList;
+
+
+
+ // Design decision: most of these inherit from a notional seqfeature
+ // superclass - do we (1) merge them into a single struct, with
+ // the seqfeature struct having 'type' and contained-seqfeatures
+ // or (2) have distinct structs and delegate out the commonalities.
+ // i chose the latter, with all the strcuts having a Range attribute
+
+
+ // to fetch the sequence for a gene, it has to be spliced
+ // from the exons
+ struct Exon {
+ Identifier ident;
+ Range range;
+ EvidenceList evidence_list;
+ };
+
+ typedef sequence <Exon> ExonList;
+
+ struct Transcript {
+ Identifier ident;
+ ExonList exons;
+ Range cds_Range; // start/end of translation
+ // note we don't need range including UTR, its implicit from exons
+ EvidenceList evidence_list;
+ CommentList comments;
+ };
+ typedef sequence <Transcript> TranscriptList;
+
+ enum GeneType { PROTEIN_CODING_GENE, TRNA_GENE, TRANSPOSON_GENE };
+
+ // Where does silly text annotation go?
+ struct AnnotatedGene {
+ GeneType type;
+ Identifier ident;
+ TranscriptList transcripts;
+ CommentList comments;
+ };
+ typedef sequence <AnnotatedGene> AnnotatedGeneList;
+
+ struct GenericAnnotation {
+ Identifier ident;
+ string type;
+ ParamList qualifiers;
+ CommentList comments;
+ Range range;
+ EvidenceList evidence_list;
+ };
+
+ typedef sequence <GenericAnnotation> GenericAnnotationList;
+
+
+
+ // collection of annotations and analyses on
+ // a particular piece of sequence
+ // (could be a clone, a contig , a scaffold (order&oriented contigs), an
+ // arbitrary slice of a scaffold, a chromosome, etc)
+ interface AnnotatedRegion {
+ // bind sequence here
+ string sequence_as_string();
+ string sequence_region_as_string(in long start,in long end)
+ raises ( OutOfRange );
+
+ // gets
+ AnalysisList get_analysis_list() raises ( ProcessError ) ;
+ AnnotatedGeneList get_gene_list() raises (ProcessError);
+ GenericAnnotation get_generic_annotation() raises (ProcessError);
+
+
+ // sets
+ void save_AnnotatedGenes(in AnnotatedGeneList new,
+ in AnnotatedGeneList updated,
+ in AnnotatedGeneList dead)
+ raises (NeedsUpdate, ProcessError,OutOfRange);
+
+ void save_GenericAnnotation(in GenericAnnotationList new,
+ in GenericAnnotationList updated,
+ in GenericAnnotationList dead)
+ raises (NeedsUpdate, ProcessError, OutOfRange );
+ };
+
+ // session [or persistence handle]
+ interface Session {
+ void connect(in ParamList param_set);
+ AnnotatedRegion get_AnnotatedRegion(in string id);
+ };
+
+ // singleton;
+ interface SessionManager {
+ Session initiate_Session(in ParamList param_set);
+ Session retrieve_Session(in ParamList param_set)
+ raises (NotSupported);
+ };
+
+
+};
View
@@ -0,0 +1,53 @@
+
+module Ensembl {
+ module artemis {
+
+ exception RequestedSequenceTooLong { };
+ exception NoEntry { string reason; };
+
+ interface BioSequence {
+ string getSubSequence(in long start,in long end) raises (RequestedSequenceTooLong);
+ long length();
+ long max_sequence_request();
+ };
+
+ struct Qualifier {
+ string name;
+ sequence<string> values;
+ };
+
+ typedef sequence <Qualifier> QualifierList;
+
+ interface Feature {
+ string getKey();
+ string getLocation();
+ QualifierList getQualifiers();
+ };
+
+ typedef sequence <Feature> FeatureList;
+
+ interface Entry {
+ string getName(); // accession number usually.
+ long getFeatureCount();
+ FeatureList getAllFeatures();
+ BioSequence getSequence();
+ };
+
+ typedef sequence<string> QualifierDefinitionList;
+ struct FeatureDefinition {
+ string key;
+ QualifierDefinitionList qualifiers;
+ };
+ typedef sequence<FeatureDefinition> FeatureDefinitionList;
+
+ typedef sequence<string> EntryNameList;
+
+ interface DB {
+ Entry getEntry(in string entryname) raises (NoEntry);
+ EntryNameList getallEntryNames();
+
+ // coordination of the ORB.
+ FeatureDefinitionList getFeatureDefinitionList();
+ };
+ };
+};
Oops, something went wrong.

0 comments on commit 086a234

Please sign in to comment.