+ def index_sequences(self):
+ """Return a dictionary of multiplex index id to sequence
+ Return None if the library can't multiplex,
+
+ """
+ if self.library_type is None:
+ return None
+ if not self.library_type.can_multiplex:
+ return None
+ if self.multiplex_id is None or len(self.multiplex_id) == 0:
+ return 'Err: id empty'
+ sequences = {}
+ multiplex_ids = self.multiplex_id.split(',')
+ for multiplex_id in multiplex_ids:
+ try:
+ multiplex = MultiplexIndex.objects.get(
+ adapter_type = self.library_type.id,
+ multiplex_id = multiplex_id)
+ sequences[multiplex_id] = multiplex.sequence
+ except MultiplexIndex.DoesNotExist, e:
+ sequences[multiplex_id] = 'Err: index not found'
+ return sequences
+
+ def index_sequence_text(self, seperator=' '):
+ """Return formatted multiplex index sequences"""
+ sequences = self.index_sequences()
+ multiplex_ids = sequences.keys()
+ multiplex_ids.sort()
+ return seperator.join(( "%s:%s" %(i,sequences[i]) for i in multiplex_ids))
+ index_sequence_text.short_description = "Index"
+
+