Closed bussec closed 5 months ago
Quick question on this one. Are you suggesting deprecating TimePoint
or Sample.collection_time_point...
?
If one is deprecating Sample.collection_time_point...
, this is problematic because a single Repertoire
object can contain multiple samples. A typical use case for this is to store samples from a repertoire at multiple points in time.
If Sample.collection_time_point...
is deprecated in favour of TimePoint
, then this functionality is lost. In this case, the change would be a breaking one. If this is implemented, then this implicitly creates an AIRR standard that samples from the same subject at different time points should be stored as separate Repertoire
objects. Is this intended?
Would it then be worth enforcing 'one sample per repertorie' which is the iReceptor standard and modify Sample
from an array to a single object?
If
Sample.collection_time_point...
is deprecated in favour ofTimePoint
, then this functionality is lost. In this case, the change would be a breaking one. If this is implemented, then this implicitly creates an AIRR standard that samples from the same subject at different time points should be stored as separateRepertoire
objects. Is this intended?
This is currently the expectation, I believe, although the docs don't reflect it. RepertoireGroup
is intended for the use case you describe.
In re-visiting this in #735 I think we are more talking about deprecating:
Sample.collection_time_point_relative
= 43Sample.collection_time_point_relative_unit
= id: UO:0000033, label: daySample.collection_time_point_reference
= "post vaccination"But adding:
Sample.collection_time_point
, a field of type TimePoint
So we would have:
Sample.collection_time_point_relative
-> sample.collection_time_point.value
= 43Sample.collection_time_point_relative_unit
-> sample.collection_time_point.unit
= id: UO:0000033, label: daySample.collection_time_point_reference
-> sample.collection_time_point.label
= "post vaccination"So no loss of functionality - we are just formalizing that collection_time_point
is a TimePoint
.
In #735 we are going a bit further than this and talking about creating a generic Event
object and in this case we would likely use an Event
of type SampleCollection
or something along those lines.
This is done...
The
TimePoint
object is currently only used once in the schema (as part ofRepertoireGroup
). As this is semantically identical to the separatecollection_time_point*
properties of theSample
object, it should be replaced with the following mapping:Sample.collection_time_point_relative
->TimePoint.value
Sample.collection_time_point_relative_unit
->TimePoint.unit
Sample.collection_time_point_reference
->TimePoint.label