Mercurial > repos > iuc > anndata_export
annotate tsv_to_loompy.py @ 3:8623710d083c draft
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
| author | iuc | 
|---|---|
| date | Mon, 06 Jan 2020 13:44:46 -0500 | 
| parents | |
| children | 
| rev | line source | 
|---|---|
| 
3
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
1 #!/usr/bin/env python | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
2 """This module converts a tsv file into a binary loom file""" | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
3 | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
4 import argparse | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
5 import os | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
6 | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
7 import loompy | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
8 import numpy as np | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
9 | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
10 parser = argparse.ArgumentParser(description="Loompy file converter flags") | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
11 parser.add_argument('--VERSION', action='version', version='%(prog)s 0.1.0', | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
12 help="Displays tool version") | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
13 parser.add_argument('--rowfile', '-r', help="File of row attributes & values") | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
14 parser.add_argument('--colfile', '-c', | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
15 help="File of column attributes and values") | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
16 parser.add_argument('--output', '-o', help="Output file name") | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
17 parser.add_argument('--files', '-f', nargs='*', | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
18 help="Input tsv files. First file becomes main layer.") | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
19 args = parser.parse_args() | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
20 | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
21 colsfile = args.colfile | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
22 rowsfile = args.rowfile | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
23 if args.output: | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
24 filename = args.output | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
25 else: | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
26 filename = "converted.loom" | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
27 alldata = args.files | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
28 alayers = [] | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
29 layernames = [] | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
30 rowdict = {} | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
31 coldict = {} | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
32 | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
33 # Creates dictionary based on row file | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
34 # For each attribute: | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
35 # Attribute: [attribute values] | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
36 with open(rowsfile, "r") as rows: | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
37 count = 0 | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
38 for line in rows: | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
39 line = line.strip().split("\t") | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
40 if count == 0: # First time through | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
41 row_attributes = line | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
42 for x in row_attributes: | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
43 rowdict[x] = [] | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
44 count += 1 | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
45 else: | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
46 for x in range(0, len(line)): | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
47 rowdict[row_attributes[x]].append(line[x]) | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
48 # Same as above, but for columns | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
49 with open(colsfile, "r") as cols: | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
50 count = 0 | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
51 for line in cols: | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
52 line = line.replace('\"', "") | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
53 line = line.replace(' ', "") | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
54 line = line.strip().split("\t") | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
55 if count == 0: # First time through | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
56 col_attributes = line | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
57 for x in col_attributes: | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
58 coldict[x] = [] | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
59 count += 1 | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
60 else: | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
61 for x in range(0, len(line)): | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
62 coldict[col_attributes[x]].append(line[x]) | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
63 # Finding dimensions for the loom layers | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
64 rowshape = len(rowdict[list(rowdict.keys())[0]]) | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
65 colshape = len(coldict[list(coldict.keys())[0]]) | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
66 | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
67 # Creates a list with each element being entire matrix of | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
68 # each layer file as floats | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
69 for file in range(0, len(alldata)): | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
70 layer = alldata[file][:-4] | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
71 layer = layer.split("/")[-1] | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
72 if layer == "": | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
73 raise Exception("Please only use named files") | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
74 layernames.append(layer) | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
75 cfile = alldata[file] | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
76 with open(cfile, "r") as tsv: | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
77 cmatrix = [] | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
78 for line in tsv: | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
79 line = line.strip().split("\t") | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
80 line = [float(i) for i in line] | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
81 cmatrix += line | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
82 alayers.append(cmatrix) | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
83 | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
84 # Loompy cannot overwright existing files. If somehow it finds | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
85 # a second file with the same name, it must be deleted | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
86 if os.path.isfile(filename): | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
87 os.remove(filename) | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
88 # To create the file properly, the first row and column attributes must be | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
89 # added separately in the form of individual dictionaries | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
90 row_attrs = {row_attributes[0]: np.asarray(rowdict[row_attributes[0]])} | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
91 col_attrs = {col_attributes[0]: np.asarray(coldict[col_attributes[0]])} | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
92 matrix = np.asarray(alayers[0]) | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
93 matrix = matrix.astype(float) | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
94 matrix = matrix.reshape(rowshape, colshape) | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
95 # Creation of initial loom file | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
96 if "loom" not in filename[-5:]: | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
97 filename = filename + ".loom" | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
98 loompy.create(filename, matrix, row_attrs, col_attrs) | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
99 # Adding all row and column attributes, then all layers | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
100 with loompy.connect(filename) as loomfile: | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
101 for x in row_attributes: | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
102 loomfile.ra[x] = rowdict[x] | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
103 for y in col_attributes: | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
104 loomfile.ca[y] = coldict[y] | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
105 for z in range(1, len(alayers)): | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
106 matrix = np.asarray(alayers[z]) | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
107 matrix = matrix.astype(float) | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
108 matrix = matrix.reshape(rowshape, colshape) | 
| 
 
8623710d083c
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856"
 
iuc 
parents:  
diff
changeset
 | 
109 loomfile[layernames[z]] = matrix | 
