Previous changeset 2:e0395cca2c57 (2019-12-12) Next changeset 4:016308443041 (2020-01-18) |
Commit message:
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/anndata/ commit dc9d19d1f902f3ed54009cd0e68c8518c284b856" |
modified:
export.xml macros.xml |
added:
loompy_to_tsv.py modify_loom.py test-data/addlayer1.tsv test-data/addloomout1.loom test-data/addloomout2.loom test-data/addloomout3.loom test-data/addtest.loom test-data/cols.tsv test-data/converted.loom.test test-data/finallayer.tsv test-data/firstlayer.tsv test-data/loomtest.loom test-data/rows.tsv test-data/secondlayer.tsv tsv_to_loompy.py |
b |
diff -r e0395cca2c57 -r 8623710d083c export.xml --- a/export.xml Thu Dec 12 09:23:01 2019 -0500 +++ b/export.xml Mon Jan 06 13:44:46 2020 -0500 |
[ |
@@ -1,54 +1,79 @@ -<tool id="anndata_export" name="Export AnnData" version="@VERSION@+@GALAXY_VERSION@"> - <description>to different formats</description> +<tool id="anndata_export" name="Export AnnData and loom files" version="@VERSION@+@GALAXY_VERSION@"> + <description>Interconvert AnnData and Loom formats</description> <macros> <import>macros.xml</import> </macros> <expand macro="requirements"/> <expand macro="version_command"/> <command detect_errors="exit_code"><![CDATA[ -@CMD@ +#if $hd5_format.filetype == 'anndata': + @CMD@ +#else: + @LOOMCMD@ +#end if ]]></command> <configfiles> <configfile name="script_file"><![CDATA[ @CMD_imports@ - -adata = ad.read('$input') -#if $output_format == 'loom' +#if $hd5_format.filetype == 'anndata': +adata = ad.read('$hd5_format.input') + #if $hd5_format.output_format == 'loom': adata.write_loom('anndata.loom') -#else if $output_format == 'tabular' + #else if $hd5_format.output_format == 'tabular': adata.write_csvs('.', sep="\t", skip_data = False) + #end if #end if -]]></configfile> - </configfiles> + ]]></configfile> +</configfiles> <inputs> - <param name="input" type="data" format="h5ad" label="Annotated data matrix"/> - <param name="output_format" type="select" label="Format to write the annotated data matrix"> - <option value="loom">loom</option> - <option value="tabular">Tabular</option> - </param> + <conditional name="hd5_format"> + <param name="filetype" type="select" label="hd5 format"> + <option value="anndata" selected="true">Anndata file</option> + <option value="loom">Loom file</option> + </param> + <when value="anndata"> + <param name="input" type="data" format="h5ad" label="Annotated data matrix"/> + <param name="output_format" type="select" label="Format to write the annotated data matrix"> + <option value="loom">loom</option> + <option value="tabular">Tabular</option> + </param> + </when> + <when value="loom"> + <param name="input" type="data" format="loom" label="Loom file to be exported to a series of tabular files."/> + </when> + </conditional> </inputs> <outputs> <data name="loom_output" format="loom" from_work_dir="anndata.loom" label="${tool.name} on ${on_string}: Annotated data matrix"> - <filter>output_format == 'loom'</filter> + <filter>hd5_format['filetype'] == 'anndata' and hd5_format['output_format'] == 'loom'</filter> </data> <data name="tabular_x" format="tabular" from_work_dir="X.csv" label="${tool.name} on ${on_string}: Matrix table (X)"> - <filter>output_format == 'tabular'</filter> + <filter>hd5_format['filetype'] == 'anndata' and hd5_format['output_format'] == 'tabular'</filter> </data> <data name="tabular_obs" format="tabular" from_work_dir="obs.csv" label="${tool.name} on ${on_string}: Key-indexed one-dimensional observations annotation (obs)"> - <filter>output_format == 'tabular'</filter> + <filter>hd5_format['filetype'] == 'anndata' and hd5_format['output_format'] == 'tabular'</filter> </data> <data name="tabular_obsm" format="tabular" from_work_dir="obsm.csv" label="${tool.name} on ${on_string}: Key-indexed multi-dimensional observations annotation (obsm)"> - <filter>output_format == 'tabular'</filter> + <filter>hd5_format['filetype'] == 'anndata' and hd5_format['output_format'] == 'tabular'</filter> </data> <data name="tabular_var" format="tabular" from_work_dir="var.csv" label="${tool.name} on ${on_string}: Key-indexed one-dimensional variables annotation (var)"> - <filter>output_format == 'tabular'</filter> + <filter>hd5_format['filetype'] == 'anndata' and hd5_format['output_format'] == 'tabular'</filter> </data> <data name="tabular_varm" format="tabular" from_work_dir="varm.csv" label="${tool.name} on ${on_string}: Key-indexed multi-dimensional variables annotation (varm)"> - <filter>output_format == 'tabular'</filter> + <filter>hd5_format['filetype'] == 'anndata' and hd5_format['output_format'] == 'tabular'</filter> </data> + <collection name="layer_tsvs" type="list" label="Layer matrices" > + <filter>hd5_format['filetype'] == 'loom'</filter> + <discover_datasets pattern="__designation__" format="tabular" directory="output" visible="false" /> + </collection> + <collection name="attribute_tsvs" type="list" label="Attribute matrices" > + <filter>hd5_format['filetype'] == 'loom'</filter> + <discover_datasets pattern="__designation__" format="tabular" directory="attributes" visible="false" /> + </collection> </outputs> <tests> - <test> + <test expect_num_outputs="1"> + <param name="filetype" value="anndata"/> <param name="input" value="krumsiek11.h5ad"/> <param name="output_format" value="loom"/> <assert_stdout> @@ -56,7 +81,8 @@ </assert_stdout> <output name="loom_output" value="export.krumsiek11.loom" ftype="loom" compare="sim_size"/> </test> - <test> + <test expect_num_outputs="5"> + <param name="filetype" value="anndata"/> <param name="input" value="krumsiek11.h5ad"/> <param name="output_format" value="tabular"/> <assert_stdout> @@ -68,13 +94,26 @@ <output name="tabular_var" value="export.krumsiek11.var.tabular" ftype="tabular"/> <output name="tabular_varm" value="export.krumsiek11.varm.tabular" ftype="tabular"/> </test> + <test expect_num_outputs="2"> + <param name="filetype" value="loom"/> + <param name="input" value="loomtest.loom"/> + <output_collection name="layer_tsvs" type="list"> + <element name="mainmatrix.tsv" value="firstlayer.tsv" ftype="tabular"/> + <element name="extralayer.tsv" value="secondlayer.tsv" ftype="tabular"/> + <element name="thirdlayer.tsv" value="finallayer.tsv" ftype="tabular"/> + </output_collection> + <output_collection name="attribute_tsvs" type="list"> + <element name="row_attr.tsv" value="rows.tsv" ftype="tabular"/> + <element name="col_attr.tsv" value="cols.tsv" ftype="tabular"/> + </output_collection> + </test> </tests> <help><![CDATA[ -**What it does** +This tool exports an AnnData dataset to a Loom file +(`write_loom method <https://anndata.readthedocs.io/en/latest/anndata.AnnData.write_loom.html>`__) +or a Tabular file (`write_csvs method <https://anndata.readthedocs.io/en/latest/anndata.AnnData.write_csvs.html>`__) -This tool exports a AnnData dataset to a Loom file -(`write_loom method <https://anndata.readthedocs.io/en/latest/anndata.AnnData.write_loom.html>`__) -or a Tabular file (`write_csvs method <https://anndata.readthedocs.io/en/latest/anndata.AnnData.write_csvs.html>`__) +It can also create a series of tabular files from an input loom dataset. @HELP@ ]]></help> |
b |
diff -r e0395cca2c57 -r 8623710d083c loompy_to_tsv.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/loompy_to_tsv.py Mon Jan 06 13:44:46 2020 -0500 |
[ |
@@ -0,0 +1,82 @@ +#!/usr/bin/env python + +"""Converts a loompy file to tsv file(s). Each layer becomes a new file.""" + +import argparse + +import loompy + +parser = argparse.ArgumentParser(description="Loompy file converter flags") +parser.add_argument('--version', action='version', version='%(prog)s 0.1.0', + help="Displays tool version") +parser.add_argument("-f", "--file", help="loom file to import") +args = parser.parse_args() + +file = args.file + +matrices = [] +allcols = [] +colstrings = [] +allrows = [] + +# Build background info for all attributes and layers +loompyfile = loompy.connect(file) +row_attributes = loompyfile.ra.keys() # List of row attributes +for row in row_attributes: # Each list represents rownames for row_attributes + c_row = loompyfile.ra[row] + c_row = [str(r) for r in c_row] + allrows.append(c_row) +col_attributes = loompyfile.ca.keys() # List of column attributes +for col in col_attributes: # each list represents colnames for col_attributes + c_col = loompyfile.ca[col] + c_col = [str(c) for c in c_col] + allcols.append(c_col) +layers = loompyfile.layers.keys() # List of layers +for layer in layers: # List with each element being a loompy layer + c_layer = loompyfile[layer] + c_layer = c_layer[:, :] + c_layer = c_layer.astype(str) + matrices.append(c_layer) + +# Create column attribute output +with open("attributes/col_attr.tsv", "w") as colout: + col_attributes = "\t".join(col_attributes) + "\n" + colout.write(col_attributes) + for length in range(0, len(c_col)): + attributestring = "" + for col in allcols: + attributestring = attributestring + col[length] + "\t" + while attributestring[-1] == "\t": + attributestring = attributestring[:-1] + colout.write(attributestring) + colout.write("\n") +# Create row attribute output +with open("attributes/row_attr.tsv", "w") as rowout: + row_attributes = "\t".join(row_attributes) + "\n" + rowout.write(row_attributes) + for length in range(0, len(c_row)): + attributestring = "" + for row in allrows: + attributestring = attributestring + row[length] + "\t" + while attributestring[-1] == "\t": + attributestring = attributestring[:-1] + rowout.write(attributestring) + rowout.write("\n") + +# Build output files for each layer +for x in range(0, len(layers)): + # Output file name generation + if layers[x] in layers[0: x]: # Different output names if layers have same names somehow + repeats = layers[0, x].count(layer[x]) + outputname = "output/" + layers[x] + repeats + ".tsv" + elif layers[x] == "": # Empty layer name + outputname = "output/mainmatrix.tsv" + else: + outputname = "output/" + str(layers[x]) + ".tsv" # Usual case +# Matrix output + with open(outputname, "w") as outputmatrix: + for line in matrices[x]: + line = "\t".join(line) + line += "\n" + line = line + outputmatrix.write(line) |
b |
diff -r e0395cca2c57 -r 8623710d083c macros.xml --- a/macros.xml Thu Dec 12 09:23:01 2019 -0500 +++ b/macros.xml Mon Jan 06 13:44:46 2020 -0500 |
[ |
@@ -15,13 +15,19 @@ </citations> </xml> <xml name="version_command"> - <version_command><![CDATA[python -c "import anndata as ad;print('anndata version: %s' % ad.__version__)"]]></version_command> + <version_command><![CDATA[python -c "import anndata as ad;print('anndata version: %s' % ad.__version__); import loompy;print('\nloompy version: %s' % loompy.__version__)"]]></version_command> </xml> <token name="@CMD@"><![CDATA[ cat '$script_file' && python '$script_file' ]]> </token> + <token name="@LOOMCMD@"><![CDATA[ +mkdir ./output && +mkdir ./attributes && +python '$__tool_directory__/loompy_to_tsv.py' -f '${hd5_format.input}' + ]]> + </token> <token name="@CMD_imports@"><![CDATA[ import anndata as ad ]]> @@ -33,15 +39,27 @@ AnnData stores a data matrix `X` together with annotations of observations `obs`, variables `var` and unstructured annotations `uns`. -.. image:: https://falexwolf.de/img/scanpy/anndata.svg +.. image:: https://falexwolf.de/img/scanpy/anndata.svg -AnnData stores observations (samples) of variables (features) in the rows of a matrix. This is the convention of the modern classics -of statistics (`Hastie et al., 2009 <https://web.stanford.edu/~hastie/ElemStatLearn/>`__) and machine learning (Murphy, 2012), the convention of dataframes both in R and Python and the established statistics +AnnData stores observations (samples) of variables (features) in the rows of a matrix. This is the convention of the modern classics +of statistics (`Hastie et al., 2009 <https://web.stanford.edu/~hastie/ElemStatLearn/>`__) and machine learning (Murphy, 2012), the convention of dataframes both in R and Python and the established statistics and machine learning packages in Python (statsmodels, scikit-learn). More details on the `AnnData documentation <https://anndata.readthedocs.io/en/latest/anndata.AnnData.html>`__ + + +**Loom data** + +Loom files are an efficient file format for very large omics datasets, consisting of a main matrix, optional additional layers, a variable number of row and column annotations, and sparse graph objects. + +.. image:: https://linnarssonlab.org/loompy/_images/Loom_components.png + + +Loom files to store single-cell gene expression data: the main matrix contains the actual expression values (one column per cell, one row per gene); row and column annotations contain metadata for genes +and cells, such as Name, Chromosome, Position (for genes), and Strain, Sex, Age (for cells). + ]]> </token> <xml name="params_chunk_X"> |
b |
diff -r e0395cca2c57 -r 8623710d083c modify_loom.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/modify_loom.py Mon Jan 06 13:44:46 2020 -0500 |
[ |
@@ -0,0 +1,108 @@ +#!/usr/bin/env python +"""This program adds layers, row attributes or column attributes for loom files""" + +import argparse + +import loompy +import numpy as np + +parser = argparse.ArgumentParser(description="Loompy file converter flags") +parser.add_argument('--VERSION', action='version', version='%(prog)s 0.1.0', + help="Displays tool version") +parser.add_argument('--file', '-f', + help="Loom file to which data will be added") +parser.add_argument('--rowfile', '-r', help="File of row attributes & values") +parser.add_argument('--colfile', '-c', + help="File of column attributes and values") +parser.add_argument('--layers', '-l', nargs='*', + help="Input tsv files. First file becomes main layer.") +parser.add_argument('--add', '-a', choices=["rows", "cols", "layers"], + help="Selects rows, columns or layers to be added to file") +args = parser.parse_args() + +lfile = args.file +if args.rowfile: + rowfile = args.rowfile +if args.colfile: + colfile = args.colfile +if args.layers: + alllayers = args.layers +addselect = args.add +# Check proper flags for chosen attributes are being added +if addselect == "cols" and not args.colfile: + raise Exception("To add column attributes, column flag and file must be provided") +if addselect == "rows" and not args.rowfile: + raise Exception("To add row attributes, row flag and file must be provided") +if addselect == "layers" and not args.layers: + raise Exception("To add layers, a layer flag and file(s) must be provided") + +layernames = [] +rowdict = {} +coldict = {} + +with loompy.connect(lfile) as loomfile: + # Loom file dimensions + nrow = loomfile.shape[0] + ncol = loomfile.shape[1] + if addselect == "layers": + layernames = [] + # Generate layer names based on file names + for x in range(0, len(alllayers)): + layer = alllayers[x] + layer = layer.split("/")[-1].split(".")[-2] # Takes away path, takes off extension + layernames.append(layer) + # Add in the layers themselves + for layer in range(0, len(alllayers)): + matrix = "" + with open(alllayers[layer], "r") as infile: + rows = 0 + count = 0 + for line in infile: + if count == 0: + cols = len(line.split("\t")) + if cols != ncol: + raise Exception("Dimensions of new matrix incorrect for this loom file. New matrices must be %d by %d" % (nrow, ncol)) + matrix = matrix + line + "\t" + rows += 1 + if rows != nrow: + raise Exception("Dimensions of new matrix incorrect for this loom file. New matrices must be %d by %d") + matrix = matrix.split("\t") + matrix = [float(n) for n in matrix[:-1]] + matrix = np.asarray(matrix).reshape(nrow, ncol) + loomfile[layernames[layer]] = matrix + elif addselect == "rows": + with open(rowfile, "r") as rows: + count = 0 + for line in rows: + line = line.strip().split("\t") + if count == 0: # First time through + row_attributes = line + for x in row_attributes: + rowdict[x] = [] + count += 1 + else: + for x in range(0, len(line)): + rowdict[row_attributes[x]].append(line[x]) + for x in row_attributes: + if len(rowdict[x]) != nrow: + raise Exception("Incorrect length of row. Row length must be: %d" % nrow) + loomfile.ra[x] = rowdict[x] + elif addselect == "cols": + with open(colfile, "r") as cols: + count = 0 + for line in cols: + line = line.replace('\"', "") + line = line.replace(' ', "") + line = line.strip().split("\t") + if count == 0: # First time through + col_attributes = line + for x in col_attributes: + coldict[x] = [] + count += 1 + else: + for x in range(0, len(line)): + coldict[col_attributes[x]].append(line[x]) + for y in col_attributes: + if len(coldict[y]) != ncol: + raise Exception("Incorrect length of column. Column length must be: %d" % ncol) + loomfile.ca[y] = coldict[y] |
b |
diff -r e0395cca2c57 -r 8623710d083c test-data/addlayer1.tsv --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/addlayer1.tsv Mon Jan 06 13:44:46 2020 -0500 |
b |
b'@@ -0,0 +1,9 @@\n+-4.38397705861083\t14.292813312163\t-3.50113245239144\t0.822254333007829\t1.00150289648448\t2.43591204698924\t-0.356677013622828\t-6.11947364969354\t2.56281003005924\t6.63909009032078\t-0.78946499862756\t4.69845868698249\t0.555316773542253\t1.14493347970535\t-2.13170480396421\t0.671242754395511\t-1.24598424970653\t2.35762885939\t0.808249063291586\t2.13338650412044\t-0.442400711567299\t0.185262494040311\t2.11898976841304\t1.33325569029047\t-1.59297725345935\t-0.966752781646448\t3.58792591654639\t1.66406580309397\t0.63327385793388\t-0.308925411126234\t1.62030751470511\t-0.551680746030133\t0.481109445913889\t-1.29522624182828\t-1.2921145302749\t1.35092954319461\t0.357971803776218\t0.602387478388324\t-0.86450428384588\t-0.253516849675122\t-0.191991523300002\t-1.23045693386899\t1.10601149579208\t0.474927307151347\t0.0295127518668576\t0.347320109574423\t-0.124263697792595\t-1.1355438083115\t-0.408955132576027\t0.652951279673313\t-0.560853895759609\t-1.50956633618222\t-0.372228084801999\t0.649248591501578\t1.24501120925882\t-0.333165552309464\t-0.632289365875825\t-0.489136074968853\t0.606241184362324\t-0.0697756202083343\t0.723366081694609\t0.269156075893411\t-1.1927509857456\t1.82685437466378\t0.112075843817834\t-0.393322613665142\t1.28166028199521\t-1.44150233543534\t0.439168555592787\t0.344017904319427\t1.81395743926678\t0.508805925557063\t0.848238740356503\t1.11258006953971\t-0.54997200023266\t0.809927913686388\t-0.738427841761447\t-0.453122730649697\t-0.486373667035062\t0.746360065063862\t0.700920021470684\t-0.313589192332652\t-0.906138725835488\t-0.661793483747946\t-0.271124869295733\t-0.00930238204411152\t0.3215219758547\t-1.25380192942129\t-1.55728763598058\t0.0952110940501214\t0.00839453406532392\t-0.0541448293428013\t0.18477775291979\t-0.62373646202135\t-0.0772377796590389\t-0.662366716574923\t-1.03592409403641\t-0.89249106169138\t-0.717710251591651\t0.776880357163071\n+9.30281248024864\t11.5335015413635\t2.30875450845203\t-1.38857898424223\t1.03817215518254\t3.6567570331059\t10.4188385719381\t-16.3128929934454\t-3.60726875451658\t13.7068591589974\t1.33467070509089\t5.38122487635218\t0.0543994941205517\t-2.70133427961325\t0.0833615201988052\t0.536168996886923\t-0.0760546449729948\t-0.78214225809622\t-1.95248285633292\t-0.326587425115489\t-1.35500688419885\t2.95434733271686\t0.505653381720533\t-0.295669096974786\t2.26651004107081\t3.53486650501347\t3.220565758935\t6.7321178798513\t1.94091616482302\t-1.69913768324206\t-4.05100974370053\t-1.27783882963281\t-1.01355047824763\t3.74963974715759\t-2.58850482422048\t6.8833099016512\t0.662009356554069\t3.44073177658161\t-0.418512226093587\t4.47846431563314\t-1.74206293554388\t1.84260608944111\t-4.30015045993517\t0.685087251537494\t3.24882497326721\t1.8095695466243\t0.867087349923969\t-3.63680218472816\t4.1068657392081\t-1.47022937993631\t-5.04481250049395\t1.16372912821134\t-0.673610496402694\t-0.480268341823079\t-1.75373530199601\t0.89984292745755\t-0.685746934741278\t1.35462132079302\t-2.52570708801692\t-2.74016842015935\t-0.393885487708287\t1.35180900874174\t0.566787604497255\t3.47016490744519\t1.19410589958458\t0.0954571935227406\t0.465830133214735\t0.969800327817249\t-2.30608823177911\t-1.36361346526534\t-1.07384772734754\t-1.28884764388441\t-1.1808330583485\t-2.23980854377317\t-1.85162318607013\t-0.069323155428631\t-0.398294053191192\t0.533970283418857\t0.996857378845262\t0.0816831777715224\t0.444550338509664\t-2.91836706827678\t-0.267414770797715\t-0.892474756707529\t2.17409610136124\t1.74372514825455\t1.50066087410441\t2.38996632942927\t0.0469000573619218\t-0.664299183380684\t2.60790199917983\t-2.40710478607531\t1.24547812809717\t2.41674046127559\t-1.46444549406779\t0.364174652919165\t1.30109643082257\t-0.577449382132677\t-1.86505783133924\t-1.99746975425092\n+-5.89727512326108\t-1.77246933119333\t1.52782219208749\t2.53511205650502\t-2.53100068245452\t-0.024300692685485\t1.54330662794615\t-2.74799503275627\t-3.35444290166925\t4.19511229947865\t0.465153187650876\t1.75331948382231\t-1.16526308150911\t-0.0943840089716619\t-0.24095624876061\t1.66521052849681\t-2.11688113706039\t-0.812191599443991\t1.84008723741373\t1.09605489701982\t0.353335700092688\t-0.523288451494122\t-0.2990'..b'5107\t-0.0154265589569301\t0.389711467291695\t-0.239877266341895\t0.352795111764336\t-0.190135198230446\t-0.208684600336429\t2.07918244700086\t-0.361025972011884\t1.63078492845337\t0.488804843489253\t-0.682220518809875\t-0.29463668542297\t0.311427730874536\t0.503090238195356\t-0.373064491000882\t0.23417554807577\t-1.48465915072341\t-1.46085021332334\t-0.495461794448377\t-0.17775442234612\n+-3.97575208570735\t11.0544858387352\t7.6173060428113\t6.63048929774542\t-5.30994749122935\t1.88722422257416\t4.09251614216244\t1.44648639362641\t-7.25006907798796\t6.86869361179653\t0.491494050662433\t-2.25651388279331\t9.5161454340774\t1.01476184398758\t2.5399705796852\t-2.21669881532076\t3.98394683759498\t3.59383510388346\t6.12746355517479\t-0.715726354893143\t3.55159403974729\t-1.11574398116924\t-0.525929195057429\t0.878154489745832\t-0.230493171744922\t0.714464510169232\t-0.157245107145587\t-3.4342599800683\t0.48505980459346\t0.702993897575898\t-0.135378631070949\t2.07954004197705\t-0.690953937097613\t1.27624456885549\t1.21947693928713\t1.65808520486344\t0.961593556571414\t-0.311912078906821\t-0.188898767072046\t-0.840060825549656\t-1.12921186104506\t1.56017494876464\t0.411131589159066\t-0.0521633935484305\t-1.69684514175225\t-0.0333681471142678\t-0.13906225301883\t1.24899138448782\t-0.313535620881124\t-0.310399053687893\t0.998855535319549\t-0.491386912744097\t-2.65588822465539\t-0.262301430974959\t-0.37741200187771\t-0.41429490709306\t-0.561255237373123\t-1.15276356159977\t2.78298825141619\t-0.502905861300848\t-0.675640036112791\t0.861407188085173\t0.670870463440124\t1.79627949867291\t-1.49071314746396\t1.10513353172237\t0.892902985092724\t-0.050023000293664\t-2.0951156395428\t-1.56875762272546\t0.361989901125448\t-0.225302477699307\t0.169862551615696\t-0.49530667266779\t0.458175186664475\t-1.32231097560469\t0.786081372282524\t-0.0484494603142322\t0.706878176692001\t1.15487020448148\t0.531640766037383\t-0.138810686002109\t0.591943064902141\t1.1023101065439\t1.76277780537503\t-0.905355575172113\t0.134769770511889\t-0.497015408904865\t-0.742656863985804\t-0.067343788917104\t-0.540927632084057\t-0.0580727941856462\t-1.0462842718808\t-0.00500540976328367\t-0.824608358220491\t-1.44352688132908\t1.75740458742792\t-0.44311879378313\t-0.662584623920899\t0.888462747166643\n+-5.277006254183\t2.42397087953038\t-0.943798001822603\t2.85780940799815\t2.36895039654097\t-2.69659967635116\t1.54629605482182\t-8.96928156931566\t-1.64262157483957\t1.43852747962271\t-0.967981915016056\t-0.390735428021631\t-2.15024133526923\t0.277271702300901\t1.8053039804015\t-0.535107559431625\t1.67768924818208\t-0.421010853147353\t-1.16464550016846\t-0.0251453460136133\t0.436658055348297\t-0.29540721194163\t0.333748713475055\t-0.723208532365344\t0.471110811941787\t0.726089991234918\t-0.157382569241171\t-0.379234094421878\t0.748812558274635\t-0.41301464848253\t0.566057622213117\t-1.64460356067673\t0.891204658261791\t-0.34932773880327\t-1.30922369726531\t-0.173573387498366\t0.8056807178332\t0.208881576008633\t-1.60357889692679\t0.908540313457729\t-0.292428392920166\t-0.0118489017469322\t-0.891712950604345\t1.16207204758746\t0.430624050805364\t-0.410051657015908\t0.730349459202633\t-0.331488261254584\t-1.11548393909722\t0.956994457204229\t-0.175931934021692\t-1.2036342551925\t-0.231987307226876\t0.750428558384009\t1.32527020615915\t-0.0420682884240139\t-0.092958898049259\t-0.0122267448532016\t0.726126639304472\t-0.694555932842187\t-0.262226740797341\t-1.0291540856062\t0.0793211050194524\t-0.670890710123743\t2.29978649016219\t-1.04786389277271\t0.0673332449001132\t-0.0371298860750165\t-0.190086855611152\t0.569211538833251\t0.919033137444811\t0.0635277673597158\t1.00004676925338\t0.463824012820739\t-0.661533287421813\t-0.532636001812366\t0.13594592076042\t0.353092106176299\t0.362734586198694\t0.648858597916376\t-0.947487352382305\t-0.890204579930725\t-0.481659475836321\t-0.382386249884642\t-0.565389965376474\t0.69470847650723\t0.565209012057139\t-0.594122862421382\t0.374110007433118\t0.906000246931211\t1.14643222017558\t-0.864426844788516\t-0.107902667694253\t-1.33878812133165\t-0.648727117620733\t-0.682898186419176\t0.152703116395545\t1.18647033835958\t-0.730347642632863\t0.355381103259185\n' |
b |
diff -r e0395cca2c57 -r 8623710d083c test-data/addloomout1.loom |
b |
Binary file test-data/addloomout1.loom has changed |
b |
diff -r e0395cca2c57 -r 8623710d083c test-data/addloomout2.loom |
b |
Binary file test-data/addloomout2.loom has changed |
b |
diff -r e0395cca2c57 -r 8623710d083c test-data/addloomout3.loom |
b |
Binary file test-data/addloomout3.loom has changed |
b |
diff -r e0395cca2c57 -r 8623710d083c test-data/addtest.loom |
b |
Binary file test-data/addtest.loom has changed |
b |
diff -r e0395cca2c57 -r 8623710d083c test-data/cols.tsv --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/cols.tsv Mon Jan 06 13:44:46 2020 -0500 |
b |
@@ -0,0 +1,101 @@ +Testing testing testing2 +PC1 0 200 +PC2 1 201 +PC3 2 202 +PC4 3 203 +PC5 4 204 +PC6 5 205 +PC7 6 206 +PC8 7 207 +PC9 8 208 +PC10 9 209 +PC11 10 210 +PC12 11 211 +PC13 12 212 +PC14 13 213 +PC15 14 214 +PC16 15 215 +PC17 16 216 +PC18 17 217 +PC19 18 218 +PC20 19 219 +PC21 20 220 +PC22 21 221 +PC23 22 222 +PC24 23 223 +PC25 24 224 +PC26 25 225 +PC27 26 226 +PC28 27 227 +PC29 28 228 +PC30 29 229 +PC31 30 230 +PC32 31 231 +PC33 32 232 +PC34 33 233 +PC35 34 234 +PC36 35 235 +PC37 36 236 +PC38 37 237 +PC39 38 238 +PC40 39 239 +PC41 40 240 +PC42 41 241 +PC43 42 242 +PC44 43 243 +PC45 44 244 +PC46 45 245 +PC47 46 246 +PC48 47 247 +PC49 48 248 +PC50 49 249 +PC51 50 250 +PC52 51 251 +PC53 52 252 +PC54 53 253 +PC55 54 254 +PC56 55 255 +PC57 56 256 +PC58 57 257 +PC59 58 258 +PC60 59 259 +PC61 60 260 +PC62 61 261 +PC63 62 262 +PC64 63 263 +PC65 64 264 +PC66 65 265 +PC67 66 266 +PC68 67 267 +PC69 68 268 +PC70 69 269 +PC71 70 270 +PC72 71 271 +PC73 72 272 +PC74 73 273 +PC75 74 274 +PC76 75 275 +PC77 76 276 +PC78 77 277 +PC79 78 278 +PC80 79 279 +PC81 80 280 +PC82 81 281 +PC83 82 282 +PC84 83 283 +PC85 84 284 +PC86 85 285 +PC87 86 286 +PC88 87 287 +PC89 88 288 +PC90 89 289 +PC91 90 290 +PC92 91 291 +PC93 92 292 +PC94 93 293 +PC95 94 294 +PC96 95 295 +PC97 96 296 +PC98 97 297 +PC99 98 298 +PC100 99 299 |
b |
diff -r e0395cca2c57 -r 8623710d083c test-data/converted.loom.test |
b |
Binary file test-data/converted.loom.test has changed |
b |
diff -r e0395cca2c57 -r 8623710d083c test-data/finallayer.tsv --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/finallayer.tsv Mon Jan 06 13:44:46 2020 -0500 |
b |
@@ -0,0 +1,9 @@ +900.0 901.0 902.0 903.0 904.0 905.0 906.0 907.0 908.0 909.0 910.0 911.0 912.0 913.0 914.0 915.0 916.0 917.0 918.0 919.0 920.0 921.0 922.0 923.0 924.0 925.0 926.0 927.0 928.0 929.0 930.0 931.0 932.0 933.0 934.0 935.0 936.0 937.0 938.0 939.0 940.0 941.0 942.0 943.0 944.0 945.0 946.0 947.0 948.0 949.0 950.0 951.0 952.0 953.0 954.0 955.0 956.0 957.0 958.0 959.0 960.0 961.0 962.0 963.0 964.0 965.0 966.0 967.0 968.0 969.0 970.0 971.0 972.0 973.0 974.0 975.0 976.0 977.0 978.0 979.0 980.0 981.0 982.0 983.0 984.0 985.0 986.0 987.0 988.0 989.0 990.0 991.0 992.0 993.0 994.0 995.0 996.0 997.0 998.0 999.0 +1000.0 1001.0 1002.0 1003.0 1004.0 1005.0 1006.0 1007.0 1008.0 1009.0 1010.0 1011.0 1012.0 1013.0 1014.0 1015.0 1016.0 1017.0 1018.0 1019.0 1020.0 1021.0 1022.0 1023.0 1024.0 1025.0 1026.0 1027.0 1028.0 1029.0 1030.0 1031.0 1032.0 1033.0 1034.0 1035.0 1036.0 1037.0 1038.0 1039.0 1040.0 1041.0 1042.0 1043.0 1044.0 1045.0 1046.0 1047.0 1048.0 1049.0 1050.0 1051.0 1052.0 1053.0 1054.0 1055.0 1056.0 1057.0 1058.0 1059.0 1060.0 1061.0 1062.0 1063.0 1064.0 1065.0 1066.0 1067.0 1068.0 1069.0 1070.0 1071.0 1072.0 1073.0 1074.0 1075.0 1076.0 1077.0 1078.0 1079.0 1080.0 1081.0 1082.0 1083.0 1084.0 1085.0 1086.0 1087.0 1088.0 1089.0 1090.0 1091.0 1092.0 1093.0 1094.0 1095.0 1096.0 1097.0 1098.0 1099.0 +1100.0 1101.0 1102.0 1103.0 1104.0 1105.0 1106.0 1107.0 1108.0 1109.0 1110.0 1111.0 1112.0 1113.0 1114.0 1115.0 1116.0 1117.0 1118.0 1119.0 1120.0 1121.0 1122.0 1123.0 1124.0 1125.0 1126.0 1127.0 1128.0 1129.0 1130.0 1131.0 1132.0 1133.0 1134.0 1135.0 1136.0 1137.0 1138.0 1139.0 1140.0 1141.0 1142.0 1143.0 1144.0 1145.0 1146.0 1147.0 1148.0 1149.0 1150.0 1151.0 1152.0 1153.0 1154.0 1155.0 1156.0 1157.0 1158.0 1159.0 1160.0 1161.0 1162.0 1163.0 1164.0 1165.0 1166.0 1167.0 1168.0 1169.0 1170.0 1171.0 1172.0 1173.0 1174.0 1175.0 1176.0 1177.0 1178.0 1179.0 1180.0 1181.0 1182.0 1183.0 1184.0 1185.0 1186.0 1187.0 1188.0 1189.0 1190.0 1191.0 1192.0 1193.0 1194.0 1195.0 1196.0 1197.0 1198.0 1199.0 +1200.0 1201.0 1202.0 1203.0 1204.0 1205.0 1206.0 1207.0 1208.0 1209.0 1210.0 1211.0 1212.0 1213.0 1214.0 1215.0 1216.0 1217.0 1218.0 1219.0 1220.0 1221.0 1222.0 1223.0 1224.0 1225.0 1226.0 1227.0 1228.0 1229.0 1230.0 1231.0 1232.0 1233.0 1234.0 1235.0 1236.0 1237.0 1238.0 1239.0 1240.0 1241.0 1242.0 1243.0 1244.0 1245.0 1246.0 1247.0 1248.0 1249.0 1250.0 1251.0 1252.0 1253.0 1254.0 1255.0 1256.0 1257.0 1258.0 1259.0 1260.0 1261.0 1262.0 1263.0 1264.0 1265.0 1266.0 1267.0 1268.0 1269.0 1270.0 1271.0 1272.0 1273.0 1274.0 1275.0 1276.0 1277.0 1278.0 1279.0 1280.0 1281.0 1282.0 1283.0 1284.0 1285.0 1286.0 1287.0 1288.0 1289.0 1290.0 1291.0 1292.0 1293.0 1294.0 1295.0 1296.0 1297.0 1298.0 1299.0 +1300.0 1301.0 1302.0 1303.0 1304.0 1305.0 1306.0 1307.0 1308.0 1309.0 1310.0 1311.0 1312.0 1313.0 1314.0 1315.0 1316.0 1317.0 1318.0 1319.0 1320.0 1321.0 1322.0 1323.0 1324.0 1325.0 1326.0 1327.0 1328.0 1329.0 1330.0 1331.0 1332.0 1333.0 1334.0 1335.0 1336.0 1337.0 1338.0 1339.0 1340.0 1341.0 1342.0 1343.0 1344.0 1345.0 1346.0 1347.0 1348.0 1349.0 1350.0 1351.0 1352.0 1353.0 1354.0 1355.0 1356.0 1357.0 1358.0 1359.0 1360.0 1361.0 1362.0 1363.0 1364.0 1365.0 1366.0 1367.0 1368.0 1369.0 1370.0 1371.0 1372.0 1373.0 1374.0 1375.0 1376.0 1377.0 1378.0 1379.0 1380.0 1381.0 1382.0 1383.0 1384.0 1385.0 1386.0 1387.0 1388.0 1389.0 1390.0 1391.0 1392.0 1393.0 1394.0 1395.0 1396.0 1397.0 1398.0 1399.0 +1400.0 1401.0 1402.0 1403.0 1404.0 1405.0 1406.0 1407.0 1408.0 1409.0 1410.0 1411.0 1412.0 1413.0 1414.0 1415.0 1416.0 1417.0 1418.0 1419.0 1420.0 1421.0 1422.0 1423.0 1424.0 1425.0 1426.0 1427.0 1428.0 1429.0 1430.0 1431.0 1432.0 1433.0 1434.0 1435.0 1436.0 1437.0 1438.0 1439.0 1440.0 1441.0 1442.0 1443.0 1444.0 1445.0 1446.0 1447.0 1448.0 1449.0 1450.0 1451.0 1452.0 1453.0 1454.0 1455.0 1456.0 1457.0 1458.0 1459.0 1460.0 1461.0 1462.0 1463.0 1464.0 1465.0 1466.0 1467.0 1468.0 1469.0 1470.0 1471.0 1472.0 1473.0 1474.0 1475.0 1476.0 1477.0 1478.0 1479.0 1480.0 1481.0 1482.0 1483.0 1484.0 1485.0 1486.0 1487.0 1488.0 1489.0 1490.0 1491.0 1492.0 1493.0 1494.0 1495.0 1496.0 1497.0 1498.0 1499.0 +1500.0 1501.0 1502.0 1503.0 1504.0 1505.0 1506.0 1507.0 1508.0 1509.0 1510.0 1511.0 1512.0 1513.0 1514.0 1515.0 1516.0 1517.0 1518.0 1519.0 1520.0 1521.0 1522.0 1523.0 1524.0 1525.0 1526.0 1527.0 1528.0 1529.0 1530.0 1531.0 1532.0 1533.0 1534.0 1535.0 1536.0 1537.0 1538.0 1539.0 1540.0 1541.0 1542.0 1543.0 1544.0 1545.0 1546.0 1547.0 1548.0 1549.0 1550.0 1551.0 1552.0 1553.0 1554.0 1555.0 1556.0 1557.0 1558.0 1559.0 1560.0 1561.0 1562.0 1563.0 1564.0 1565.0 1566.0 1567.0 1568.0 1569.0 1570.0 1571.0 1572.0 1573.0 1574.0 1575.0 1576.0 1577.0 1578.0 1579.0 1580.0 1581.0 1582.0 1583.0 1584.0 1585.0 1586.0 1587.0 1588.0 1589.0 1590.0 1591.0 1592.0 1593.0 1594.0 1595.0 1596.0 1597.0 1598.0 1599.0 +1600.0 1601.0 1602.0 1603.0 1604.0 1605.0 1606.0 1607.0 1608.0 1609.0 1610.0 1611.0 1612.0 1613.0 1614.0 1615.0 1616.0 1617.0 1618.0 1619.0 1620.0 1621.0 1622.0 1623.0 1624.0 1625.0 1626.0 1627.0 1628.0 1629.0 1630.0 1631.0 1632.0 1633.0 1634.0 1635.0 1636.0 1637.0 1638.0 1639.0 1640.0 1641.0 1642.0 1643.0 1644.0 1645.0 1646.0 1647.0 1648.0 1649.0 1650.0 1651.0 1652.0 1653.0 1654.0 1655.0 1656.0 1657.0 1658.0 1659.0 1660.0 1661.0 1662.0 1663.0 1664.0 1665.0 1666.0 1667.0 1668.0 1669.0 1670.0 1671.0 1672.0 1673.0 1674.0 1675.0 1676.0 1677.0 1678.0 1679.0 1680.0 1681.0 1682.0 1683.0 1684.0 1685.0 1686.0 1687.0 1688.0 1689.0 1690.0 1691.0 1692.0 1693.0 1694.0 1695.0 1696.0 1697.0 1698.0 1699.0 +1700.0 1701.0 1702.0 1703.0 1704.0 1705.0 1706.0 1707.0 1708.0 1709.0 1710.0 1711.0 1712.0 1713.0 1714.0 1715.0 1716.0 1717.0 1718.0 1719.0 1720.0 1721.0 1722.0 1723.0 1724.0 1725.0 1726.0 1727.0 1728.0 1729.0 1730.0 1731.0 1732.0 1733.0 1734.0 1735.0 1736.0 1737.0 1738.0 1739.0 1740.0 1741.0 1742.0 1743.0 1744.0 1745.0 1746.0 1747.0 1748.0 1749.0 1750.0 1751.0 1752.0 1753.0 1754.0 1755.0 1756.0 1757.0 1758.0 1759.0 1760.0 1761.0 1762.0 1763.0 1764.0 1765.0 1766.0 1767.0 1768.0 1769.0 1770.0 1771.0 1772.0 1773.0 1774.0 1775.0 1776.0 1777.0 1778.0 1779.0 1780.0 1781.0 1782.0 1783.0 1784.0 1785.0 1786.0 1787.0 1788.0 1789.0 1790.0 1791.0 1792.0 1793.0 1794.0 1795.0 1796.0 1797.0 1798.0 1799.0 |
b |
diff -r e0395cca2c57 -r 8623710d083c test-data/firstlayer.tsv --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/firstlayer.tsv Mon Jan 06 13:44:46 2020 -0500 |
b |
b'@@ -0,0 +1,9 @@\n+-4.38397705861083\t14.292813312163\t-3.50113245239144\t0.822254333007829\t1.00150289648448\t2.43591204698924\t-0.356677013622828\t-6.11947364969354\t2.56281003005924\t6.63909009032078\t-0.78946499862756\t4.69845868698249\t0.555316773542253\t1.14493347970535\t-2.13170480396421\t0.671242754395511\t-1.24598424970653\t2.35762885939\t0.808249063291586\t2.13338650412044\t-0.442400711567299\t0.185262494040311\t2.11898976841304\t1.33325569029047\t-1.59297725345935\t-0.966752781646448\t3.58792591654639\t1.66406580309397\t0.63327385793388\t-0.308925411126234\t1.62030751470511\t-0.551680746030133\t0.481109445913889\t-1.29522624182828\t-1.2921145302749\t1.35092954319461\t0.357971803776218\t0.602387478388324\t-0.86450428384588\t-0.253516849675122\t-0.191991523300002\t-1.23045693386899\t1.10601149579208\t0.474927307151347\t0.0295127518668576\t0.347320109574423\t-0.124263697792595\t-1.1355438083115\t-0.408955132576027\t0.652951279673313\t-0.560853895759609\t-1.50956633618222\t-0.372228084801999\t0.649248591501578\t1.24501120925882\t-0.333165552309464\t-0.632289365875825\t-0.489136074968853\t0.606241184362324\t-0.0697756202083343\t0.723366081694609\t0.269156075893411\t-1.1927509857456\t1.82685437466378\t0.112075843817834\t-0.393322613665142\t1.28166028199521\t-1.44150233543534\t0.439168555592787\t0.344017904319427\t1.81395743926678\t0.508805925557063\t0.848238740356503\t1.11258006953971\t-0.54997200023266\t0.809927913686388\t-0.738427841761447\t-0.453122730649697\t-0.486373667035062\t0.746360065063862\t0.700920021470684\t-0.313589192332652\t-0.906138725835488\t-0.661793483747946\t-0.271124869295733\t-0.00930238204411152\t0.3215219758547\t-1.25380192942129\t-1.55728763598058\t0.0952110940501214\t0.00839453406532392\t-0.0541448293428013\t0.18477775291979\t-0.62373646202135\t-0.0772377796590389\t-0.662366716574923\t-1.03592409403641\t-0.89249106169138\t-0.717710251591651\t0.776880357163071\n+9.30281248024864\t11.5335015413635\t2.30875450845203\t-1.38857898424223\t1.03817215518254\t3.6567570331059\t10.4188385719381\t-16.3128929934454\t-3.60726875451658\t13.7068591589974\t1.33467070509089\t5.38122487635218\t0.0543994941205517\t-2.70133427961325\t0.0833615201988052\t0.536168996886923\t-0.0760546449729948\t-0.78214225809622\t-1.95248285633292\t-0.326587425115489\t-1.35500688419885\t2.95434733271686\t0.505653381720533\t-0.295669096974786\t2.26651004107081\t3.53486650501347\t3.220565758935\t6.7321178798513\t1.94091616482302\t-1.69913768324206\t-4.05100974370053\t-1.27783882963281\t-1.01355047824763\t3.74963974715759\t-2.58850482422048\t6.8833099016512\t0.662009356554069\t3.44073177658161\t-0.418512226093587\t4.47846431563314\t-1.74206293554388\t1.84260608944111\t-4.30015045993517\t0.685087251537494\t3.24882497326721\t1.8095695466243\t0.867087349923969\t-3.63680218472816\t4.1068657392081\t-1.47022937993631\t-5.04481250049395\t1.16372912821134\t-0.673610496402694\t-0.480268341823079\t-1.75373530199601\t0.89984292745755\t-0.685746934741278\t1.35462132079302\t-2.52570708801692\t-2.74016842015935\t-0.393885487708287\t1.35180900874174\t0.566787604497255\t3.47016490744519\t1.19410589958458\t0.0954571935227406\t0.465830133214735\t0.969800327817249\t-2.30608823177911\t-1.36361346526534\t-1.07384772734754\t-1.28884764388441\t-1.1808330583485\t-2.23980854377317\t-1.85162318607013\t-0.069323155428631\t-0.398294053191192\t0.533970283418857\t0.996857378845262\t0.0816831777715224\t0.444550338509664\t-2.91836706827678\t-0.267414770797715\t-0.892474756707529\t2.17409610136124\t1.74372514825455\t1.50066087410441\t2.38996632942927\t0.0469000573619218\t-0.664299183380684\t2.60790199917983\t-2.40710478607531\t1.24547812809717\t2.41674046127559\t-1.46444549406779\t0.364174652919165\t1.30109643082257\t-0.577449382132677\t-1.86505783133924\t-1.99746975425092\n+-5.89727512326108\t-1.77246933119333\t1.52782219208749\t2.53511205650502\t-2.53100068245452\t-0.024300692685485\t1.54330662794615\t-2.74799503275627\t-3.35444290166925\t4.19511229947865\t0.465153187650876\t1.75331948382231\t-1.16526308150911\t-0.0943840089716619\t-0.24095624876061\t1.66521052849681\t-2.11688113706039\t-0.812191599443991\t1.84008723741373\t1.09605489701982\t0.353335700092688\t-0.523288451494122\t-0.2990'..b'5107\t-0.0154265589569301\t0.389711467291695\t-0.239877266341895\t0.352795111764336\t-0.190135198230446\t-0.208684600336429\t2.07918244700086\t-0.361025972011884\t1.63078492845337\t0.488804843489253\t-0.682220518809875\t-0.29463668542297\t0.311427730874536\t0.503090238195356\t-0.373064491000882\t0.23417554807577\t-1.48465915072341\t-1.46085021332334\t-0.495461794448377\t-0.17775442234612\n+-3.97575208570735\t11.0544858387352\t7.6173060428113\t6.63048929774542\t-5.30994749122935\t1.88722422257416\t4.09251614216244\t1.44648639362641\t-7.25006907798796\t6.86869361179653\t0.491494050662433\t-2.25651388279331\t9.5161454340774\t1.01476184398758\t2.5399705796852\t-2.21669881532076\t3.98394683759498\t3.59383510388346\t6.12746355517479\t-0.715726354893143\t3.55159403974729\t-1.11574398116924\t-0.525929195057429\t0.878154489745832\t-0.230493171744922\t0.714464510169232\t-0.157245107145587\t-3.4342599800683\t0.48505980459346\t0.702993897575898\t-0.135378631070949\t2.07954004197705\t-0.690953937097613\t1.27624456885549\t1.21947693928713\t1.65808520486344\t0.961593556571414\t-0.311912078906821\t-0.188898767072046\t-0.840060825549656\t-1.12921186104506\t1.56017494876464\t0.411131589159066\t-0.0521633935484305\t-1.69684514175225\t-0.0333681471142678\t-0.13906225301883\t1.24899138448782\t-0.313535620881124\t-0.310399053687893\t0.998855535319549\t-0.491386912744097\t-2.65588822465539\t-0.262301430974959\t-0.37741200187771\t-0.41429490709306\t-0.561255237373123\t-1.15276356159977\t2.78298825141619\t-0.502905861300848\t-0.675640036112791\t0.861407188085173\t0.670870463440124\t1.79627949867291\t-1.49071314746396\t1.10513353172237\t0.892902985092724\t-0.050023000293664\t-2.0951156395428\t-1.56875762272546\t0.361989901125448\t-0.225302477699307\t0.169862551615696\t-0.49530667266779\t0.458175186664475\t-1.32231097560469\t0.786081372282524\t-0.0484494603142322\t0.706878176692001\t1.15487020448148\t0.531640766037383\t-0.138810686002109\t0.591943064902141\t1.1023101065439\t1.76277780537503\t-0.905355575172113\t0.134769770511889\t-0.497015408904865\t-0.742656863985804\t-0.067343788917104\t-0.540927632084057\t-0.0580727941856462\t-1.0462842718808\t-0.00500540976328367\t-0.824608358220491\t-1.44352688132908\t1.75740458742792\t-0.44311879378313\t-0.662584623920899\t0.888462747166643\n+-5.277006254183\t2.42397087953038\t-0.943798001822603\t2.85780940799815\t2.36895039654097\t-2.69659967635116\t1.54629605482182\t-8.96928156931566\t-1.64262157483957\t1.43852747962271\t-0.967981915016056\t-0.390735428021631\t-2.15024133526923\t0.277271702300901\t1.8053039804015\t-0.535107559431625\t1.67768924818208\t-0.421010853147353\t-1.16464550016846\t-0.0251453460136133\t0.436658055348297\t-0.29540721194163\t0.333748713475055\t-0.723208532365344\t0.471110811941787\t0.726089991234918\t-0.157382569241171\t-0.379234094421878\t0.748812558274635\t-0.41301464848253\t0.566057622213117\t-1.64460356067673\t0.891204658261791\t-0.34932773880327\t-1.30922369726531\t-0.173573387498366\t0.8056807178332\t0.208881576008633\t-1.60357889692679\t0.908540313457729\t-0.292428392920166\t-0.0118489017469322\t-0.891712950604345\t1.16207204758746\t0.430624050805364\t-0.410051657015908\t0.730349459202633\t-0.331488261254584\t-1.11548393909722\t0.956994457204229\t-0.175931934021692\t-1.2036342551925\t-0.231987307226876\t0.750428558384009\t1.32527020615915\t-0.0420682884240139\t-0.092958898049259\t-0.0122267448532016\t0.726126639304472\t-0.694555932842187\t-0.262226740797341\t-1.0291540856062\t0.0793211050194524\t-0.670890710123743\t2.29978649016219\t-1.04786389277271\t0.0673332449001132\t-0.0371298860750165\t-0.190086855611152\t0.569211538833251\t0.919033137444811\t0.0635277673597158\t1.00004676925338\t0.463824012820739\t-0.661533287421813\t-0.532636001812366\t0.13594592076042\t0.353092106176299\t0.362734586198694\t0.648858597916376\t-0.947487352382305\t-0.890204579930725\t-0.481659475836321\t-0.382386249884642\t-0.565389965376474\t0.69470847650723\t0.565209012057139\t-0.594122862421382\t0.374110007433118\t0.906000246931211\t1.14643222017558\t-0.864426844788516\t-0.107902667694253\t-1.33878812133165\t-0.648727117620733\t-0.682898186419176\t0.152703116395545\t1.18647033835958\t-0.730347642632863\t0.355381103259185\n' |
b |
diff -r e0395cca2c57 -r 8623710d083c test-data/loomtest.loom |
b |
Binary file test-data/loomtest.loom has changed |
b |
diff -r e0395cca2c57 -r 8623710d083c test-data/rows.tsv --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/rows.tsv Mon Jan 06 13:44:46 2020 -0500 |
b |
@@ -0,0 +1,10 @@ +Gene Protein Testing Testing2 +0 0 3 15 +1 1 4 16 +2 2 5 17 +3 3 6 18 +4 4 7 19 +5 5 8 20 +6 6 9 21 +7 7 10 22 +8 8 11 23 |
b |
diff -r e0395cca2c57 -r 8623710d083c test-data/secondlayer.tsv --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/secondlayer.tsv Mon Jan 06 13:44:46 2020 -0500 |
b |
@@ -0,0 +1,9 @@ +0.0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 11.0 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0 20.0 21.0 22.0 23.0 24.0 25.0 26.0 27.0 28.0 29.0 30.0 31.0 32.0 33.0 34.0 35.0 36.0 37.0 38.0 39.0 40.0 41.0 42.0 43.0 44.0 45.0 46.0 47.0 48.0 49.0 50.0 51.0 52.0 53.0 54.0 55.0 56.0 57.0 58.0 59.0 60.0 61.0 62.0 63.0 64.0 65.0 66.0 67.0 68.0 69.0 70.0 71.0 72.0 73.0 74.0 75.0 76.0 77.0 78.0 79.0 80.0 81.0 82.0 83.0 84.0 85.0 86.0 87.0 88.0 89.0 90.0 91.0 92.0 93.0 94.0 95.0 96.0 97.0 98.0 99.0 +100.0 101.0 102.0 103.0 104.0 105.0 106.0 107.0 108.0 109.0 110.0 111.0 112.0 113.0 114.0 115.0 116.0 117.0 118.0 119.0 120.0 121.0 122.0 123.0 124.0 125.0 126.0 127.0 128.0 129.0 130.0 131.0 132.0 133.0 134.0 135.0 136.0 137.0 138.0 139.0 140.0 141.0 142.0 143.0 144.0 145.0 146.0 147.0 148.0 149.0 150.0 151.0 152.0 153.0 154.0 155.0 156.0 157.0 158.0 159.0 160.0 161.0 162.0 163.0 164.0 165.0 166.0 167.0 168.0 169.0 170.0 171.0 172.0 173.0 174.0 175.0 176.0 177.0 178.0 179.0 180.0 181.0 182.0 183.0 184.0 185.0 186.0 187.0 188.0 189.0 190.0 191.0 192.0 193.0 194.0 195.0 196.0 197.0 198.0 199.0 +200.0 201.0 202.0 203.0 204.0 205.0 206.0 207.0 208.0 209.0 210.0 211.0 212.0 213.0 214.0 215.0 216.0 217.0 218.0 219.0 220.0 221.0 222.0 223.0 224.0 225.0 226.0 227.0 228.0 229.0 230.0 231.0 232.0 233.0 234.0 235.0 236.0 237.0 238.0 239.0 240.0 241.0 242.0 243.0 244.0 245.0 246.0 247.0 248.0 249.0 250.0 251.0 252.0 253.0 254.0 255.0 256.0 257.0 258.0 259.0 260.0 261.0 262.0 263.0 264.0 265.0 266.0 267.0 268.0 269.0 270.0 271.0 272.0 273.0 274.0 275.0 276.0 277.0 278.0 279.0 280.0 281.0 282.0 283.0 284.0 285.0 286.0 287.0 288.0 289.0 290.0 291.0 292.0 293.0 294.0 295.0 296.0 297.0 298.0 299.0 +300.0 301.0 302.0 303.0 304.0 305.0 306.0 307.0 308.0 309.0 310.0 311.0 312.0 313.0 314.0 315.0 316.0 317.0 318.0 319.0 320.0 321.0 322.0 323.0 324.0 325.0 326.0 327.0 328.0 329.0 330.0 331.0 332.0 333.0 334.0 335.0 336.0 337.0 338.0 339.0 340.0 341.0 342.0 343.0 344.0 345.0 346.0 347.0 348.0 349.0 350.0 351.0 352.0 353.0 354.0 355.0 356.0 357.0 358.0 359.0 360.0 361.0 362.0 363.0 364.0 365.0 366.0 367.0 368.0 369.0 370.0 371.0 372.0 373.0 374.0 375.0 376.0 377.0 378.0 379.0 380.0 381.0 382.0 383.0 384.0 385.0 386.0 387.0 388.0 389.0 390.0 391.0 392.0 393.0 394.0 395.0 396.0 397.0 398.0 399.0 +400.0 401.0 402.0 403.0 404.0 405.0 406.0 407.0 408.0 409.0 410.0 411.0 412.0 413.0 414.0 415.0 416.0 417.0 418.0 419.0 420.0 421.0 422.0 423.0 424.0 425.0 426.0 427.0 428.0 429.0 430.0 431.0 432.0 433.0 434.0 435.0 436.0 437.0 438.0 439.0 440.0 441.0 442.0 443.0 444.0 445.0 446.0 447.0 448.0 449.0 450.0 451.0 452.0 453.0 454.0 455.0 456.0 457.0 458.0 459.0 460.0 461.0 462.0 463.0 464.0 465.0 466.0 467.0 468.0 469.0 470.0 471.0 472.0 473.0 474.0 475.0 476.0 477.0 478.0 479.0 480.0 481.0 482.0 483.0 484.0 485.0 486.0 487.0 488.0 489.0 490.0 491.0 492.0 493.0 494.0 495.0 496.0 497.0 498.0 499.0 +500.0 501.0 502.0 503.0 504.0 505.0 506.0 507.0 508.0 509.0 510.0 511.0 512.0 513.0 514.0 515.0 516.0 517.0 518.0 519.0 520.0 521.0 522.0 523.0 524.0 525.0 526.0 527.0 528.0 529.0 530.0 531.0 532.0 533.0 534.0 535.0 536.0 537.0 538.0 539.0 540.0 541.0 542.0 543.0 544.0 545.0 546.0 547.0 548.0 549.0 550.0 551.0 552.0 553.0 554.0 555.0 556.0 557.0 558.0 559.0 560.0 561.0 562.0 563.0 564.0 565.0 566.0 567.0 568.0 569.0 570.0 571.0 572.0 573.0 574.0 575.0 576.0 577.0 578.0 579.0 580.0 581.0 582.0 583.0 584.0 585.0 586.0 587.0 588.0 589.0 590.0 591.0 592.0 593.0 594.0 595.0 596.0 597.0 598.0 599.0 +600.0 601.0 602.0 603.0 604.0 605.0 606.0 607.0 608.0 609.0 610.0 611.0 612.0 613.0 614.0 615.0 616.0 617.0 618.0 619.0 620.0 621.0 622.0 623.0 624.0 625.0 626.0 627.0 628.0 629.0 630.0 631.0 632.0 633.0 634.0 635.0 636.0 637.0 638.0 639.0 640.0 641.0 642.0 643.0 644.0 645.0 646.0 647.0 648.0 649.0 650.0 651.0 652.0 653.0 654.0 655.0 656.0 657.0 658.0 659.0 660.0 661.0 662.0 663.0 664.0 665.0 666.0 667.0 668.0 669.0 670.0 671.0 672.0 673.0 674.0 675.0 676.0 677.0 678.0 679.0 680.0 681.0 682.0 683.0 684.0 685.0 686.0 687.0 688.0 689.0 690.0 691.0 692.0 693.0 694.0 695.0 696.0 697.0 698.0 699.0 +700.0 701.0 702.0 703.0 704.0 705.0 706.0 707.0 708.0 709.0 710.0 711.0 712.0 713.0 714.0 715.0 716.0 717.0 718.0 719.0 720.0 721.0 722.0 723.0 724.0 725.0 726.0 727.0 728.0 729.0 730.0 731.0 732.0 733.0 734.0 735.0 736.0 737.0 738.0 739.0 740.0 741.0 742.0 743.0 744.0 745.0 746.0 747.0 748.0 749.0 750.0 751.0 752.0 753.0 754.0 755.0 756.0 757.0 758.0 759.0 760.0 761.0 762.0 763.0 764.0 765.0 766.0 767.0 768.0 769.0 770.0 771.0 772.0 773.0 774.0 775.0 776.0 777.0 778.0 779.0 780.0 781.0 782.0 783.0 784.0 785.0 786.0 787.0 788.0 789.0 790.0 791.0 792.0 793.0 794.0 795.0 796.0 797.0 798.0 799.0 +800.0 801.0 802.0 803.0 804.0 805.0 806.0 807.0 808.0 809.0 810.0 811.0 812.0 813.0 814.0 815.0 816.0 817.0 818.0 819.0 820.0 821.0 822.0 823.0 824.0 825.0 826.0 827.0 828.0 829.0 830.0 831.0 832.0 833.0 834.0 835.0 836.0 837.0 838.0 839.0 840.0 841.0 842.0 843.0 844.0 845.0 846.0 847.0 848.0 849.0 850.0 851.0 852.0 853.0 854.0 855.0 856.0 857.0 858.0 859.0 860.0 861.0 862.0 863.0 864.0 865.0 866.0 867.0 868.0 869.0 870.0 871.0 872.0 873.0 874.0 875.0 876.0 877.0 878.0 879.0 880.0 881.0 882.0 883.0 884.0 885.0 886.0 887.0 888.0 889.0 890.0 891.0 892.0 893.0 894.0 895.0 896.0 897.0 898.0 899.0 |
b |
diff -r e0395cca2c57 -r 8623710d083c tsv_to_loompy.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tsv_to_loompy.py Mon Jan 06 13:44:46 2020 -0500 |
[ |
@@ -0,0 +1,109 @@ +#!/usr/bin/env python +"""This module converts a tsv file into a binary loom file""" + +import argparse +import os + +import loompy +import numpy as np + +parser = argparse.ArgumentParser(description="Loompy file converter flags") +parser.add_argument('--VERSION', action='version', version='%(prog)s 0.1.0', + help="Displays tool version") +parser.add_argument('--rowfile', '-r', help="File of row attributes & values") +parser.add_argument('--colfile', '-c', + help="File of column attributes and values") +parser.add_argument('--output', '-o', help="Output file name") +parser.add_argument('--files', '-f', nargs='*', + help="Input tsv files. First file becomes main layer.") +args = parser.parse_args() + +colsfile = args.colfile +rowsfile = args.rowfile +if args.output: + filename = args.output +else: + filename = "converted.loom" +alldata = args.files +alayers = [] +layernames = [] +rowdict = {} +coldict = {} + +# Creates dictionary based on row file +# For each attribute: +# Attribute: [attribute values] +with open(rowsfile, "r") as rows: + count = 0 + for line in rows: + line = line.strip().split("\t") + if count == 0: # First time through + row_attributes = line + for x in row_attributes: + rowdict[x] = [] + count += 1 + else: + for x in range(0, len(line)): + rowdict[row_attributes[x]].append(line[x]) +# Same as above, but for columns +with open(colsfile, "r") as cols: + count = 0 + for line in cols: + line = line.replace('\"', "") + line = line.replace(' ', "") + line = line.strip().split("\t") + if count == 0: # First time through + col_attributes = line + for x in col_attributes: + coldict[x] = [] + count += 1 + else: + for x in range(0, len(line)): + coldict[col_attributes[x]].append(line[x]) +# Finding dimensions for the loom layers +rowshape = len(rowdict[list(rowdict.keys())[0]]) +colshape = len(coldict[list(coldict.keys())[0]]) + +# Creates a list with each element being entire matrix of +# each layer file as floats +for file in range(0, len(alldata)): + layer = alldata[file][:-4] + layer = layer.split("/")[-1] + if layer == "": + raise Exception("Please only use named files") + layernames.append(layer) + cfile = alldata[file] + with open(cfile, "r") as tsv: + cmatrix = [] + for line in tsv: + line = line.strip().split("\t") + line = [float(i) for i in line] + cmatrix += line + alayers.append(cmatrix) + +# Loompy cannot overwright existing files. If somehow it finds +# a second file with the same name, it must be deleted +if os.path.isfile(filename): + os.remove(filename) +# To create the file properly, the first row and column attributes must be +# added separately in the form of individual dictionaries +row_attrs = {row_attributes[0]: np.asarray(rowdict[row_attributes[0]])} +col_attrs = {col_attributes[0]: np.asarray(coldict[col_attributes[0]])} +matrix = np.asarray(alayers[0]) +matrix = matrix.astype(float) +matrix = matrix.reshape(rowshape, colshape) +# Creation of initial loom file +if "loom" not in filename[-5:]: + filename = filename + ".loom" +loompy.create(filename, matrix, row_attrs, col_attrs) +# Adding all row and column attributes, then all layers +with loompy.connect(filename) as loomfile: + for x in row_attributes: + loomfile.ra[x] = rowdict[x] + for y in col_attributes: + loomfile.ca[y] = coldict[y] + for z in range(1, len(alayers)): + matrix = np.asarray(alayers[z]) + matrix = matrix.astype(float) + matrix = matrix.reshape(rowshape, colshape) + loomfile[layernames[z]] = matrix |