Ejemplo n.º 1
0
 def test_012_v1_0_single(self):
     # Check that it is recognized properly.
     fname = os.path.join(test_data, 'read_file_v1.0_single.fast5')
     result = Fast5Info(fname)
     self.assertEqual(1.0, result.version)
     # Copy file and Update to current format.
     new_file = os.path.join(self.save_path, 'single_read_v1.0_test.fast5')
     copyfile(fname, new_file)
     Fast5File.update_legacy_file(new_file)
     result = Fast5Info(new_file)
     self.assertEqual(1.1, result.version)
     self.assertEqual(1, len(result.read_info))
     self.assertEqual(59, result.read_info[0].read_number)
     # Load the event data.
     with Fast5File(new_file, mode='r') as fh:
         analist = fh.list_analyses('event_detection')
         self.assertEqual(1, len(analist))
         group = '{}/Reads/Read_59'.format(analist[0][1])
         data = fh.get_analysis_dataset(group, 'Events')
         self.assertEqual(7875, data.size)
         self.assertEqual(set(('mean', 'stdv', 'start', 'length')),
                          set(data.dtype.names))
         read_info = fh.status.read_info[0]
         self.assertEqual(7875, read_info.event_data_count)
         channel_info = fh.get_channel_info()
         self.assertEqual(1, channel_info['channel_number'])
Ejemplo n.º 2
0
 def test_011_v0_6_raw(self):
     # Check that it is recognized properly.
     fname = os.path.join(test_data, 'read_file_v0.6_raw.fast5')
     result = Fast5Info(fname)
     self.assertEqual(0.6, result.version)
     # Copy file and Update to current format.
     new_file = self.generate_temp_filename()
     copyfile(fname, new_file)
     Fast5File.update_legacy_file(new_file)
     result = Fast5Info(new_file)
     self.assertEqual(CURRENT_FAST5_VERSION, result.version)
     self.assertEqual(1, len(result.read_info))
     self.assertEqual(627, result.read_info[0].read_number)
     # Load the event data.
     with Fast5File(new_file, mode='r') as fh:
         analist = fh.list_analyses('event_detection')
         self.assertEqual(1, len(analist))
         group = '{}/Reads/Read_627'.format(analist[0][1])
         data = fh.get_analysis_dataset(group, 'Events')
         self.assertEqual(2337, data.size)
         self.assertEqual(set(('mean', 'stdv', 'start', 'length')),
                          set(data.dtype.names))
         read_info = fh.status.read_info[0]
         self.assertEqual(2337, read_info.event_data_count)
         channel_info = fh.get_channel_info()
         self.assertEqual(118, channel_info['channel_number'])
         raw = fh.get_raw_data(read_number=627)
         self.assertEqual(46037, raw.size)
         self.assertEqual(46037, read_info.duration)