public SubsequenceData(Subsequence subsequence, double[] characteristics, int[] attributes)
{
CharacteristicsValues = characteristics;
Attributes = attributes ?? new int[0];
FeatureId = subsequence.FeatureId;
RemoteId = subsequence.RemoteId;
Partial = subsequence.Partial;
var positions = subsequence.Position.ToArray();
Starts = new int[positions.Length + 1];
Starts[0] = subsequence.Start;
Lengths = new int[positions.Length + 1];
Lengths[0] = subsequence.Length;
for (int i = 0; i < positions.Length; i++)
{
Starts[i + 1] = positions[i].Start;
Lengths[i + 1] = positions[i].Length;
}
}