loomR icon indicating copy to clipboard operation
loomR copied to clipboard

There can only be 5 groups in the loom file: ...

Open tanpuekai opened this issue 5 years ago • 5 comments

Hi developer,

Connecting to loom file output by RNA velocity ('https://github.com/velocyto-team/velocyto.py') produced this error:

lfile <- connect(filename = "mydata.loom")
Error in validateLoom(object = self) : 
  There can only be 5 groups in the loom file: 'row_attrs', 'col_attrs', 'layers', 'row_graphs', 'col_graphs'

what might be the problem?

Best Chan

tanpuekai avatar Nov 17 '19 03:11 tanpuekai

You need to add the mode='r+' argument, as in

lfile <- connect(filename = "mydata.loom", mode="r+")

aguang avatar Dec 05 '19 22:12 aguang

Have the same issue, the above suggestion didn't solve it for me

johnmous avatar Dec 06 '19 12:12 johnmous

Hello loomR team; i have the same issue : I want to run Velocyto in R and to do that i have created a loom file with the from fq to loom command with loompy3 Unfortunately, when i use the command : lfile <- connect(filename = "file.loom", mode = "r+") it returns the following error : Error in validateLoom(object = self) : There can only be 5 groups in the loom file: 'row_attrs', 'col_attrs', 'layers', 'row_graphs', 'col_graphs'

when i use this other command : ldat <- read.loom.matrices("file.loom") it returns the following error : Error in [[.H5File(f, "row_attrs/Gene") : An object with name row_attrs/Gene does not exist in this group

So can you please tell me how is it possible to run velocyto.r after creating a loom file with loompy3 ?

Thank you for your help.

Best

Charles

ChaDuss avatar Jan 03 '20 09:01 ChaDuss

This is probably an "out-of-date" issue. Loom 3.0 was released as an updated file specification in Sept 2019. One of the changes moved global attributes from the HDF5 root attributes to a root HDF5 group called 'attrs'. This means that loom files in agreement with the current spec violate the 5 root groups rule. I believe loomR was last updated in 2018, so it certainly has missed this. Details are at the loom website in these two sections: Global attributes and Backwards compatibility

Solution: You can turn off the validation with connect(filename, mode = "r+", skip.validate = TRUE). If you still want to make sure you're dealing with a valid loom file, I suggest manually checking. The file specification is very simple and would only take a couple of minutes to verify by hand using a non-loom-specific HDF5 library such as hdf5r or h5py

nathancfox avatar Jan 03 '20 21:01 nathancfox

I receive the same error when I try to combine the loom files together. No option got skip.validate= TURE. I can read the loom files using this approach, but not combine them.

yfstkchy avatar Feb 09 '22 00:02 yfstkchy