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'])
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)