Mercurial > repos > tduigou > create_assembly_picklists
annotate CreateAssemblyPicklists_script.py @ 9:c3951e41e488 draft default tip
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit ed922f834f891e6048385803c3004465551c911d-dirty
author | tduigou |
---|---|
date | Thu, 07 Aug 2025 12:37:19 +0000 |
parents | 196e13c09881 |
children |
rev | line source |
---|---|
0
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
1 #!/usr/bin/env python |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
2 # coding: utf-8 |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
3 # Code copied from CUBA backend tools.py and create_assembly_picklists/CreateAssemblyPicklistsView.py |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
4 # Code modified for running in a script in Galaxy. |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
5 ############################################################################## |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
6 ############################################################################## |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
7 # App code |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
8 ## EGF Galaxy Create assembly picklists -- script |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
9 |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
10 ############################################################################## |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
11 # IMPORTS |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
12 import argparse |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
13 import os |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
14 from io import StringIO, BytesIO |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
15 import re |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
16 from base64 import b64encode, b64decode |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
17 from copy import deepcopy |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
18 import sys |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
19 |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
20 from collections import OrderedDict |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
21 from fuzzywuzzy import process |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
22 import matplotlib.pyplot as plt |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
23 from matplotlib.backends.backend_pdf import PdfPages |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
24 import pandas |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
25 |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
26 from Bio import SeqIO |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
27 from Bio.SeqRecord import SeqRecord |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
28 from Bio.Seq import Seq |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
29 |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
30 import bandwagon as bw |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
31 import crazydoc |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
32 from dnachisel.biotools import sequence_to_biopython_record |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
33 import dnacauldron |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
34 import flametree |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
35 from plateo import AssemblyPlan |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
36 from plateo.parsers import plate_from_content_spreadsheet |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
37 from plateo.containers import Plate4ti0960 |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
38 from plateo.exporters import AssemblyPicklistGenerator, picklist_to_assembly_mix_report |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
39 from plateo.exporters import ( |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
40 picklist_to_labcyte_echo_picklist_file, |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
41 picklist_to_tecan_evo_picklist_file, |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
42 plate_to_platemap_spreadsheet, |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
43 PlateTextPlotter, |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
44 ) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
45 from plateo.tools import human_volume |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
46 from snapgene_reader import snapgene_file_to_seqrecord |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
47 |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
48 |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
49 ############################################################################## |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
50 # FUNCTIONS |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
51 |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
52 def fix_and_rename_paths(paths): |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
53 fixed_paths = [] |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
54 for path in paths: |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
55 new_path = path.replace("__sq__", "'") |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
56 if new_path != path: |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
57 os.rename(path, new_path) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
58 fixed_paths.append(new_path) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
59 return fixed_paths |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
60 |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
61 |
1
196e13c09881
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit fe52aec22c97cd357d1b6c40c2954d27ebad87d3-dirty
tduigou
parents:
0
diff
changeset
|
62 def parse_optional_float(x): |
196e13c09881
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit fe52aec22c97cd357d1b6c40c2954d27ebad87d3-dirty
tduigou
parents:
0
diff
changeset
|
63 if x == '': |
196e13c09881
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit fe52aec22c97cd357d1b6c40c2954d27ebad87d3-dirty
tduigou
parents:
0
diff
changeset
|
64 return None |
196e13c09881
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit fe52aec22c97cd357d1b6c40c2954d27ebad87d3-dirty
tduigou
parents:
0
diff
changeset
|
65 return float(x) |
196e13c09881
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit fe52aec22c97cd357d1b6c40c2954d27ebad87d3-dirty
tduigou
parents:
0
diff
changeset
|
66 |
196e13c09881
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit fe52aec22c97cd357d1b6c40c2954d27ebad87d3-dirty
tduigou
parents:
0
diff
changeset
|
67 |
0
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
68 def did_you_mean(name, other_names, limit=5, min_score=50): # test |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
69 results = process.extract(name, list(other_names), limit=limit) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
70 return [e for (e, score) in results if score >= min_score] |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
71 |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
72 |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
73 def fix_ice_genbank(genbank_txt): |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
74 lines = genbank_txt.splitlines() |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
75 lines[0] += max(0, 80 - len(lines[0])) * " " |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
76 return "\n".join(lines) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
77 |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
78 |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
79 def write_record(record, target, fmt="genbank"): |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
80 """Write a record as genbank, fasta, etc. via Biopython, with fixes""" |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
81 record = deepcopy(record) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
82 if fmt == "genbank": |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
83 if isinstance(record, (list, tuple)): |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
84 for r in record: |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
85 r.name = r.name[:20] |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
86 else: |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
87 record.name = record.name[:20] |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
88 if hasattr(target, "open"): |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
89 target = target.open("w") |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
90 SeqIO.write(record, target, fmt) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
91 |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
92 |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
93 def autoname_genbank_file(record): |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
94 return record.id.replace(".", "_") + ".gb" |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
95 |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
96 |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
97 def string_to_records(string): |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
98 """Convert a string of a fasta, genbank... into a simple ATGC string. |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
99 |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
100 Can also be used to detect a format. |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
101 """ |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
102 matches = re.match("([ATGC][ATGC]*)", string) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
103 # print("============", len(matches.groups()[0]), len(string)) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
104 # print (matches.groups()[0] == string) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
105 if (matches is not None) and (matches.groups()[0] == string): |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
106 return [SeqRecord(Seq(string))], "ATGC" |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
107 |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
108 for fmt in ("fasta", "genbank"): |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
109 if fmt == "genbank": |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
110 string = fix_ice_genbank(string) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
111 try: |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
112 stringio = StringIO(string) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
113 records = list(SeqIO.parse(stringio, fmt)) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
114 if len(records) > 0: |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
115 return (records, fmt) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
116 except: |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
117 pass |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
118 try: |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
119 record = snapgene_file_to_seqrecord(filecontent=StringIO(string)) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
120 return [record] |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
121 except: |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
122 pass |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
123 raise ValueError("Invalid sequence format") |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
124 |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
125 |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
126 def file_to_filelike_object(file_, type="byte"): |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
127 content = file_.content.split("base64,")[1] |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
128 filelike = BytesIO if (type == "byte") else StringIO |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
129 return filelike(b64decode(content)) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
130 |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
131 |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
132 def spreadsheet_file_to_dataframe(filedict, header="infer"): |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
133 filelike = file_to_filelike_object(filedict) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
134 if filedict.name.endswith(".csv"): |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
135 return pandas.read_csv(filelike, header=header) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
136 else: |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
137 return pandas.read_excel(filelike, header=header) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
138 |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
139 |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
140 def records_from_zip_file(zip_file, use_file_names_as_ids=False): |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
141 zip_name = zip_file.name |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
142 zip_file = flametree.file_tree(file_to_filelike_object(zip_file)) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
143 records = [] |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
144 for f in zip_file._all_files: |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
145 ext = f._extension.lower() |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
146 if ext in ["gb", "gbk", "fa", "dna"]: |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
147 try: |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
148 new_records, fmt = string_to_records(f.read()) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
149 if not isinstance(new_records, list): |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
150 new_records = [new_records] |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
151 except: |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
152 content_stream = BytesIO(f.read("rb")) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
153 try: |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
154 record = snapgene_file_to_seqrecord(fileobject=content_stream) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
155 new_records, fmt = [record], "snapgene" |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
156 except: |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
157 try: |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
158 parser = crazydoc.CrazydocParser( |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
159 ["highlight_color", "bold", "underline"] |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
160 ) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
161 new_records = parser.parse_doc_file(content_stream) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
162 fmt = "doc" |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
163 except: |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
164 raise ValueError("Format not recognized for file " + f._path) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
165 |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
166 single_record = len(new_records) == 1 |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
167 for i, record in enumerate(new_records): |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
168 name = record.id |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
169 if name in [ |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
170 None, |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
171 "", |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
172 "<unknown id>", |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
173 ".", |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
174 " ", |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
175 "<unknown name>", |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
176 ]: |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
177 number = "" if single_record else ("%04d" % i) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
178 name = f._name_no_extension.replace(" ", "_") + number |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
179 record.id = name |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
180 record.name = name |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
181 record.file_name = f._name_no_extension |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
182 record.zip_file_name = zip_name |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
183 if use_file_names_as_ids and single_record: |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
184 basename = os.path.basename(record.file_name) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
185 basename_no_extension = os.path.splitext(basename)[0] |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
186 record.id = basename_no_extension |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
187 records += new_records |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
188 return records |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
189 |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
190 |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
191 def records_from_data_file(data_file): |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
192 content = b64decode(data_file.content.split("base64,")[1]) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
193 try: |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
194 records, fmt = string_to_records(content.decode("utf-8")) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
195 except: |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
196 try: |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
197 record = snapgene_file_to_seqrecord(fileobject=BytesIO(content)) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
198 records, fmt = [record], "snapgene" |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
199 except: |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
200 try: |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
201 parser = crazydoc.CrazydocParser( |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
202 ["highlight_color", "bold", "underline"] |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
203 ) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
204 records = parser.parse_doc_file(BytesIO(content)) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
205 fmt = "doc" |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
206 except: |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
207 try: |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
208 df = spreadsheet_file_to_dataframe(data_file, header=None) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
209 records = [ |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
210 sequence_to_biopython_record(sequence=seq, id=name, name=name) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
211 for name, seq in df.values |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
212 ] |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
213 fmt = "spreadsheet" |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
214 except: |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
215 raise ValueError("Format not recognized for file " + data_file.name) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
216 if not isinstance(records, list): |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
217 records = [records] |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
218 return records, fmt |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
219 |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
220 |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
221 def record_to_formated_string(record, fmt="genbank", remove_descr=False): |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
222 if remove_descr: |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
223 record = deepcopy(record) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
224 if isinstance(record, (list, tuple)): |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
225 for r in record: |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
226 r.description = "" |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
227 else: |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
228 record.description = "" |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
229 fileobject = StringIO() |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
230 write_record(record, fileobject, fmt) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
231 return fileobject.getvalue().encode("utf-8") |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
232 |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
233 |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
234 def records_from_data_files(data_files, use_file_names_as_ids=False): |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
235 records = [] |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
236 for file_ in data_files: |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
237 circular = ("circular" not in file_) or file_.circular |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
238 if file_.name.lower().endswith("zip"): |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
239 records += records_from_zip_file( |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
240 file_, use_file_names_as_ids=use_file_names_as_ids |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
241 ) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
242 continue |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
243 recs, fmt = records_from_data_file(file_) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
244 single_record = len(recs) == 1 |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
245 for i, record in enumerate(recs): |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
246 record.circular = circular |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
247 record.linear = not circular |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
248 name_no_extension = "".join(file_.name.split(".")[:-1]) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
249 name = name_no_extension + ("" if single_record else ("%04d" % i)) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
250 name = name.replace(" ", "_") |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
251 UNKNOWN_IDS = [ |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
252 "None", |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
253 "", |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
254 "<unknown id>", |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
255 ".", |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
256 "EXPORTED", |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
257 "<unknown name>", |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
258 "Exported", |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
259 ] |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
260 # Sorry for this parts, it took a lot of "whatever works". |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
261 # keep your part names under 20c and pointless, and everything |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
262 # will be good |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
263 if str(record.id).strip() in UNKNOWN_IDS: |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
264 record.id = name |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
265 if str(record.name).strip() in UNKNOWN_IDS: |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
266 record.name = name |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
267 record.file_name = name_no_extension |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
268 if use_file_names_as_ids and single_record: |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
269 basename = os.path.basename(record.source_file) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
270 basename_no_extension = os.path.splitext(basename)[0] |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
271 record.id = basename_no_extension |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
272 records += recs |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
273 return records |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
274 |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
275 |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
276 def data_to_html_data(data, datatype, filename=None): |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
277 """Data types: zip, genbank, fasta, pdf""" |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
278 datatype = { |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
279 "zip": "application/zip", |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
280 "genbank": "application/genbank", |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
281 "fasta": "application/fasta", |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
282 "pdf": "application/pdf", |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
283 "xlsx": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
284 }.get(datatype, datatype) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
285 datatype = "data:%s;" % datatype |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
286 data64 = "base64,%s" % b64encode(data).decode("utf-8") |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
287 headers = "" |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
288 if filename is not None: |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
289 headers += "headers=filename%3D" + filename + ";" |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
290 return datatype + headers + data64 |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
291 |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
292 |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
293 def zip_data_to_html_data(data): |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
294 return data_to_html_data(data, "application/zip") |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
295 |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
296 |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
297 LADDERS = {"100_to_4k": bw.ladders.LADDER_100_to_4k} |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
298 |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
299 |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
300 def matplotlib_figure_to_svg_base64_data(fig, **kwargs): |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
301 """Return a string of the form 'data:image/svg+xml;base64,XXX' where XXX |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
302 is the base64-encoded svg version of the figure.""" |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
303 output = BytesIO() |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
304 fig.savefig(output, format="svg", **kwargs) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
305 svg_txt = output.getvalue().decode("utf-8") |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
306 svg_txt = "\n".join(svg_txt.split("\n")[4:]) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
307 svg_txt = "".join(svg_txt.split("\n")) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
308 |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
309 content = b64encode(svg_txt.encode("utf-8")) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
310 result = (b"data:image/svg+xml;base64," + content).decode("utf-8") |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
311 |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
312 return result |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
313 |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
314 |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
315 def matplotlib_figure_to_bitmap_base64_data(fig, fmt="png", **kwargs): |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
316 """Return a string of the form 'data:image/png;base64,XXX' where XXX |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
317 is the base64-encoded svg version of the figure.""" |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
318 output = BytesIO() |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
319 fig.savefig(output, format=fmt, **kwargs) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
320 bitmap = output.getvalue() |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
321 content = b64encode(bitmap) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
322 result = (b"data:image/%s;base64,%s" % (fmt.encode("utf-8"), content)).decode( |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
323 "utf-8" |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
324 ) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
325 return result |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
326 |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
327 |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
328 def figures_to_pdf_report_data(figures, filename="report.pdf"): |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
329 pdf_io = BytesIO() |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
330 with PdfPages(pdf_io) as pdf: |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
331 for fig in figures: |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
332 pdf.savefig(fig, bbox_inches="tight") |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
333 return { |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
334 "data": ( |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
335 "data:application/pdf;base64," |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
336 + b64encode(pdf_io.getvalue()).decode("utf-8") |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
337 ), |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
338 "name": filename, |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
339 "mimetype": "application/pdf", |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
340 } |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
341 |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
342 |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
343 def csv_to_list(csv_string, sep=","): |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
344 return [ |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
345 element.strip() |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
346 for line in csv_string.split("\n") |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
347 for element in line.split(sep) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
348 if len(element.strip()) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
349 ] |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
350 |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
351 |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
352 def set_record_topology(record, topology): |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
353 """Set the Biopython record's topology, possibly passing if already set. |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
354 |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
355 This actually sets the ``record.annotations['topology']``.The ``topology`` |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
356 parameter can be "circular", "linear", "default_to_circular" (will default |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
357 to circular if ``annotations['topology']`` is not already set) or |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
358 "default_to_linear". |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
359 """ |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
360 valid_topologies = [ |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
361 "circular", |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
362 "linear", |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
363 "default_to_circular", |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
364 "default_to_linear", |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
365 ] |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
366 if topology not in valid_topologies: |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
367 raise ValueError( |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
368 "topology (%s) should be one of %s." |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
369 % (topology, ", ".join(valid_topologies)) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
370 ) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
371 annotations = record.annotations |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
372 default_prefix = "default_to_" |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
373 if topology.startswith(default_prefix): |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
374 if "topology" not in annotations: |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
375 annotations["topology"] = topology[len(default_prefix) :] |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
376 else: |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
377 annotations["topology"] = topology |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
378 |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
379 |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
380 ############################################################################## |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
381 def main(): |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
382 |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
383 parser = argparse.ArgumentParser(description="Generate picklist for DNA assembly.") |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
384 parser.add_argument("--parts_files", help="Directory with parts data or file with part sizes") |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
385 parser.add_argument("--picklist", type=str, help="Path to the assembly plan CSV or Excel file") |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
386 parser.add_argument("--source_plate", help="Source plate file (CSV or Excel)") |
1
196e13c09881
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit fe52aec22c97cd357d1b6c40c2954d27ebad87d3-dirty
tduigou
parents:
0
diff
changeset
|
387 parser.add_argument("--backbone_name", required=False, help="Name of the backbone") |
0
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
388 parser.add_argument("--result_zip", help="Name of the output zip file") |
1
196e13c09881
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit fe52aec22c97cd357d1b6c40c2954d27ebad87d3-dirty
tduigou
parents:
0
diff
changeset
|
389 parser.add_argument("--part_backbone_ratio", type=parse_optional_float, required=False, help="Part to backbone molar ratio") |
0
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
390 parser.add_argument("--quantity_unit", choices=["fmol", "nM", "ng"], help="Quantity unit") |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
391 parser.add_argument("--part_quantity", type=float, help="Quantity of each part") |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
392 parser.add_argument("--buffer_volume", type=float, help="Buffer volume in µL") |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
393 parser.add_argument("--total_volume", type=float, help="Total reaction volume in µL") |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
394 parser.add_argument("--dispenser", choices=["labcyte_echo", "tecan_evo"], help="Dispenser machine") |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
395 |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
396 args = parser.parse_args() |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
397 |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
398 # Parameters: |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
399 picklist = args.picklist # assembly plan |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
400 # directory or can be a csv/Excel with part sizes |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
401 if isinstance(args.parts_files, str): |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
402 args.parts_files = args.parts_files.split(",") |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
403 parts_dir = fix_and_rename_paths(args.parts_files) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
404 source_plate_path = args.source_plate |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
405 backbone_name = args.backbone_name |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
406 part_backbone_ratio = args.part_backbone_ratio |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
407 result_zip_file = args.result_zip # output file name "picklist.zip" |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
408 ############################################################################## |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
409 # Defaults: |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
410 destination_plate = None |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
411 destination_type = "new" # this parameter is not actually used |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
412 destination_size = 96 # this parameter is not actually used |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
413 fill_by = "column" # this parameter is not actually used |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
414 quantity_unit = args.quantity_unit |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
415 part_quantity = args.part_quantity # 1.3 |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
416 buffer_volume = args.buffer_volume # 0.3 # (µL) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
417 total_volume = args.total_volume # 1 # (µL) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
418 dispenser_machine = args.dispenser |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
419 dispenser_min_volume = 0.5 # (nL), this parameter is not actually used |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
420 dispenser_max_volume = 5 # (µL), this parameter is not actually used |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
421 dispenser_resolution = 2.5 # (nL), this parameter is not actually used |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
422 dispenser_dead_volume = 8 # (µL), this parameter is not actually used |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
423 use_file_names_as_ids = True |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
424 |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
425 # CODE |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
426 if picklist.endswith(".csv"): |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
427 csv = picklist.read().decode() |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
428 rows = [line.split(",") for line in csv.split("\n") if len(line)] |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
429 else: |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
430 dataframe = pandas.read_excel(picklist) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
431 rows = [row for i, row in dataframe.iterrows()] |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
432 |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
433 assembly_plan = AssemblyPlan( |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
434 OrderedDict( |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
435 [ |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
436 ( |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
437 row[0], |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
438 [ |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
439 str(e).strip() |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
440 for e in row[1:] |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
441 if str(e).strip() not in ["-", "nan", ""] |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
442 ], |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
443 ) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
444 for row in rows |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
445 if row[0] not in ["nan", "Construct name", "constructs", "construct"] |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
446 ] |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
447 ) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
448 ) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
449 for assembly, parts in assembly_plan.assemblies.items(): |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
450 assembly_plan.assemblies[assembly] = [part.replace(" ", "_") for part in parts] |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
451 |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
452 # Reading part infos |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
453 if not isinstance(parts_dir, list): |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
454 if parts_dir.endswith((".csv", ".xls", ".xlsx")): # part sizes specified in table |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
455 if parts_dir.endswith(".csv"): |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
456 dataframe = pandas.read_csv(parts_dir) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
457 else: |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
458 dataframe = pandas.read_excel(parts_dir) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
459 parts_data = {row.part: {"size": row["size"]} for i, row in dataframe.iterrows()} |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
460 else: # input records |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
461 records = dnacauldron.biotools.load_records_from_files( |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
462 files=parts_dir, use_file_names_as_ids=use_file_names_as_ids |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
463 ) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
464 parts_data = {rec.id.replace(" ", "_").lower(): {"record": rec} for rec in records} |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
465 #parts_data = process_parts_with_mapping(records, args.file_name_mapping) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
466 assembly_plan.parts_data = parts_data |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
467 parts_without_data = assembly_plan.parts_without_data() |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
468 if len(parts_without_data): |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
469 print("success: False") |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
470 print("message: Some parts have no provided record or data.") |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
471 print("missing_parts: ", parts_without_data) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
472 sys.exit() |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
473 # Reading protocol |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
474 if quantity_unit == "fmol": |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
475 part_mol = part_quantity * 1e-15 |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
476 part_g = None |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
477 if quantity_unit == "nM": |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
478 part_mol = part_quantity * total_volume * 1e-15 |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
479 part_g = None |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
480 if quantity_unit == "ng": |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
481 part_mol = None |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
482 part_g = part_quantity * 1e-9 |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
483 # Backbone:part molar ratio calculation is not performed in this case. |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
484 # This ensures no change regardless of form input: |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
485 part_backbone_ratio = 1 |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
486 print("Generating picklist") |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
487 picklist_generator = AssemblyPicklistGenerator( |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
488 part_mol=part_mol, |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
489 part_g=part_g, |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
490 complement_to=total_volume * 1e-6, # convert uL to L |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
491 buffer_volume=buffer_volume * 1e-6, |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
492 volume_rounding=2.5e-9, # not using parameter from form |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
493 minimal_dispense_volume=5e-9, # Echo machine's minimum dispense - |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
494 ) |
1
196e13c09881
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit fe52aec22c97cd357d1b6c40c2954d27ebad87d3-dirty
tduigou
parents:
0
diff
changeset
|
495 if backbone_name != '' and backbone_name != 'Non': |
196e13c09881
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit fe52aec22c97cd357d1b6c40c2954d27ebad87d3-dirty
tduigou
parents:
0
diff
changeset
|
496 backbone_name_list = backbone_name.split(",") |
0
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
497 source_plate = plate_from_content_spreadsheet(source_plate_path) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
498 |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
499 for well in source_plate.iter_wells(): |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
500 if well.is_empty: |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
501 continue |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
502 quantities = well.content.quantities |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
503 part, quantity = list(quantities.items())[0] |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
504 quantities.pop(part) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
505 quantities[part.replace(" ", "_")] = quantity |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
506 |
1
196e13c09881
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit fe52aec22c97cd357d1b6c40c2954d27ebad87d3-dirty
tduigou
parents:
0
diff
changeset
|
507 if backbone_name != '' and backbone_name != 'Non': |
196e13c09881
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit fe52aec22c97cd357d1b6c40c2954d27ebad87d3-dirty
tduigou
parents:
0
diff
changeset
|
508 if part in backbone_name_list: |
196e13c09881
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit fe52aec22c97cd357d1b6c40c2954d27ebad87d3-dirty
tduigou
parents:
0
diff
changeset
|
509 # This section multiplies the backbone concentration with the |
196e13c09881
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit fe52aec22c97cd357d1b6c40c2954d27ebad87d3-dirty
tduigou
parents:
0
diff
changeset
|
510 # part:backbone molar ratio. This tricks the calculator into making |
196e13c09881
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit fe52aec22c97cd357d1b6c40c2954d27ebad87d3-dirty
tduigou
parents:
0
diff
changeset
|
511 # a picklist with the desired ratio. |
196e13c09881
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit fe52aec22c97cd357d1b6c40c2954d27ebad87d3-dirty
tduigou
parents:
0
diff
changeset
|
512 # For example, a part:backbone = 2:1 will multiply the |
196e13c09881
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit fe52aec22c97cd357d1b6c40c2954d27ebad87d3-dirty
tduigou
parents:
0
diff
changeset
|
513 # backbone concentration by 2, therefore half as much of it will be |
196e13c09881
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit fe52aec22c97cd357d1b6c40c2954d27ebad87d3-dirty
tduigou
parents:
0
diff
changeset
|
514 # added to the well. |
196e13c09881
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit fe52aec22c97cd357d1b6c40c2954d27ebad87d3-dirty
tduigou
parents:
0
diff
changeset
|
515 quantities[part.replace(" ", "_")] = quantity * part_backbone_ratio |
196e13c09881
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit fe52aec22c97cd357d1b6c40c2954d27ebad87d3-dirty
tduigou
parents:
0
diff
changeset
|
516 else: |
196e13c09881
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit fe52aec22c97cd357d1b6c40c2954d27ebad87d3-dirty
tduigou
parents:
0
diff
changeset
|
517 quantities[part.replace(" ", "_")] = quantity |
0
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
518 |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
519 source_plate.name = "Source" |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
520 if destination_plate: |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
521 dest_filelike = file_to_filelike_object(destination_plate) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
522 destination_plate = plate_from_content_spreadsheet(destination_plate) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
523 else: |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
524 destination_plate = Plate4ti0960("Mixplate") |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
525 destination_wells = ( |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
526 well for well in destination_plate.iter_wells(direction="column") if well.is_empty |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
527 ) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
528 picklist, picklist_data = picklist_generator.make_picklist( |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
529 assembly_plan, |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
530 source_wells=source_plate.iter_wells(), |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
531 destination_wells=destination_wells, |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
532 ) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
533 if picklist is None: |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
534 print("success: False") |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
535 print("message: Some parts in the assembly plan have no corresponding well.") |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
536 print("picklist_data: ", picklist_data) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
537 print("missing_parts:", picklist_data.get("missing_parts", None)) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
538 sys.exit() |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
539 |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
540 future_plates = picklist.simulate(inplace=False) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
541 |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
542 |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
543 def text(w): |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
544 txt = human_volume(w.content.volume) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
545 if "construct" in w.data: |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
546 txt = "\n".join([w.data["construct"], txt]) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
547 return txt |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
548 |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
549 |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
550 plotter = PlateTextPlotter(text) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
551 ax, _ = plotter.plot_plate(future_plates[destination_plate], figsize=(20, 8)) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
552 |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
553 ziproot = flametree.file_tree(result_zip_file, replace=True) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
554 |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
555 # MIXPLATE MAP PLOT |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
556 ax.figure.savefig( |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
557 ziproot._file("final_mixplate.pdf").open("wb"), |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
558 format="pdf", |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
559 bbox_inches="tight", |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
560 ) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
561 plt.close(ax.figure) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
562 plate_to_platemap_spreadsheet( |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
563 future_plates[destination_plate], |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
564 lambda w: w.data.get("construct", ""), |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
565 filepath=ziproot._file("final_mixplate.xls").open("wb"), |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
566 ) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
567 |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
568 # ASSEMBLY REPORT |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
569 print("Writing report...") |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
570 picklist_to_assembly_mix_report( |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
571 picklist, |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
572 ziproot._file("assembly_mix_picklist_report.pdf").open("wb"), |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
573 data=picklist_data, |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
574 ) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
575 assembly_plan.write_report(ziproot._file("assembly_plan_summary.pdf").open("wb")) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
576 |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
577 # MACHINE PICKLIST |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
578 |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
579 if dispenser_machine == "labcyte_echo": |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
580 picklist_to_labcyte_echo_picklist_file( |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
581 picklist, ziproot._file("ECHO_picklist.csv").open("w") |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
582 ) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
583 else: |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
584 picklist_to_tecan_evo_picklist_file( |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
585 picklist, ziproot._file("EVO_picklist.gwl").open("w") |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
586 ) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
587 # We'll not write the input source plate. |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
588 # raw = file_to_filelike_object(source_plate_path).read() |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
589 # f = ziproot.copy(source_plate_path) |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
590 # f.write(raw, mode="wb") |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
591 ziproot._close() |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
592 print("success: True") |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
593 |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
594 |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
595 if __name__ == "__main__": |
4bde3e90ee98
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Plateo commit 98d5e65b8008dbca117b2e0655cfdd54655fac48-dirty
tduigou
parents:
diff
changeset
|
596 main() |