annotate mira.py @ 37:5fd060dc934d draft

planemo upload for repository https://github.com/peterjc/pico_galaxy/tree/master/datatypes/mira_datatypes commit 88f38e2217a04df96c1c33c111f8c071ef014333
author peterjc
date Mon, 04 Sep 2017 12:36:31 -0400
parents 94e05a9e3957
children 2bd1f1175fb2
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3
94e05a9e3957 planemo upload for repository https://github.com/peterjc/pico_galaxy/tree/master/datatypes/mira_datatypes commit fd979d17340cde155de176604744831d9597c6b6
peterjc
parents:
diff changeset
1 """
94e05a9e3957 planemo upload for repository https://github.com/peterjc/pico_galaxy/tree/master/datatypes/mira_datatypes commit fd979d17340cde155de176604744831d9597c6b6
peterjc
parents:
diff changeset
2 MiraAssemblyFormat class for the 'mira' format within Galaxy
94e05a9e3957 planemo upload for repository https://github.com/peterjc/pico_galaxy/tree/master/datatypes/mira_datatypes commit fd979d17340cde155de176604744831d9597c6b6
peterjc
parents:
diff changeset
3 """
94e05a9e3957 planemo upload for repository https://github.com/peterjc/pico_galaxy/tree/master/datatypes/mira_datatypes commit fd979d17340cde155de176604744831d9597c6b6
peterjc
parents:
diff changeset
4
94e05a9e3957 planemo upload for repository https://github.com/peterjc/pico_galaxy/tree/master/datatypes/mira_datatypes commit fd979d17340cde155de176604744831d9597c6b6
peterjc
parents:
diff changeset
5 from galaxy.datatypes.data import Text
94e05a9e3957 planemo upload for repository https://github.com/peterjc/pico_galaxy/tree/master/datatypes/mira_datatypes commit fd979d17340cde155de176604744831d9597c6b6
peterjc
parents:
diff changeset
6
94e05a9e3957 planemo upload for repository https://github.com/peterjc/pico_galaxy/tree/master/datatypes/mira_datatypes commit fd979d17340cde155de176604744831d9597c6b6
peterjc
parents:
diff changeset
7
94e05a9e3957 planemo upload for repository https://github.com/peterjc/pico_galaxy/tree/master/datatypes/mira_datatypes commit fd979d17340cde155de176604744831d9597c6b6
peterjc
parents:
diff changeset
8 class MiraAssemblyFormat(Text):
94e05a9e3957 planemo upload for repository https://github.com/peterjc/pico_galaxy/tree/master/datatypes/mira_datatypes commit fd979d17340cde155de176604744831d9597c6b6
peterjc
parents:
diff changeset
9 """MIRA Assembly Format data"""
94e05a9e3957 planemo upload for repository https://github.com/peterjc/pico_galaxy/tree/master/datatypes/mira_datatypes commit fd979d17340cde155de176604744831d9597c6b6
peterjc
parents:
diff changeset
10 file_ext = "mira"
94e05a9e3957 planemo upload for repository https://github.com/peterjc/pico_galaxy/tree/master/datatypes/mira_datatypes commit fd979d17340cde155de176604744831d9597c6b6
peterjc
parents:
diff changeset
11
94e05a9e3957 planemo upload for repository https://github.com/peterjc/pico_galaxy/tree/master/datatypes/mira_datatypes commit fd979d17340cde155de176604744831d9597c6b6
peterjc
parents:
diff changeset
12 def sniff(self, filename):
94e05a9e3957 planemo upload for repository https://github.com/peterjc/pico_galaxy/tree/master/datatypes/mira_datatypes commit fd979d17340cde155de176604744831d9597c6b6
peterjc
parents:
diff changeset
13 """Determines whether the file is a MIRA Assembly Format file.
94e05a9e3957 planemo upload for repository https://github.com/peterjc/pico_galaxy/tree/master/datatypes/mira_datatypes commit fd979d17340cde155de176604744831d9597c6b6
peterjc
parents:
diff changeset
14
94e05a9e3957 planemo upload for repository https://github.com/peterjc/pico_galaxy/tree/master/datatypes/mira_datatypes commit fd979d17340cde155de176604744831d9597c6b6
peterjc
parents:
diff changeset
15 Note currently this only detects MIRA Assembly Format v2.0,
94e05a9e3957 planemo upload for repository https://github.com/peterjc/pico_galaxy/tree/master/datatypes/mira_datatypes commit fd979d17340cde155de176604744831d9597c6b6
peterjc
parents:
diff changeset
16 as used in MIRA v3.9 and v4.0.
94e05a9e3957 planemo upload for repository https://github.com/peterjc/pico_galaxy/tree/master/datatypes/mira_datatypes commit fd979d17340cde155de176604744831d9597c6b6
peterjc
parents:
diff changeset
17
94e05a9e3957 planemo upload for repository https://github.com/peterjc/pico_galaxy/tree/master/datatypes/mira_datatypes commit fd979d17340cde155de176604744831d9597c6b6
peterjc
parents:
diff changeset
18 It does not detect MIRA Assembly Format v1 as used in both
94e05a9e3957 planemo upload for repository https://github.com/peterjc/pico_galaxy/tree/master/datatypes/mira_datatypes commit fd979d17340cde155de176604744831d9597c6b6
peterjc
parents:
diff changeset
19 MIRA v3.2 and v3.4.
94e05a9e3957 planemo upload for repository https://github.com/peterjc/pico_galaxy/tree/master/datatypes/mira_datatypes commit fd979d17340cde155de176604744831d9597c6b6
peterjc
parents:
diff changeset
20 """
94e05a9e3957 planemo upload for repository https://github.com/peterjc/pico_galaxy/tree/master/datatypes/mira_datatypes commit fd979d17340cde155de176604744831d9597c6b6
peterjc
parents:
diff changeset
21 h = open(filename)
94e05a9e3957 planemo upload for repository https://github.com/peterjc/pico_galaxy/tree/master/datatypes/mira_datatypes commit fd979d17340cde155de176604744831d9597c6b6
peterjc
parents:
diff changeset
22 line = h.readline()
94e05a9e3957 planemo upload for repository https://github.com/peterjc/pico_galaxy/tree/master/datatypes/mira_datatypes commit fd979d17340cde155de176604744831d9597c6b6
peterjc
parents:
diff changeset
23 if line.rstrip() != "@Version\t2\t0":
94e05a9e3957 planemo upload for repository https://github.com/peterjc/pico_galaxy/tree/master/datatypes/mira_datatypes commit fd979d17340cde155de176604744831d9597c6b6
peterjc
parents:
diff changeset
24 h.close()
94e05a9e3957 planemo upload for repository https://github.com/peterjc/pico_galaxy/tree/master/datatypes/mira_datatypes commit fd979d17340cde155de176604744831d9597c6b6
peterjc
parents:
diff changeset
25 return False
94e05a9e3957 planemo upload for repository https://github.com/peterjc/pico_galaxy/tree/master/datatypes/mira_datatypes commit fd979d17340cde155de176604744831d9597c6b6
peterjc
parents:
diff changeset
26 line = h.readline()
94e05a9e3957 planemo upload for repository https://github.com/peterjc/pico_galaxy/tree/master/datatypes/mira_datatypes commit fd979d17340cde155de176604744831d9597c6b6
peterjc
parents:
diff changeset
27 if line.rstrip() != "@Program\tMIRALIB":
94e05a9e3957 planemo upload for repository https://github.com/peterjc/pico_galaxy/tree/master/datatypes/mira_datatypes commit fd979d17340cde155de176604744831d9597c6b6
peterjc
parents:
diff changeset
28 h.close()
94e05a9e3957 planemo upload for repository https://github.com/peterjc/pico_galaxy/tree/master/datatypes/mira_datatypes commit fd979d17340cde155de176604744831d9597c6b6
peterjc
parents:
diff changeset
29 return False
94e05a9e3957 planemo upload for repository https://github.com/peterjc/pico_galaxy/tree/master/datatypes/mira_datatypes commit fd979d17340cde155de176604744831d9597c6b6
peterjc
parents:
diff changeset
30 return True
94e05a9e3957 planemo upload for repository https://github.com/peterjc/pico_galaxy/tree/master/datatypes/mira_datatypes commit fd979d17340cde155de176604744831d9597c6b6
peterjc
parents:
diff changeset
31
94e05a9e3957 planemo upload for repository https://github.com/peterjc/pico_galaxy/tree/master/datatypes/mira_datatypes commit fd979d17340cde155de176604744831d9597c6b6
peterjc
parents:
diff changeset
32 def merge(split_files, output_file):
94e05a9e3957 planemo upload for repository https://github.com/peterjc/pico_galaxy/tree/master/datatypes/mira_datatypes commit fd979d17340cde155de176604744831d9597c6b6
peterjc
parents:
diff changeset
33 """Merging multiple MIRA files is non-trivial and may not be possible..."""
94e05a9e3957 planemo upload for repository https://github.com/peterjc/pico_galaxy/tree/master/datatypes/mira_datatypes commit fd979d17340cde155de176604744831d9597c6b6
peterjc
parents:
diff changeset
34 if len(split_files) == 1:
94e05a9e3957 planemo upload for repository https://github.com/peterjc/pico_galaxy/tree/master/datatypes/mira_datatypes commit fd979d17340cde155de176604744831d9597c6b6
peterjc
parents:
diff changeset
35 # For one file only, use base class method (move/copy)
94e05a9e3957 planemo upload for repository https://github.com/peterjc/pico_galaxy/tree/master/datatypes/mira_datatypes commit fd979d17340cde155de176604744831d9597c6b6
peterjc
parents:
diff changeset
36 return Text.merge(split_files, output_file)
94e05a9e3957 planemo upload for repository https://github.com/peterjc/pico_galaxy/tree/master/datatypes/mira_datatypes commit fd979d17340cde155de176604744831d9597c6b6
peterjc
parents:
diff changeset
37 if not split_files:
94e05a9e3957 planemo upload for repository https://github.com/peterjc/pico_galaxy/tree/master/datatypes/mira_datatypes commit fd979d17340cde155de176604744831d9597c6b6
peterjc
parents:
diff changeset
38 raise ValueError("Given no MIRA, %r, to merge into %s"
94e05a9e3957 planemo upload for repository https://github.com/peterjc/pico_galaxy/tree/master/datatypes/mira_datatypes commit fd979d17340cde155de176604744831d9597c6b6
peterjc
parents:
diff changeset
39 % (split_files, output_file))
94e05a9e3957 planemo upload for repository https://github.com/peterjc/pico_galaxy/tree/master/datatypes/mira_datatypes commit fd979d17340cde155de176604744831d9597c6b6
peterjc
parents:
diff changeset
40 raise NotImplementedError("Merging MIRA Assembly Files has not been implemented")
94e05a9e3957 planemo upload for repository https://github.com/peterjc/pico_galaxy/tree/master/datatypes/mira_datatypes commit fd979d17340cde155de176604744831d9597c6b6
peterjc
parents:
diff changeset
41 merge = staticmethod(merge)
94e05a9e3957 planemo upload for repository https://github.com/peterjc/pico_galaxy/tree/master/datatypes/mira_datatypes commit fd979d17340cde155de176604744831d9597c6b6
peterjc
parents:
diff changeset
42
94e05a9e3957 planemo upload for repository https://github.com/peterjc/pico_galaxy/tree/master/datatypes/mira_datatypes commit fd979d17340cde155de176604744831d9597c6b6
peterjc
parents:
diff changeset
43 def split(cls, input_datasets, subdir_generator_function, split_params):
94e05a9e3957 planemo upload for repository https://github.com/peterjc/pico_galaxy/tree/master/datatypes/mira_datatypes commit fd979d17340cde155de176604744831d9597c6b6
peterjc
parents:
diff changeset
44 """Split a MIRA Assembly File (not implemented for now)."""
94e05a9e3957 planemo upload for repository https://github.com/peterjc/pico_galaxy/tree/master/datatypes/mira_datatypes commit fd979d17340cde155de176604744831d9597c6b6
peterjc
parents:
diff changeset
45 if split_params is None:
94e05a9e3957 planemo upload for repository https://github.com/peterjc/pico_galaxy/tree/master/datatypes/mira_datatypes commit fd979d17340cde155de176604744831d9597c6b6
peterjc
parents:
diff changeset
46 return None
94e05a9e3957 planemo upload for repository https://github.com/peterjc/pico_galaxy/tree/master/datatypes/mira_datatypes commit fd979d17340cde155de176604744831d9597c6b6
peterjc
parents:
diff changeset
47 raise NotImplementedError("Can't yet split a MIRA Assembly Format file")
94e05a9e3957 planemo upload for repository https://github.com/peterjc/pico_galaxy/tree/master/datatypes/mira_datatypes commit fd979d17340cde155de176604744831d9597c6b6
peterjc
parents:
diff changeset
48 merge = staticmethod(merge)