Issues for Biomolecular Sequence Analysis FTF mailing list

To comment on any of these issues, send email to biomolecular-ftf@omg.org. (Please include the issue number in the Subject: header, thusly: [Issue ###].) To submit a new issue, send email to issues@omg.org.

List of issues (green=resolved, yellow=pending Board vote, red=unresolved)

List options: All ; Open Issues only; or Closed Issues only

Issue 3335: how to extend BSA DTF?
Issue 3336: truncatable valuetypes
Issue 3437: Biomolecular FTF issue: orb.idl
Issue 3451: MultipleExceptions
Issue 3546: Ambiguous wording in section 2.2.10
Issue 3547: Editorial issue in section 2.2.10
Issue 3548: 2.2.10 has a bullet "an AnalysisType" which is no more valid
Issue 3549: 2.2.10 input Properties
Issue 3550: 2.2.10 the second paragraph is a bit confusing
Issue 3551: method 'result()' of an AnalysisInstance object
Issue 3552: time stamps in section 2.2.9
Issue 3553: Exception NotRunning() is raised by terminate() only
Issue 3554: 2.2.10 about last_event
Issue 3555: Precise definition needed
Issue 3556: Life cycle of an AnalysisInstance
Issue 3557: why does SimilaritySearchHit contain a list of Alignments
Issue 3595: using Time Service
Issue 3687: DsLSRBioObjects issue
Issue 3688: do we have to be more strict about the contents of attributes
Issue 3689: BASIS_NOT_APPLICABLE
Issue 3690: Metadata for properties necessary?
Issue 3691: The spec mentions IUPAC-IUB single letter codes
Issue 3692: DNASequence and RNASequence
Issue 3696: proposed DsLSRBioObjects changes (01)
Issue 3697: proposed DsLSRBioObjects changes (02)
Issue 3698: proposed DsLSRBioObjects changes (03)
Issue 3699: proposed DsLSRBioObjects changes (04)
Issue 3700: proposed DsLSRBioObjects changes (05)
Issue 3763: why no CosLifeCycle::LifeCycleObject for BioSequence ?
Issue 3805: section 2.1.5 (p. 2-7) - CompositeSeqRegion
Issue 3806: section 2.1.9 (p. 2-21) - IntervalOutOfBounds and SeqRegionOutOfBounds
Issue 3807: section 2.1.9 (p. 2-22) SeqRegionInvalid
Issue 3808: section 2.1.9 (p. 2-24) BioSequence
Issue 3809: section 2.1.9 (p. 2-24) BioSequence
Issue 3810: section 2.1.9 (p. 2-24) BioSequence
Issue 3811: section 2.1.9 (p. 2-25) BioSequence
Issue 3812: section 2.1.10 (p. 2-28) NucleotideSequence
Issue 3813: section 2.1.10 (p. 2-30) NucleotideSequence
Issue 3814: section 2.1.15 (p. 2-44) Alignment
Issue 3815: section 2.1.22 (p. 2-63) SeqAnnotationOutOfBounds
Issue 3816: section 2.1.25 (p. 2-71) GeneticCodeFactory
Issue 3870: typedef sequence<Interval> IntervalList; is missing from the spec
Issue 3871: IntervalList get_gaps(in AlignmentElement element, in Interval the_interval
Issue 3872: Separate the Alignment interface into more managable pieces
Issue 3874: add an Identifier to SeqRegion
Issue 3875: inheritance in annotation iterators
Issue 3924: module DsLSRAnalysis issue
Issue 3933: How to stringified CORBA TypeCodes
Issue 3934: Second issue - How to specify "repetitive" inputs
Issue 3961: SeqRegionInvalid not just for wrong StrandTypes
Issue 3962: clarification of strand_type and CompositeSeqRegions
Issue 3963: clarification of SeqRegionOperator.ORDER
Issue 3964: OutOfBounds exceptions for circular sequences if start = 0
Issue 3965: add BioSequence.get_annotations_by_name()?
Issue 3968: use key in Alignment's get_seq_region()

Issue 3335: how to extend BSA DTF? (biomolecular-ftf)

Click here for this issue's archive.
Source: Japan Biological Informatics Consortium (Mr. Martin Senger, martin.senger(at)gmail.com)
Nature: Uncategorized Issue
Severity:
Summary:
   The question is how to extend BSA metadata to be able to include
additional vendor-specific tags.
   Originally, I have suggested tag <extension> of type ANY to be used for
these specific tags. However, in that time my understanding of ANY was
wrong. I thought that an element of type ANY can have any data including
new tags. Which was a wrong assumption. One can use only tags (any of
them) defined in the DTD.
   So now my understanding is that if I need a vendor-specific tags, I
need to extend DTD. The XML books say that an internal DTD has priority
over an external DTD and that document authors can override things using
their own internal DTD. Is this the way how to extend BSA metadata?
   I have tried. Here is an example of an extended XML file with an
internal DTD defined new tags:

<?xml version = "1.0"?>
<!DOCTYPE DsLSRAnalysis SYSTEM "http://localhost/openBSA/docs/DsLSRAnalysis.dtd" [
<!ELEMENT extension (part1?,part2?,part3*)>
<!ELEMENT part1 ANY>
<!ELEMENT part2 ANY>
<!ELEMENT part3 ANY>
]>

<DsLSRAnalysis>
    <analysis type = "search.list">
       <extension>
          <part1> this is part 1 </part1>
       </extension>
    </analysis>
</DsLSRAnalysis>

   Unfortunately, this does not pass validation tests. I am getting an
error saying "Error at (file http://....DsLSRAnalysis.dtd, line 13, char
25): Duplicate element name, "extension".

   Any ideas what I am doing wrong, or what is the correct way how to
extend BSA metadata? Is the element <extension> in BSA DTD useable at all?
If yes, how can be used, if not, should we re-consider it in the FTF?

Resolution: Accepted. A valid DTD was defined.
Revised Text: Replace the appendix D.1 "File: DsLSRAnalysis.dtd" by the following: <!ELEMENT DsLSRAnalysis (analysis)+> <!ELEMENT analysis (description?, input*, output*, analysis_extension?)> <!ATTLIST analysis type CDATA #REQUIRED name CDATA #IMPLIED version CDATA #IMPLIED supplier CDATA #IMPLIED installation CDATA #IMPLIED> <!ELEMENT description ANY> <!ELEMENT input (default?, allowed*, input_extension?)> <!ATTLIST input type CDATA #REQUIRED name CDATA #REQUIRED mandatory (true|false) "false"> <!ELEMENT default (#PCDATA)> <!ELEMENT allowed (#PCDATA)> <!ELEMENT output (output_extension?)> <!ATTLIST output type CDATA #REQUIRED name CDATA #REQUIRED> <!ENTITY % vendor_analysis_tags "<!ELEMENT analysis_extension EMPTY>"> <!ENTITY % vendor_input_tags "<!ELEMENT input_extension EMPTY>"> <!ENTITY % vendor_output_tags "<!ELEMENT output_extension EMPTY>"> %vendor_analysis_tags; %vendor_input_tags; %vendor_output_tags;
Actions taken:
February 21, 2000: received issue
May 24, 2001: closed issue

Issue 3336: truncatable valuetypes (biomolecular-ftf)

Click
here for this issue's archive.
Source: Japan Biological Informatics Consortium (Mr. Martin Senger, martin.senger(at)gmail.com)
Nature: Uncategorized Issue
Severity:
Summary:
It seems to me that we have an error (or errors) in our spec. If I am
right I would like to bring this issue to the attention of the FTF during
Denver meeting.
   Please help me to find if I am mistaken or not.

   My understanding is that for being able to extend BSA spec by
introducing new valuetypes as subclasses of the existing (in BSA 
spec) valuetypes, we need to use "truncatable" in our spec. Having it the
"extended" servers can still provide sub-classed valuetypes to the "dumb"
clients (those who understand only the original valuetype). But without
this keyword the extended servers can work only with extended clients.
Which is not what we wanted (remember the discussion with Oxford Molec.
about it).
   Also the BSA document says in 1.4.1 that we are going to use
"truncatable". However, we did not.

Resolution: accepted
Revised Text: First issue ("truncatable derived Analysis Events") Make the following changes in IDL in module DsLSRAnalysis: change valuetype StateChangedEvent : AnalysisEvent to valuetype StateChangedEvent : truncatable AnalysisEvent change valuetype HeartbeatProgressEvent : AnalysisEvent to valuetype HeartbeatProgressEvent : truncatable AnalysisEvent change valuetype PercentProgressEvent : AnalysisEvent to valuetype PercentProgressEvent : truncatable AnalysisEvent change valuetype TimeProgressEvent : AnalysisEvent to valuetype TimeProgressEvent : truncatable AnalysisEvent change valuetype StepProgressEvent : AnalysisEvent to valuetype StepProgressEvent : truncatable AnalysisEvent make also the same changes in text in 2.2.7 Second issue ("inheritance using truncatable") To remove last bullet in 1.4.1.
Actions taken:
February 21, 2000: received issue
May 24, 2001: closed issue

Issue 3437: Biomolecular FTF issue: orb.idl (biomolecular-ftf)

Source: Japan Biological Informatics Consortium (Mr. Martin Senger,
martin.senger(at)gmail.com)
Nature:
Severity:
Summary:
The corba spec says (in chapter 3.14 "CORBA Module") that "the file
   orb.idl must be included in IDL files that use names defined in the CORBA module".
 
   Our spec does contain (in module DsLSRAnalysis) CORBA::TypeCode. So I
   guess that we should have also #include <orb.idl> there. Some ORBs may
   not compile it properly without it.

Resolution: accepted
Revised Text: Add "#include " to the #include list at the beginning of section 2.2.1. Include it again in the individual descriptions found in the succeeding paragraphs. Add it again in section C.2.
Actions taken:
March 21, 2000: receive dissue
May 24, 2001: closed issue

Issue 3451: MultipleExceptions (biomolecular-ftf)

Click
here for this issue's archive.
Source: Japan Biological Informatics Consortium (Mr. Martin Senger, martin.senger(at)gmail.com)
Nature: Uncategorized Issue
Severity:
Summary:
   Doing my implementation of AnalysisService::create_analysis() I have
found that MultipleExceptions exception does give me only little space for
sending back explanation why the parameter checking failed. I can say
what property caused the failure and I can roughly tell a type of this
failure. But unfortunately there is no 'reason' string to be filled with
an explanatory message.

Resolution: closed
Revised Text: Rejected. This was a contentious issue. One implementer requested the change, the other was satisfied with the existing specification. The issue was resolved by a vote with 1 YES, 2 NO, and 3 ABSTAIN.
Actions taken:
March 23, 2000: received issue
May 24, 2001: closed issue

Issue 3546: Ambiguous wording in section 2.2.10 (biomolecular-ftf)

Click
here for this issue's archive.
Source: Japan Biological Informatics Consortium (Mr. Martin Senger, martin.senger(at)gmail.com)
Nature: Uncategorized Issue
Severity:
Summary:
  2.2.10 says "An AnalysisInstance object must offer...the
EventChannel to which it publishes its analysis events and the last event
that occurred..."
   The wording seems to me ambiguous. I guess that an AnalysisInstance
offer the last event, not the EventChannel - so the last event should be
under separate bullet.
   Suggestion: to split the bullet into two, and also reiterate that the
EventChannel can be null (as stated in 2.2.7).

Resolution: accepted
Revised Text: Split the third bullet in 2.2.10 into the EventChannel, which may be null, to which it publishes its analysis events; the last event that occurred;
Actions taken:
April 11, 2000: received issue
May 24, 2001: closed issue

Issue 3547: Editorial issue in section 2.2.10 (biomolecular-ftf)

Click
here for this issue's archive.
Source: Japan Biological Informatics Consortium (Mr. Martin Senger, martin.senger(at)gmail.com)
Nature: Uncategorized Issue
Severity:
Summary:
   2.2.10 (and on other places) says "the JobControl that clients can
use to control the execution...".
   I think that the word "can" is misleading here, a client could not
start an analysis without a JobControl.
   Suggestion: to drop "can".

Resolution: accepted
Revised Text: Change the fourth bullet in 2.2.10 to the JobControl that clients use to control the execution;
Actions taken:
April 11, 2000: received issue
May 24, 2001: closed issue

Issue 3548: 2.2.10 has a bullet "an AnalysisType" which is no more valid (biomolecular-ftf)

Click
here for this issue's archive.
Source: Japan Biological Informatics Consortium (Mr. Martin Senger, martin.senger(at)gmail.com)
Nature: Uncategorized Issue
Severity:
Summary:
   2.2.10 has a bullet "an AnalysisType" which is no more valid - an
AnalysisInstance does not have any such attribute.
   Suggestion: to remove the bullet

Resolution: accepted
Revised Text: Remove the sixth bullet - "an AnalysisType ..."
Actions taken:
April 11, 2000: received issue
May 24, 2001: closed issue

Issue 3549: 2.2.10 input Properties (biomolecular-ftf)

Click
here for this issue's archive.
Source: Japan Biological Informatics Consortium (Mr. Martin Senger, martin.senger(at)gmail.com)
Nature: Uncategorized Issue
Severity:
Summary:
   2.2.10 says "the input Properties that were used in execution".
   Which is not exact - the input properties are available already after
creation of an AnalysisInstance, even before any execution started,
   Suggestion: to change the wording to something like "used in
creation of this AnalysisInstance".

Resolution: accepted
Revised Text: Change the fifth bullet in 2.2.10 to the input Properties used in creation of this AnalysisInstance;
Actions taken:
April 11, 2000: received issue
May 24, 2001: closed issue

Issue 3550: 2.2.10 the second paragraph is a bit confusing (biomolecular-ftf)

Click
here for this issue's archive.
Source: Japan Biological Informatics Consortium (Mr. Martin Senger, martin.senger(at)gmail.com)
Nature: Uncategorized Issue
Severity:
Summary:
  2.2.10 the second paragraph is a bit confusing. If you read it
slowly it may give you impression that run() is used for asynchonous
invocation and wait() for synchronous.
   Suggestion: to replace the last sentence with:
   "If the client wants to be blocked waiting for the underlying BSA
analysis tool to run to completion, it will invoke the run() method,
followed immediately by the wait() method which will block the client
until service execution completes."

Resolution: accepted
Revised Text: Change the last sentence of the second paragraph in section 2.2.10 ("If the BSA analysis tool ... client in the results.") to If the client wants to be blocked waiting for the underlying BSA analysis tool to run to completion, it will invoke the run() method, followed immediately by the wait() method which will block the client until service execution completes.
Actions taken:
April 11, 2000: received issue
May 24, 2001: closed issue

Issue 3551: method 'result()' of an AnalysisInstance object (biomolecular-ftf)

Click
here for this issue's archive.
Source: Japan Biological Informatics Consortium (Mr. Martin Senger, martin.senger(at)gmail.com)
Nature: Uncategorized Issue
Severity:
Summary:
   Regarding method 'result()' of an AnalysisInstance object:
   If a particular result does not exist (not yet, or at all), should
this method just ignore it, or to send back "an empty" Any (with tc kind
tc_void)?
   Also we should specify what happen if methods result() and
get_result() are called when an analysis is in the states CREATED and/or
RUNNING (as we do it for TERMINATED* states).
   Suggestion: it needs to be discuss whether some document clarification
would be enough, or if we want to have an additional exception.

Resolution: accepted
Revised Text: Change the text in both boxes in 2.2.10 describing methods results() and get_result(): to add "RUNNING or" before TERMINATED_BY_REQUEST to change "two" to "three (several places in the box) to add text: Note 2: An AnalysisInstance in the CREATED state returns an empty list of results.
Actions taken:
April 11, 2000: received issue
May 24, 2001: closed issue

Issue 3552: time stamps in section 2.2.9 (biomolecular-ftf)

Click
here for this issue's archive.
Source: Japan Biological Informatics Consortium (Mr. Martin Senger, martin.senger(at)gmail.com)
Nature: Uncategorized Issue
Severity:
Summary:
  About time stamps attributes (Execution performance information) in
section 2.2.9: it is not clear if the current set of attributes is rich
enough to provide the real "execution" information. Calling run()
method is not necessary the same as starting an execution (considering
some queueing sytem).
   Suggestion: to discuss and maybe to add an attribute keeping the "real"
execution start; anyway the spec needs probably some clarification.

Resolution: accepted
Revised Text: Remove the word "performance" from the first paragraph in 2.2.9 (JobControl).
Actions taken:
April 11, 2000: received issue
May 24, 2001: closed issue

Issue 3553: Exception NotRunning() is raised by terminate() only (biomolecular-ftf)

Click
here for this issue's archive.
Source: Japan Biological Informatics Consortium (Mr. Martin Senger, martin.senger(at)gmail.com)
Nature: Uncategorized Issue
Severity:
Summary:
   Exception NotRunning() is raised by terminate() only (as I remember) if
the analysis is "not yet" running, but it should not be raised if it is
already terminated.
   Suggestion: discuss if we can agree on the sentence above, and include
it into the document.

Resolution: Accepted. It was decided that a state transition should be added.
Revised Text: to change IDL by adding "raises (NotRunning, NotRunnable) to wait() method" to add the following table into 2.2.9 (JobControl) and correct texts in the boxes in the same section to reflect what is in the table state of AnalysisInstance run() wait() terminate() CREATED start it and change status to RUNNING raise NotRunning raise NotRunning RUNNING raise NotRunnable block until finished kill it and change status to TERMINATED_BY_REQUEST or raise NotTerminated COMPLETED raise NotRunnable do nothing raise NotRunnable TERMINATED_BY_REQUEST raise NotRunnable raise NotRunnable raise NotRunnable TERMINATED_BY_ERROR raise NotRunnable raise NotRunnable raise NotRunnable
Actions taken:
April 11, 2000: received issue
May 24, 2001: closed issue

Issue 3554: 2.2.10 about last_event (biomolecular-ftf)

Click
here for this issue's archive.
Source: Japan Biological Informatics Consortium (Mr. Martin Senger, martin.senger(at)gmail.com)
Nature: Uncategorized Issue
Severity:
Summary:
 2.2.10 about last_event says "last event that occurrred during
execution". So what does this attribute return when the analysis instance
is still in CREATED state?
   Suggestion: clarify in the document that in such case a plain
AnalysisEvent is returned.

Resolution: accepted
Revised Text: Add the following single sentence to the box describing last_event in section 2.2.10. If the AnalysisInstance is still in the CREATED state, the last_event should be a plain AnalysisEvent.
Actions taken:
April 11, 2000: received issue
May 24, 2001: closed issue

Issue 3555: Precise definition needed (biomolecular-ftf)

Click
here for this issue's archive.
Source: Japan Biological Informatics Consortium (Mr. Martin Senger, martin.senger(at)gmail.com)
Nature: Uncategorized Issue
Severity:
Summary:
   The document only indicates (by examples) how to code CORBA::TypeCodes
into stringified form used in metadata. We need much precise definition
how to do it and what to expect in 'type' tag of metadata.
   Suggestion:
      a) to investigate if such "rules" already exist in OMG worlds (such
as XMI), then clarify it in our document.
      b) we may find that for sequences of IDL types defined in
DsLSRBioObjects module we will need to add also several sequence<...>
constructs in our spec (fortunately we have already quite a lot there);
this would be needed for being able to specify a "repetitive" argument -
when we do not know how many occurences it can have.

Resolution: split into issues 3933 and 3934
Revised Text:
Actions taken:
April 11, 2000: received issue
October 4, 2000: split into separate issues..closed
May 24, 2001: closed issue

Issue 3556: Life cycle of an AnalysisInstance (biomolecular-ftf)

Click
here for this issue's archive.
Source: Japan Biological Informatics Consortium (Mr. Martin Senger, martin.senger(at)gmail.com)
Nature: Uncategorized Issue
Severity:
Summary:
 Life cycle of an AnalysisInstance. These objects have the back pointer
to their AnalysisServices. However, I can imagine the situation where
clients have AnalysisInstance objects stored somewhere and using them to
retrieve results of previously (even long ago) started and finished
analysis.
   This normal situation can become interesting if the server does not
provide that analysis any more. I feel that it would be still reasonable
to provide access to the old stored results.
   Suggestions:
   But to allow it, our spec should mention this possibility - and allows
to have this back poiter empty. So the client will have access to their
data but with limited support from the server (for example the client
cannot get metadata because the corresponding analysis is simply dead).
   Or we could say that the back poiner cannot remain empty but can return
NO_OBJ... or whatever sytem exception (in situations as described above)>.
   Or, we'd have to change the readonly attribute to a method so that we
can add the exception.

Resolution: Accepted. Document the use of a CORBA system exception.
Revised Text: Add an Exception row to the box describing service in section 2.2.10. Raise CORBA::OBJECT_NOT_EXIST if the AnalysisService is no longer available.
Actions taken:
April 11, 2000: received issue
May 24, 2001: closed issue

Issue 3557: why does SimilaritySearchHit contain a list of Alignments (biomolecular-ftf)

Click
here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary:
during our implementation work we came across the following a point that
is puzzling:

  why does SimilaritySearchHit contain a list of Alignments? A SearchHit is a
  match of one target sequence with one or more matched sequence. Practically
  by definition, each such a hit is _one_ alignment (even if the alignment is
  more than pairwise). So we should either change the spec to be 

    valuetype SimilaritySearchHit : SearchHit
    {
        public Alignment  the_alignment;
    };

  or, leave the spec and document that the only legal length for
  alignment_list is 1. Thoughts?

Resolution: Accepted. Chose to make only the documentation change.
Revised Text: After the first para of 2.1.19 (p. 2-53), insert the following text. The member alignment_list is added to the SearchHit valuetype. This AlignmentList contains the details of a similarity search hit in the form of an Alignment. This list will frequently be of length one, but can be used to group all 'local' hits pertaining to a single found sequence into one SimilaritySearchHit. That is, one SimilaritySearchHit may contain one 'local match' or several 'local matches' on one sequence. What is most appropriate depends on the analysis that was run to obtain the hits, and/or on the objective of a service; an implementation must document these semantics. Also put this blurb (apart from first sentence) just before on 2.1.20, on page 2-55. Add the following to the Return value description of alignment_list on p. 2-54. If the alignment_list contains more than one Alignment, each Alignment shall involve the same two objects, i.e., only two Identifiers are used within one SimilaritySearchHit, one for the initial query_sequence (see SearchResult) and one for the current target sequence. Since each Alignment in a SimilaritySearchHit is a pairwise alignment, the result of the Alignment's num_rows() method shall be 2. On p. 2-60, end of 2.1.21 (just above section 2.1.22), insert the following text. The method get_hits() returns a list of SearchHits. If this concerns SimilaritySearchHits, then these elements will in turn contain a list of Alignments. The latter can be used to group all 'local' hits pertaining to a single found sequence into on SimilaritySearchHit. That is, one SimilaritySearchHit may contain one 'local match' or several 'local matches' on one sequence. What is most appropriate depends on the analysis that was run to obtain the hits, and/or on the objective of a service. An implementation must document these semantics.
Actions taken:
April 11, 2000: received issue
May 24, 2001: closed issue

Issue 3595: using Time Service (biomolecular-ftf)

Click
here for this issue's archive.
Source: Japan Biological Informatics Consortium (Mr. Martin Senger, martin.senger(at)gmail.com)
Nature: Uncategorized Issue
Severity:
Summary:
I would like to discuss the usage of data types from TimeBase module. It
is probable that I just need some patient explanation - but it may also
turn out that some clarification in our bsa spec could be made. I mean a
clarification how to use the TimeBase data types properly.

The talk is about the "absolute" attributes: created, started, ended
(whatever moment they mean - it is a different topic).

   These attributes are expressed as TimeBase::UtcT. Which means that each
of them consists from 4 values: TimeT, two InaccuracyT's and TdfT.
   The simplest is probably TdfT which defines in which time zone the
analysis was executed. Is this interpretation correct?
   The members for inaccuracy may be used to say that the main time (in
TimeT, see below) is actually only precise for milliseconds - because I
guess most implementations and languages give us easily only milliseconds
and not 100 nanoseconds. Again, would this interpretation of these
attributes be correct?
   The main attribute is TimeT. Here is the definition from the TimeBase
spec:

   "TimeT represents a single time value, which is 64 bits in size, and
holds the number of 100 nanoseconds that have passed since the base time.
For absolute time the base is 15 October 1582 00:00 of the Gregorian
Calendar. All absolute time shall be computed using dates from the
Gregorian Calendar."

   My question is: Does CORBA Time Service specify that this attribute
must be an _absolute_ time? Would not be easier (and more appropriate for
our purposes) to say in our spec that this time is _relative_ to the
beginning of the epoch (1/1/1970)? In other words, there are actually two
questions:
   - Do we need to use an absolute time here (to remain compliant with the
Time Service)?
   - And if the answer is "no", then: do we want to have here an absolute
gregorian time?

Resolution: Accepted. Yes, we use absolute time, in compliance with the Time Service. No change to specification
Revised Text:
Actions taken:
May 3, 2000: received issue
May 24, 2001: closed issue

Issue 3687: DsLSRBioObjects issue (biomolecular-ftf)

Click
here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary:
We have been busy implementing the BSA spec, and there's a few things in the
DsLSRBioObjects part that we would like your opinion on. 


The biggest one concerns the Alignment interface. As anticipated by all of us
except Ewan, Alignment is tricky to implement efficiently because of
gaps. The only way to do it is to repeatedly invoke get_seq_region, and
seeing if you get back a null. Of course, an AlignmentEncoder can do this on
the server-side, but it this is still clumsy (and optional). 

Our main proposal is to add an operation 

   IntervalList get_gaps(in AlignmentElement element, in Interval the_interval);

to the interface Alignment. It's job is to simply return all the gaps of a
particular sequence in a particular alignment. For symmetry with
get_seq_region(), the_interval is also given, thus limiting the gaps to those
that you're interested in. 

[ Incidentally, 

    typedef sequence<Interval> IntervalList;

 is missing from the spec; can this be added? ]

One gap would be represented as {start,length}, hence the use of Interval. We
could add
 
  typedef Interval Gap; 

to make the semantics clearer (elsewhere, an Interval is an existing segment;
here it denotes a missing segment). The coordinates of a gap would be those
of the original sequence; gaps of length 0 are not allowed. A gap.start == 0
would be before the first nucleotide/aminoacid; a gap.start = N is a gap
between nucleotides/aminoacids N and N+1 (so gap.start = sequence.length
would be after the last.


Another proposal is to separate Alignment into more managable pieces as
follows:

   interface SimpleAlignment : CosLifeCycle::LifeCycleObject { 
     // ...
     // here, everything get_seq_region()
     // ...
   }
   
   interface Alignment : SimpleAlignment { 
           SeqRegion get_seq_region(
                   in AlignmentElement element,
                   in Interval the_interval)
               raises(ElementNotInAlignment, IntervalOutOfBounds);
   }  

Resolution: split into issues 3870, 3871, 3872
Revised Text:
Actions taken:
June 9, 2000: received issue
September 28, 2000: split into issues 3870, 3871, 3872
May 24, 2001: closed issue

Issue 3688: do we have to be more strict about the contents of attributes (biomolecular-ftf)

Click
here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary:
 do we have to be more strict about the contents of  attributes? E.g., 
    interface BioSequence
    {
        readonly attribute string             name;
        readonly attribute Identifier         id;
        readonly attribute string             description;
        readonly attribute string             seq;
        readonly attribute unsigned long      length;
        readonly attribute Basis              the_basis;

has quite a few strings, all of which could be empty. We may want to
explicitly allow  or forbid this on some of them. 

Resolution: accepted
Revised Text: Add the following sentence to section 2.1.6 (Annotation, p. 2-9: return value of name) section 2.1.9 (BioSequence, p. 2-23: return value of id) section 2.1.18 (SearchHit, p. 2-51: return value of id). X shall not be empty.
Actions taken:
June 9, 2000: receieved issue
May 24, 2001: closed issue

Issue 3689: BASIS_NOT_APPLICABLE (biomolecular-ftf)

Click
here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary:
For enum Basis, we only have BASIS_NOT_KNOWN; for consistence with enum
   StrandTytpe, shouldn't we also have BASIS_NOT_APPLICABLE? 

(actually, I think this Basis thing may turn out to become on epistemological
nightmare, but I digress)

Resolution: accepted
Revised Text: Add BASIS_NOT_APPLICABLE to the enum. Figure 2-2 needs to be changed. The IDL in 2.1.3 needs to be changed. A box for BASIS_NOT_APPLICABLE needs to be added. The IDL in C.1 needs to be changed.
Actions taken:
June 9, 2000: received issue
May 24, 2001: closed issue

Issue 3690: Metadata for properties necessary? (biomolecular-ftf)

Click
here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary:
- We have many properties lying around the spec; do we need a mechanism for
  getting meta data on this? I think we must have discussed in some detail,
  but the situation is quite pressing for SearchHit in particular: there we
  have hit_info, where prolly the most important piece of information is the
  goodness of the hit. What's the name of that: "score"? "p-value"?
  "quality"? What's it's type: float? double ? long? I realize that this is
  difficult to answer (otherwise we would have included it), but we are open
  to suggestions to make the standard a bit more precise in this respect
  (e.g., we're still willing to host a public repository kind-a-thing).

Resolution: accepted
Revised Text: Add the following text as a separate paragraph between paragraphs 2 and 3 in section 2.1. Some of the entities described below use generic types such as Any or name-value pairs. It is deemed outside the scope of this document to standardize the types of values that can be contained in these generic types.
Actions taken:
June 9, 2000: received issue
May 24, 2001: closed issue

Issue 3691: The spec mentions IUPAC-IUB single letter codes (biomolecular-ftf)

Click
here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary:
The spec mentions IUPAC-IUB single letter codes, 

  I think this has been renamed to IUPAC-IUBMB Joint Commission on
  Biochemical Nomenclature (JCBN); the best web site for this is 


  http://www.chem.qmw.ac.uk/iupac/AminoAcid/  (amino acids)
  http://www.chem.qmw.ac.uk/iubmb/misc/naseq.html (nucleic acids)

  http://www.chem.qmw.ac.uk/iubmb/nomenclature/  (all biostandards)

  Might be useful to include in the references. 

  IUB allows termination characters in amino acids; I think we should not
  allow them. Also, it might be good to explicitly state that gap characters
  ('-' or so) are not supposed to be in sequences (this is fairly implicit in
  IUPAC, so I think had doesn't hurt to be clear about this). 

Resolution: accepted
Revised Text: Change the IUPAC references in Appendix A to http://www.chem.qmw.ac.uk/iupac/AminoAcid/ (amino acids) http://www.chem.qmw.ac.uk/iubmb/misc/naseq.html (nucleic acids) http://www.chem.qmw.ac.uk/iubmb/nomenclature/ (all biostandards) Change IUPAC-IUB to IUPAC-IUBMB Joint Commission on Biochemical Nomenclature (JCBN). Add a single sentence to the seq return value box in section 2.1.9. The string will not contain any termination characters, e.g., '*' or gap characters, e.g., '-'.
Actions taken:
June 9, 2000: received issue
May 24, 2001: closed issue

Issue 3692: DNASequence and RNASequence (biomolecular-ftf)

Click
here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary:
Can anybody remember why we don't have DNASequence and RNASequence, both
  inheriting from NucleotideSequence?

Resolution: rejected and closed
Revised Text:
Actions taken:
June 9, 2000: received issue
May 24, 2001: closed issue

Discussion:
 Rejected. This had been debated by the submitters during the revised submission process. A future RFP could
address this.


Issue 3696: proposed DsLSRBioObjects changes (01) (biomolecular-ftf)

Click
here for this issue's archive.
Source: SciTegic Inc. (Scott Markel, Ph.D., nobody)
Nature: Uncategorized Issue
Severity:
Summary:
Several issues have come up during our implementation of the BSA
specification at NetGenics.  In light of what we've learned, I'd like
to propose the following.

  * Have the BSA factories, e.g., AnnotationFactory, inherit from
    CosLifeCycle::Factory.  CosLifeCycle::LifeCycleObject's copy() and
    and move() methods take a CosLifeCycle::FactoryFinder as their
    first argument.  CosLifeCycle::FactoryFinder naturally returns
    CosLifeCycle::Factories.  Note that CosLifeCycle::Factory is just a
    typedef'd Object, so no additional implementation is required.  So,
    for no additional work, we can make the use of CosLifeCycle easier.

Resolution: Rejected as out of scope for the FTF. Withdrawn by proposer.
Revised Text:
Actions taken:
June 12, 2000: received issue
May 24, 2001: closed issue

Issue 3697: proposed DsLSRBioObjects changes (02) (biomolecular-ftf)

Click
here for this issue's archive.
Source: SciTegic Inc. (Scott Markel, Ph.D., nobody)
Nature: Uncategorized Issue
Severity:
Summary:
  * Remove CosLifeCycle::LifeCycleObject behavior from GeneticCode.
    It seems to make sense to have GeneticCodes be singletons, so copy(),
    move(), and remove() really aren't needed.

Resolution: accepted
Revised Text: Remove CosLifeCycle::LifeCycleObject behavior from GeneticCode. IDL under Figure 2-12 in section 2.1.12 needs to be changed. IDL in section C.1 needs to be changed.
Actions taken:
June 12, 2000: received issue
May 24, 2001: closed issue

Issue 3698: proposed DsLSRBioObjects changes (03) (biomolecular-ftf)

Source: SciTegic Inc. (Scott Markel, Ph.D.,
nobody)
Nature: Uncategorized Issue
Severity:
Summary:
 Add initiators and terminators to GeneticCode.  Try using GeneticCode
    to build an ORF finder and you'll appreciate the following
    functionality.

    typedef sequence<Codon> CodonList;

    interface GeneticCode
    {
        // in addition to existing functionality
        readonly attribute CodonList  initiators;
        readonly attribute CodonList  terminators;
        
        boolean is_initiator(in Codon the_codon)
            raises(InvalidResidue);
        boolean is_terminator(in Codon the_codon)
            raises(InvalidResidue);
    };

Resolution: Rejected as out of scope for the FTF. Withdrawn by proposer.
Revised Text:
Actions taken:
June 12, 2000: received issue
May 24, 2001: closed issue

Issue 3699: proposed DsLSRBioObjects changes (04) (biomolecular-ftf)

Click
here for this issue's archive.
Source: SciTegic Inc. (Scott Markel, Ph.D., nobody)
Nature: Uncategorized Issue
Severity:
Summary:
Add SequenceAlphabet.  We decided early on to avoid the sequence
    alphabet issue.  Well, it's back.  It's pretty difficult to actually
    build a GeneticCode or check for invalid residues in the sequence
    factories without some standard functionality.  The following is
    based on the IDL extensions we using in our implementation.  The
    design was patterned after what the submitters did for GeneticCode.
    By the way, this fits in nicely with Philip's comment about adding
    DNASequence and RNASequence.

    typedef sequence<Residue> ResidueList;
    
    typedef string SequenceAlphabetName;
    typedef sequence<SequenceAlphabetName> SequenceAlphabetNameList;

    interface SequenceAlphabet
    {
        readonly attribute SequenceAlphabetName  name;

        // valid is the union of unambiguous and ambiguous
        readonly attribute ResidueList  valid_residues;
        readonly attribute ResidueList  unambiguous_residues;
        readonly attribute ResidueList  ambiguous_residues;

        boolean is_valid(in Residue the_residue);
        boolean is_ambiguous(in Residue the_residue);
        
        // returns the list of all residues included (represented) by
        // the input residue, e.g., return A for A and ACGT for N
        ResidueList included_residues(in Residue the_residue)
            raises(InvalidResidue);
    };

    interface NucleotideSequenceAlphabet : SequenceAlphabet
    {
        readonly attribute ResidueList  complementary_valid_residues;
        readonly attribute ResidueList  complementary_unambiguous_residues;
        readonly attribute ResidueList  complementary_ambiguous_residues;

        Residue complement(in Residue the_residue)
            raises(InvalidResidue);
    };

    interface AminoAcidSequenceAlphabet : SequenceAlphabet
    {
    };

    exception InvalidSequenceAlphabetName
    {
        string invalid_name;
    };

    interface SequenceAlphabetFactory
    {
        const SequenceAlphabetName  IUPAC_DNA  = "IUPAC DNA";
        const SequenceAlphabetName  IUPAC_RNA  = "IUPAC RNA";
        const SequenceAlphabetName  IUPAC_AA   = "IUPAC AA";

        readonly attribute SequenceAlphabetNameList sequence_alphabet_names;
        SequenceAlphabet create_sequence_alphabet(in SequenceAlphabetName name)
            raises(InvalidSequenceAlphabetName);
    };

    interface GeneticCode
    {
        // in addition to its current functionality and the initiators
        // and terminators proposed above
        readonly attribute NucleotideSequenceAlphabet  nucleotide_sequence_alphabet;
        readonly attribute AminoAcidSequenceAlphabet   amino_acid_sequence_alphabet;
    };

    interface BioSequence
    {
        // in addition to its current functionality
        readonly attribute SequenceAlphabet  sequence_alphabet;
    };

Resolution: Rejected as out of scope for the FTF. Withdrawn by proposer.
Revised Text:
Actions taken:
June 12, 2000: received issue
May 24, 2001: closed issue

Issue 3700: proposed DsLSRBioObjects changes (05) (biomolecular-ftf)

Click
here for this issue's archive.
Source: SciTegic Inc. (Scott Markel, Ph.D., nobody)
Nature: Uncategorized Issue
Severity:
Summary:
 Consider changing AlignmentElement's element from an Object to a
    BioSequence.  At the moment element is required to have a name and
    provide character-based data, but there's no way to ensure that
    behavior.  I really dislike implementations that have to hard code
    checks on the type of a data member. If the upcoming BSA follow-on
    RFPs add new bio-objects, we'll end up checking for BioSequence,
    HMM, profile, etc., and then have to treat each one individually.
    The real way to solve this problem is to have a BioObject, but that
    clearly outside the scope of the current FTF.

Resolution: Rejected as out of scope for the FTF. Withdrawn by proposer.
Revised Text:
Actions taken:
June 12, 2000: received issue
May 24, 2001: closed issue

Issue 3763: why no CosLifeCycle::LifeCycleObject for BioSequence ? (biomolecular-ftf)

Click
here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary:
CosLifeCycle::LifeCycleObject, but BioSequence itself does not ? 

Was this deemed to present too much constraints on BioSequence ?

The problem that Fabien Campagne <campagne@inka.mssm.edu> notes with this is
that a client of BioSequences can only call remove() on one of the
sub-classes, not on an un-extended BioSequence itself, nor on a different
sub-class that does not have a remove() operation (or maybe has it under a
different name or whatever).

He thinks this is bad design because without remove(), the client loose the
option of trying to be cooperative in the resource management of the
server. I have to agree on this point.

Or is inheriting from LifeCycleObject not there mainly of remove() ? In that
case, why the asymmetry between BioSequence and it's sub-class.

Resolution: accepted
Revised Text: Add LifeCycleObject dependence to Figure 2-9. Add a single sentence paragraph just before BioSequence IDL in section 2.1.9. BioSequence inherits from CosLifeCycle:LifeCycleObject. Add dependence in BioSequence IDL in section 2.1.9. Remove LifeCycleObject dependence in Figure 2-10. Remove LifeCycleObject sentence just before NucleotideSequence IDL in section 2.1.10. Remove LifeCycleObject dependence in IDL for NucleotideSequence in section 2.1.10. Remove LifeCycleObject sentence just before AminoAcidSequence IDL in section 2.1.10. Remove LifeCycleObject dependence in IDL for AminoAcidSequence in section 2.1.10. Change IDL in section C.1.
Actions taken:
July 21, 2000: received issue
May 24, 2001: closed issue

Issue 3805: section 2.1.5 (p. 2-7) - CompositeSeqRegion (biomolecular-ftf)

Click
here for this issue's archive.
Source: SciTegic Inc. (Scott Markel, Ph.D., nobody)
Nature: Uncategorized Issue
Severity:
Summary:
section 2.1.5 (p. 2-7) - CompositeSeqRegion
The second paragraph correctly states that a CompositeSeqRegion's start
and length are not defined.  It should also state that strand_type and
start_relative_to_seq_end are not defined.

Resolution: accepted
Revised Text: Change the first sentence of the second paragraph of the CompositeSeqRegion to A CompositeSeqRegion with sub-regions will not itself have start, length, strand_type, or start_relative_to_seq_end data defined
Actions taken:
September 7, 2000: received issue
May 24, 2001: closed issue

Issue 3806: section 2.1.9 (p. 2-21) - IntervalOutOfBounds and SeqRegionOutOfBounds (biomolecular-ftf)

Click
here for this issue's archive.
Source: SciTegic Inc. (Scott Markel, Ph.D., nobody)
Nature: Uncategorized Issue
Severity:
Summary:
section 2.1.9 (p. 2-21) - IntervalOutOfBounds and SeqRegionOutOfBounds
Change

  If a BioSequence represents circular DNA, then this exception should
  not be raised.

to

  If a BioSequence represents circular DNA, then this exception should
  not be raised, unless the SeqRegion's length is greater than that of
  the BioSequence.


Resolution: accepted
Revised Text: Change the second sentence of each description to If a BioSequence represents circular DNA, then this exception should not be raised, unless the SeqRegion's length is greater than that of the BioSequence.
Actions taken:
September 7, 2000: received issue
May 24, 2001: closed issue

Issue 3807: section 2.1.9 (p. 2-22) SeqRegionInvalid (biomolecular-ftf)

Click
here for this issue's archive.
Source: SciTegic Inc. (Scott Markel, Ph.D., nobody)
Nature: Uncategorized Issue
Severity:
Summary:
section 2.1.9 (p. 2-22) SeqRegionInvalid
The description is too narrow.  Add another example, e.g.,

  StrandType is inappropriate for a given type of BioSequence (e.g.,
  StrandType other than NOT_APPLICABLE in an AminoAcidSequence)

Resolution: accepted
Revised Text: Change the description sentence to end with or if the StrandType is inappropriate for a given type of BioSequence (e.g., StrandType other than NOT_APPLICABLE in an AminoAcidSequence).
Actions taken:
September 7, 2000: received issue
May 24, 2001: closed issue

Issue 3808: section 2.1.9 (p. 2-24) BioSequence (biomolecular-ftf)

Click
here for this issue's archive.
Source: SciTegic Inc. (Scott Markel, Ph.D., nobody)
Nature: Uncategorized Issue
Severity:
Summary:
section 2.1.9 (p. 2-24) BioSequence
Change the description of description from

  The description attribute is a concise description of the
  sequence typically would include functional information (e.g.,
  the contents of the description line from a Fasta file).

to

  The description attribute, a concise description of the BioSequence,
  typically includes some functional information, e.g., the contents of
  the description line from a FASTA file.

Resolution: accepted
Revised Text: Change the description of description to The description attribute, a concise description of the BioSequence, typically includes some functional information, e.g., the contents of the description line from a FASTA file.
Actions taken:
September 7, 2000: received issue
May 24, 2001: closed issue

Issue 3809: section 2.1.9 (p. 2-24) BioSequence (biomolecular-ftf)

Click
here for this issue's archive.
Source: SciTegic Inc. (Scott Markel, Ph.D., nobody)
Nature: Uncategorized Issue
Severity:
Summary:
section 2.1.9 (p. 2-24) BioSequence
Under Exceptions for seq_interval(), the text is not entirely accurate.
If the length field of the Interval input parameter is greater than that
of the BioSequence, IntervalOutOfBounds should be raised irrespective of
circularity.

Change

  If a BioSequence represents circular DNA, then this exception should
  not be raised.

to

  If a BioSequence represents circular DNA, then this exception should
  be raised only if the length field of the Interval input parameter is
  greater than that of the BioSequence.
-

Resolution: accepted
Revised Text: Change the second sentence of seq_interval() exception description to If a BioSequence represents circular DNA, then this exception should be raised only if the length field of the Interval input parameter is greater than that of the BioSequence.
Actions taken:
September 7, 2000: received issue
May 24, 2001: closed isse

Issue 3810: section 2.1.9 (p. 2-24) BioSequence (biomolecular-ftf)

Click
here for this issue's archive.
Source: SciTegic Inc. (Scott Markel, Ph.D., nobody)
Nature: Uncategorized Issue
Severity:
Summary:
section 2.1.9 (p. 2-24) BioSequence
seq_intervals()'s lone exception IntervalOutOfBounds is insufficient to
handle cases where the Interval is actually a SeqRegion that has an
invalid StrandType or SeqRegionOperator.

I suggest adding SeqRegionInvalid to cover this case.  I don't think we
need to add SeqRegionOutOfBounds; IntervalOutOfBounds seems sufficient
for coordinate problems.

Resolution: accepted
Revised Text: Add SeqRegionInvalid to the IDL for seq_interval(). Add Raise SeqRegionInvalid if interval is a SeqRegion and has an incorrect StrandType or SeqRegionOperator. to the exception row in the description box. Change the IDL in C.1.
Actions taken:
September 7, 2000: received issue
May 24, 2001: closed issue

Issue 3811: section 2.1.9 (p. 2-25) BioSequence (biomolecular-ftf)

Click
here for this issue's archive.
Source: SciTegic Inc. (Scott Markel, Ph.D., nobody)
Nature: Uncategorized Issue
Severity:
Summary:
section 2.1.9 (p. 2-25) BioSequence
The descriptions for both get_annotations() and num_annotations() need
to be made more precise.

Change

  Only the SeqAnnotations that overlap seq_region will be returned.

to

  Only the SeqAnnotations that overlap seq_region and have compatible
  StrandTypes will be returned.

Add the following tables.

BioSequence Type     Valid StrandTypes
BioSequence          STRAND_NOT_KNOWN
NucleotideSequence   STRAND_NOT_KNOWN,STRAND_PLUS,STRAND_MINUS,
                     STRAND_BOTH
AminoAcidSequence    STRAND_NOT_APPLICABLE

StrandType              Matching StrandTypes
STRAND_NOT_KNOWN        STRAND_NOT_KNOWN, STRAND_PLUS, STRAND_MINUS,
                        STRAND_BOTH
STRAND_NOT_APPLICABLE   STRAND_NOT_APPLICABLE
STRAND_PLUS             STRAND_NOT_KNOWN, STRAND_PLUS, STRAND_BOTH
STRAND_MINUS            STRAND_NOT_KNOWN, STRAND_MINUS, STRAND_BOTH
STRAND_BOTH             STRAND_NOT_KNOWN, STRAND_PLUS, STRAND_MINUS,
                        STRAND_BOTH

Resolution: accepted
Revised Text: Change the descriptions for both get_annotations() and num_annotations() from Only the SeqAnnotations that overlap seq_region will be returned. to Only the SeqAnnotations that overlap seq_region and have compatible StrandTypes will be returned. Add the following tables. BioSequence Type Valid StrandTypes BioSequence STRAND_NOT_KNOWN NucleotideSequence STRAND_NOT_KNOWN, STRAND_PLUS, STRAND_MINUS, STRAND_BOTH AminoAcidSequence STRAND_NOT_APPLICABLE StrandType Matching StrandTypes STRAND_NOT_KNOWN STRAND_NOT_KNOWN, STRAND_PLUS, STRAND_MINUS, STRAND_BOTH STRAND_NOT_APPLICABLE STRAND_NOT_APPLICABLE STRAND_PLUS STRAND_NOT_KNOWN, STRAND_PLUS, STRAND_BOTH STRAND_MINUS STRAND_NOT_KNOWN, STRAND_MINUS, STRAND_BOTH STRAND_BOTH STRAND_NOT_KNOWN, STRAND_PLUS, STRAND_MINUS, STRAND_BOTH
Actions taken:
September 7, 2000: received issue
May 24, 2001: closed issue

Issue 3812: section 2.1.10 (p. 2-28) NucleotideSequence (biomolecular-ftf)

Click
here for this issue's archive.
Source: SciTegic Inc. (Scott Markel, Ph.D., nobody)
Nature: Uncategorized Issue
Severity:
Summary:
section 2.1.10 (p. 2-28) NucleotideSequence
Under Exceptions for reverse_complement_interval() change

  If a NucleotideSequence represents circular DNA, then this exception
  should not be raised.

to

  If a NucleotideSequence represents circular DNA, then this exception
  should be raised only if the length field of the SeqRegion input
  parameter is greater than that of the NucleotideSequence.

Resolution: accepted
Revised Text: Change the second sentence of Exceptions for reverse_complement_interval() to If a NucleotideSequence represents circular DNA, then this exception should be raised only if the length field of the SeqRegion input parameter is greater than that of the NucleotideSequence.
Actions taken:
September 7, 2000: received issue
May 24, 2001: closed issue

Issue 3813: section 2.1.10 (p. 2-30) NucleotideSequence (biomolecular-ftf)

Click
here for this issue's archive.
Source: SciTegic Inc. (Scott Markel, Ph.D., nobody)
Nature: Uncategorized Issue
Severity:
Summary:
section 2.1.10 (p. 2-30) NucleotideSequence
Under Exceptions for translate_seq_region() change

  If a NucleotideSequence represents circular DNA, then this exception
  should not be raised.

to

  If a NucleotideSequence represents circular DNA, then this exception
  should be raised only if the length field of the SeqRegion input
  parameter is greater than that of the NucleotideSequence.

Resolution: accepted
Revised Text: Change the second sentence of Exceptions for translate_seq_region() to If a NucleotideSequence represents circular DNA, then this exception should be raised only if the length field of the SeqRegion input parameter is greater than that of the NucleotideSequence.
Actions taken:
September 7, 2000: received issue
May 24, 2001: closed issue

Issue 3814: section 2.1.15 (p. 2-44) Alignment (biomolecular-ftf)

Click
here for this issue's archive.
Source: SciTegic Inc. (Scott Markel, Ph.D., nobody)
Nature: Uncategorized Issue
Severity:
Summary:
section 2.1.15 (p. 2-44) Alignment
In the description of the AlignType constants change

  However, more complex regions (e.g., a transmembrane spanning protein
  sequence segment, are entirely possible).

to

  However, more complex regions, e.g., a transmembrane protein sequence
  segment, are entirely possible.

Resolution: accepted
Revised Text: In the description of the AlignType constants change However, more complex regions (e.g., a transmembrane spanning protein sequence segment, are entirely possible). to However, more complex regions, e.g., a transmembrane protein sequence segment, are entirely possible.
Actions taken:
September 7, 2000: received issue
May 24, 2001: closed issue

Issue 3815: section 2.1.22 (p. 2-63) SeqAnnotationOutOfBounds (biomolecular-ftf)

Click
here for this issue's archive.
Source: SciTegic Inc. (Scott Markel, Ph.D., nobody)
Nature: Uncategorized Issue
Severity:
Summary:
section 2.1.22 (p. 2-63) SeqAnnotationOutOfBounds
Change the last line of the description from

  If a BioSequence represents circular DNA, then this exception should
  not be raised.

to

  If a BioSequence represents circular DNA, then this exception should
  be raised only if the length field of the Interval input parameter is
  greater than that of the BioSequence.

Resolution: accepted
Revised Text: Change the last line of the description to If a BioSequence represents circular DNA, then this exception should be raised only if the length field of the Interval input parameter is greater than that of the BioSequence.
Actions taken:
September 7, 2000: received issue
May 24, 2001: closed issue

Issue 3816: section 2.1.25 (p. 2-71) GeneticCodeFactory (biomolecular-ftf)

Click
here for this issue's archive.
Source: SciTegic Inc. (Scott Markel, Ph.D., nobody)
Nature: Uncategorized Issue
Severity:
Summary:
section 2.1.25 (p. 2-71) GeneticCodeFactory
The desription of the return value for the genetic_code_names atttribute
is incorrect.  Change

  Returns a GeneticCodeName.

to

  Returns a GeneticCodeNameList.

Resolution: accepted
Revised Text: Change the Return value row in the description box to Returns a GeneticCodeNameList.
Actions taken:
September 7, 2000: received issue
May 24, 2001: closed issue

Issue 3870: typedef sequence<Interval> IntervalList; is missing from the spec (biomolecular-ftf)

Click
here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary:
 typedef sequence<Interval> IntervalList; is missing from the spec. First sub issue of issue # 3687

Resolution: Rejected. No change. CompositeSeqRegion already has this behavior.
Revised Text:
Actions taken:
September 19, 2000: received issue
May 24, 2001: closed issue

Issue 3871: IntervalList get_gaps(in AlignmentElement element, in Interval the_interval (biomolecular-ftf)

Click
here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary:
add an operation 
> 
>    IntervalList get_gaps(in AlignmentElement element, in Interval the_interval);
> 
> to the interface Alignment. It's job is to simply return all the gaps of a
> particular sequence in a particular alignment. For symmetry with
> get_seq_region(), the_interval is also given, thus limiting the gaps to those
> that you're interested in.

Resolution: Accepted. Changed the operation signature slightly from the above suggestion.
Revised Text: Add CompositeSeqRegion get_gaps(in string key, in Interval the_interval) raises(ElementNotInAlignment, IntervalOutOfBounds); to the Alignment interface (section 2.1.15, IDL change on p. 2-43 and method block on p. 2-46). Update the IDL in appendix C.1. The coordinates of a gap would be those of the original sequence; gaps of length 0 are not allowed. A start == 0 would be before the first nucleotide/aminoacid; a start = N is a gap between nucleotides/aminoacids N and N+1 (so start = sequence.length would be after the last).
Actions taken:
September 19, 2000: received issue
May 24, 2001: closed issue

Issue 3872: Separate the Alignment interface into more managable pieces (biomolecular-ftf)

Click
here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary:
Separate the Alignment interface into more managable pieces as
follows:

   interface SimpleAlignment : CosLifeCycle::LifeCycleObject { 
     // ...
     // here, everything BUT get_seq_region()
     // ...
   }
   
   interface Alignment : SimpleAlignment { 
           SeqRegion get_seq_region(
                   in AlignmentElement element,
                   in Interval the_interval)
               raises(ElementNotInAlignment, IntervalOutOfBounds);
   }

Resolution: rejected, see above
Revised Text:
Actions taken:
September 19, 2000: received issue
May 24, 2001: closed issue

Discussion:
 Rejected. Adding the get_gaps() operation described in issue 3871 was deemed sufficient. This split had been
proposed as an alternate solution.


Issue 3874: add an Identifier to SeqRegion (biomolecular-ftf)

Click
here for this issue's archive.
Source: SciTegic Inc. (Scott Markel, Ph.D., nobody)
Nature: Uncategorized Issue
Severity: Significant
Summary:
Please add an Identifier to SeqRegion so that a CompositeSeqRegion can span multiple BioSequences.

Resolution: accepted
Revised Text: Add "sequence Identifier" to the SeqRegion paragraph on p. 2-6 (section 2.1.5). Add "public Identifier id;" to the IDL on the bottom of the same page. Add a description block describing the ID as a sequence ID on p. 2-7. Update the IDL in appendix C.1.
Actions taken:
September 25, 2000: received issue
May 24, 2001: closed issue

Issue 3875: inheritance in annotation iterators (biomolecular-ftf)

Click
here for this issue's archive.
Source: Japan Biological Informatics Consortium (Mr. Martin Senger, martin.senger(at)gmail.com)
Nature: Uncategorized Issue
Severity:
Summary:
During BSA implementation we have found that SeqAnnotationIterator does
_not_ inherit from AnnotationIterator, and that SeqAnnotationIterator is
not used explicitly anywhere in the spec. Please can you remind me why it
is like that, or confirm my feeling that something is missing there?

I see several possible solutions of this issue - ca we discuss them
briefly before going to _the_ "resolution?

1) Nothing is wrong in current spec, I have just missed something.

2) The SeqAnnotationIterator will inherit from AnnotationIterator and its
next() and next_n() methods will be renamed to something
like next_seq_anno() and next_n_seq_anno(). Obviously, there would have be
explanation that methods next() and next_seq_anno() should behave the
same. Not too nice, and not too OO.

3) The SeqAnnotationIterator will inherit from AnnotationIterator but will
remain empty. Does this bring "more type safety" - that is the claimed
reason why we have SeqAnnotationIterator at the first place.

4) The SeqAnnotationIterator will be removed completely.

5) BioSequence interface will get an addition method get_seq_annotations
returning in out parameter a SeqAnnotationIterator (no inheritance between
iterators needed).

   To be honest I cannot make my mind which solution I would prefer at the
moment. Probably the ad 1).

Resolution: accepted
Revised Text: Add the following to the single sentence description in section 2.1.7 (p. 2-15) SeqAnnotationIterator is not used directly in this specification, but is provided as a convenience for vendor-specific IDL extensions and future OMG specifications where a collection of Annotations contains only SeqAnnotations. SeqAnnotationIterator is an optional interface. In addition, add SeqAnnotationIterator to the list of optional interfaces in section 1.1 (p. 1-1).
Actions taken:
September 26, 2000: received issue
May 24, 2001: closed issue

Issue 3924: module DsLSRAnalysis issue (biomolecular-ftf)

Click
here for this issue's archive.
Source: Japan Biological Informatics Consortium (Mr. Martin Senger, martin.senger(at)gmail.com)
Nature: Uncategorized Issue
Severity:
Summary:
   During implementation of BSA we found that some analysis can return
huge strings (not a big surprise :-)). Of course, the preferable way how
to deal with them is to convert the string(s) to a BioObject and use an
iterator defined for such object. However, because module DsLSRAnalysis is
designed for general usage, it should be prepared also for dealing with
long strings without any conversion (and let the client to do whatever
needed and wanted).
   Therefore we are proposing to add an Iterator allowing to split long
strings into manageable pieces (and it would work on sequences of octets
as well). The remarks for such iterator:
   - It does not raise any exception (such as InvalidIterator) because the
"iterated object" is considered unmutable.
   - It uses sequence of octets so it can be used for binary data as well
(imagine transferring picture data - they may quite easily be results of
an analysis).
   - It does not have method "next()" because it does not seem to be
necessary to ask just for one single octet.
   - The parameter 'how_many' contains the maximal length of the returned
sequence of octets in the out parameter.

Proposed resolution:
--------------------
   We propose to add the following into DsLSRAnalysis module (we will
suggest what describing text to be added into the document only after we
see a concensus on this issue, but basically the text will follow comments
raised in the summary above):

    interface OctetIterator
    {
        boolean         next_n(in unsigned long how_many,
                               out CORBA::OctetSeq octets);
        void            reset();
        void            destroy();
    };

Resolution: Rejected as out of scope for the FTF. The vote was 1 YES, 3 NO, and 1 ABSTAIN.
Revised Text:
Actions taken:
October 2, 2000: received issue
May 24, 2001: closed issue

Issue 3933: How to stringified CORBA TypeCodes (biomolecular-ftf)

Click
here for this issue's archive.
Source: SciTegic Inc. (Scott Markel, Ph.D., nobody)
Nature: Uncategorized Issue
Severity:
Summary:
  We need precise definition how to express CORBA TypeCode as a string
> which is needed for using it in metadata attribute "type" in input/output
> property spec. I am going to make a proposal on that when this issue gets
> new number.

Resolution: accepted
Revised Text: Add the following paragraph between 3rd and 4th paragraph in 3.1.3 (Domain Metadata). The attributes "type" used in the elements "input" and "output" contain a string representation of the CORBA::TypeCode. These representations conform to the following rules: a.Basic IDL types are represented by a string containing the name of the type. The type is derived from the CORBA TypeCode's TCKind by deleting the leading "tk_". This rule follows the convention used in section 5.3.10.2 (CorbaTypeName) of the XMI 1.0 specification (formal/00-06-01). Example: the string representation of the type long is "long"; that of unsigned long long is "ulonglong". b.Sequences of basic IDL types are represented by a string containing the type-specifier in IDL syntax without any spaces, i.e., a sequence of XXXs is coded as "sequence", where XXX is the name of the string found using rule a). Example: A sequence of longs is represented by "sequence". c.For other data types, the repository ID is used. Example: the BioSequence is represented by "IDL:omg.org/DsLSRBioObjects/BioSequence:1.0"
Actions taken:
October 4, 2000: issue 1 of split issue 3555
May 24, 2001: closed issue

Issue 3934: Second issue - How to specify "repetitive" inputs (biomolecular-ftf)

Click
here for this issue's archive.
Source: Japan Biological Informatics Consortium (Mr. Martin Senger, martin.senger(at)gmail.com)
Nature: Uncategorized Issue
Severity:
Summary:
Summary:
>    We need to be able to send variable number of inputs of the same name
> and type to an analysis (variable because we may not know in advance how
> many "repetitions" will be sent by a client). I am going to make a
> proposal (based on mail discussion with Mike Dickson and others) when this
> issue gets new number.

Resolution: accepted, see above
Revised Text:
Actions taken:
October 4, 2000: issues 2 of split issue 3555
May 24, 2001: closed issue

Discussion:
Accepted. Decided to make no change to the specification. The specification does not preclude having multiple
inputs of the same name.


Issue 3961: SeqRegionInvalid not just for wrong StrandTypes (biomolecular-ftf)

Click
here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary:
Many methods have an Interval as an input parameter (directly, or indirectly
as part of a SeqAnnotation)

Since Interval can-be-a [Composite]SeqRegion, it would seem logical that all
these methods can raise SeqRegionInvalid as well.

Currently, SeqRegionInvalid can only be raised if the StrandType isn't
appropriate; we think that it's natural to also raise it for wrong
CompositeSeqRegion (e.g., when the CompositeSeqRegion has internal overlaps
in cases wher this does not make sense). 

So the issue is 1) allow raising SeqRegionInvalid for reasons other than
wrong strandtype and 2) add this exception to the relevant methods, which
are:

BioSequence
       - add_annotation
       - seq_interval
NucleotideSequence
       - reverse_complement_interval

Alignment
       - get_seq_region

SingleCharacterAlignmentEncode
       - get_row_column_interval
       - get_row_interval

AnnotationFactory
       - create_seq_annotation
         (this one also needs SeqRegionOutOfBounds)

Resolution: Accepted. The text changes were pervasive, but minor.
Revised Text: In the description of SeqRegionInvalid (box on p. 2-22) change The SeqRegionInvalid exception is raised if a SeqRegion is invalid for sequence translation (e.g., StrandType is STRAND_BOTH). to The SeqRegionInvalid exception is raised if a SeqRegion or CompositeSeqRegion is invalid in a given context. Examples include the StrandType being STRAND_BOTH when trying to translate a nucleotide sequence, or a wrong SeqRegionOperator, overlaps or circularity in a CompositeSeqRegion passed as an in parameter. Change the description of seq_interval()'s exceptions (p. 2-24) from (see issue 3810) Raise SeqRegionInvalid if interval is a SeqRegion and has an incorrect StrandType or SeqRegionOperator. to Raise SeqRegionInvalid if interval is a SeqRegion is invalid. Examples include an incorrect StrandType or an invalid CompositeSeqRegion, e.g., one that has a wrong SeqRegionOperator, or contains overlaps or circularities. Change the description of add_annotation()'s exceptions (p. 2-26) to Raise SeqRegionInvalid if the Annotation is a SeqAnnotation that has a SeqRegion that is deemed is invalid. Examples include an incorrect StrandType or an invalid CompositeSeqRegion, e.g., one that has a wrong SeqRegionOperator, or contains overlaps or circularities. Change the description of the exceptions of both get_annotations() and num_annotations() in the boxes on page 2-25 to Raise SeqRegionInvalid if the SeqRegion is invalid. Examples include an incorrect StrandType or an invalid CompositeSeqRegion, e.g., one that has a wrong SeqRegionOperator, or contains overlaps or circularities. Change the IDL (p. 2-28, 2-29, in C.1) to add SeqRegionInvalid as a throwable for the methods NucleotideSequence::reverse_complement_interval() NucleotideSequence::translate_seq_region() In the descriptions for reverse_complement_interval() (box on page 2-28) and translate_seq_region() (box on page 2-29) add Raise SeqRegionInvalid if the interval is an invalid SeqRegion. Examples include an incorrect StrandType or an invalid CompositeSeqRegion, e.g., one that has a wrong SeqRegionOperator, or contains overlaps or circularities. Change the IDL (p. 2-43, 2-77, 2-78, and in C.1) add SeqRegionInvalid as a throwable for the methods Alignment::get_seq_region() SingleCharacterAlignmentEncoder::get_row_interval() SingleCharacterAlignmentEncoder::get_row_column_interval() In their description on pages 2-46 and 2-78 (2x) respectively, add Raise SeqRegionInvalid if the interval is an invalid SeqRegion. Examples include an incorrect StrandType, or an invalid CompositeSeqRegion, e.g., one that has a wrong SeqRegionOperator, or contains overlaps or circularities. Change the IDL (p. 2-61 and in C.1) add SeqRegionInvalid as a throwable for the method AnnotationFactory::create_seq_annotation() To the description in the box (p. 2-62), add a row with Exceptions, containing the text Raise SeqRegionInvalid if the seq_region parameter is deemed invalid. Examples include an incorrect StrandType or an invalid CompositeSeqRegion, e.g., one that has a wrong SeqRegionOperator, or contains overlaps or circularities. Change the IDL (p. 2-63, 2-64, and in C.1) add SeqRegionInvalid as a throwable for the methods NucleotideSequenceFactory::create_sequence() AminoAcidSequenceFactory::create_sequence() To both descriptions in the boxes on pages 2-64 and 2-65, add: Raise SeqRegionInvalid if the annotations parameter contains SeqAnnotations having a seq_region attribute that is deemed invalid. Examples include an incorrect StrandType or an invalid CompositeSeqRegion, e.g., one that has a wrong SeqRegionOperator, or contains overlaps or circularities.
Actions taken:
October 17, 2000: received issue
May 24, 2001: closed issue

Issue 3962: clarification of strand_type and CompositeSeqRegions (biomolecular-ftf)

Click
here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary:
The methods 

  BioSequence.seq_interval(in Interval the_interval),
  NucleotideSequence.translate_seq_region(in SeqRegion seq_region, ...)
  NucleotideSequence.reverse_complement_interval(in Interval the_interval)

may all be called using a SeqRegion. In this case, the StrandType may be
minus, and if that is the case, the string returned (for seq_interval) or the
string 'transformed' (the other cases) should be taken as
reverse-complemented.  In the last case, this will result in a no-op,
i.e. the strand_type leads to reverse-complementing, which is then
reverse-complementing due to the semantics of the method, ending up in the
same string that wouuld be had from seq_interval().

We suggest adding verbiage to explain these semantics (if, of course, everyone
agrees that this is the expected behaviour!)

Similar to this issue is that all CompositeSeqRegions are expected to be
translated in a depth-first traversal, along each node of the tree
represented by the CompositeSeqRegions. This includes those nodes that have 
region_operator == JOIN or ORDER.

Resolution: accepted
Revised Text: Add the following to the first paragraph under CompositeSeqRegion (section 2.1.5, p. 2-7) and to region_operator's description (section 2.1.5, p. 2-8). All CompositeSeqRegions are expected to be translated in a depth-first traversal, along each node of the tree represented by the CompositeSeqRegions. This includes those nodes that have region_operator equal to JOIN or ORDER. Add the following to the descriptions of BioSequence's seq_interval() (section 2.1.9, p. 2-24) and NucleotideSequence's translate_seq_region() (section 2.1.10, p. 2-30). If the StrandType is minus, the string returned should be taken as reverse-complemented. Add the following to the description of NucleotideSequence's reverse_complement_interval() (section 2.1.10, p. 2-28). If the StrandType is minus, the string returned should be taken as reverse-complemented. This will result in a no-op, i.e., the strand_type leads to reverse-complementing, which is then reverse-complementing due to the semantics of the method, resulting in the same string that would be returned from seq_interval().
Actions taken:
October 17, 2000: received issue
May 24, 2001: closed issue

Issue 3963: clarification of SeqRegionOperator.ORDER (biomolecular-ftf)

Click
here for this issue's archive.
Nature: Clarification
Severity:
Summary:
The usage of the region_operator==ORDER can be clarified. I did not know this,
but it turns out that ORDER is typically used for describing regions that
don't as such get translated or transcribed as a contiguous stretch of
biopolymers like exons are. Instead, they are often used for the location of
descriptive annotations, such as 'histone binding region' or 'regulatory
elements', or 'homology with mouse p53'. 

therefore, I propose to replace the text under ORDER of the enum
SeqRegionOperator box to:

  ORDER should be used when the sub-regions are to be taken as an (ordered)
set of sub-regions. Typically, it is used to represent a discontinuous region
to which a descriptive  annotation pertains.

Resolution: accepted
Revised Text: Add the following to the description of the enum SeqRegionOperator's ORDER value (section 2.1.5, p. 2-8). Typically, it is used to represent a discontinuous region to which a descriptive annotation pertains.
Actions taken:
October 17, 2000: received issue
May 24, 2001: closed issue

Issue 3964: OutOfBounds exceptions for circular sequences if start = 0 (biomolecular-ftf)

Click
here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary:
We propose to throw an OutOfBounds exception on circular sequences also if
start=0. 


Resolution: accepted
Revised Text: Add text similar to the following (BioSequence and Interval replaced by derived types, as appropriate) to the descriptions of IntervalOutOfBounds (section 2.1.9, p. 2-21) SeqRegionOutOfBounds (section 2.1.9, p. 2-21) SeqAnnotationOutOfBounds (section 2.1.23, p. 2-63) and to the exceptions of BioSequence's seq_interval() (section 2.1.9, p. 2-24) NucleotideSequence's reverse_complement_interval() (section 2.1.10, p. 2-28) NucleotideSequence's translate_seq_region() (section 2.1.10, p. 2-30) Raises IntervalOutOfBounds if the Interval's start is less than 1 or if its start+length-1 is greater than the length of the BioSequence. If a BioSequence represents circular DNA, then this exception should be raised if the Interval's start is less than 1 or greater than the length of the BioSequence, or if its length is greater than the length of the BioSequence.
Actions taken:
October 17, 2000: received issue
May 24, 2001: closed issue

Issue 3965: add BioSequence.get_annotations_by_name()? (biomolecular-ftf)

Click
here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary:
Given the wealth of annotations in many databases, we see the need for the
addition of a method 

  BioSequence.get_annotations_by_name(in string name);

so that annotations can be retrieved more selectively. 

Resolution: rejected, see above
Revised Text:
Actions taken:
October 17, 2000: received issue
May 24, 2001: closed issue

Discussion:
 Rejected. While the proposal is a reasonable one, it was thought to be the start of a larger issue of filtering
annotation queries and this was deemed out of scope for the FTF. The vote was 1 YES, 3 NO, and 1 ABSTAIN


Issue 3968: use key in Alignment's get_seq_region() (biomolecular-ftf)

Click
here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary:
Problem: In section 2.1.15 Alignment's get_seq_region() method has
AlignmentElement as an argument rather than the AlignmentElement's key.

Proposed resolution: Change the IDL on p. 2-43, the method description
on p. 2-46, and the IDL in appendix C.1.


Resolution: Change the IDL on p. 2-43, the method description on p. 2-46, and the IDL in appendix C.1.
Revised Text:
Actions taken:
October 18, 2000: received issue
May 24, 2001: closed issue