mirror of
https://github.com/chanzuckerberg/cellxgene.git
synced 2026-09-27 08:48:12 +08:00
/data/var (#295)
* Upgrade version of scanpy * /data/var This works for everything except the case where there is only one gene. Anndata flattens X when there is only one var thus causing the transpose to fail. * Fix edge case when an axis (obs/var) only contains 1 element
This commit is contained in:
@@ -206,9 +206,12 @@ class UtilTest(unittest.TestCase):
|
||||
self.assertEqual(len(result), 20)
|
||||
|
||||
def test_data_frame(self):
|
||||
data_frame = self.data.data_frame(self.data.data)
|
||||
self.assertEqual(len(data_frame["var"]), 1838)
|
||||
self.assertEqual(len(data_frame["obs"]), 2638)
|
||||
data_frame_obs = self.data.data_frame(self.data.data, "obs")
|
||||
self.assertEqual(len(data_frame_obs["var"]), 1838)
|
||||
self.assertEqual(len(data_frame_obs["obs"]), 2638)
|
||||
data_frame_var = self.data.data_frame(self.data.data, "var")
|
||||
self.assertEqual(len(data_frame_var["var"]), 1838)
|
||||
self.assertEqual(len(data_frame_var["obs"]), 2638)
|
||||
|
||||
def test_filtered_data_frame(self):
|
||||
filter_ = {
|
||||
@@ -221,9 +224,36 @@ class UtilTest(unittest.TestCase):
|
||||
}
|
||||
}
|
||||
data = self.data.filter_dataframe(filter_["filter"])
|
||||
data_frame = self.data.data_frame(data)
|
||||
self.assertEqual(len(data_frame["var"]), 1838)
|
||||
self.assertEqual(len(data_frame["obs"]), 497)
|
||||
data_frame_obs = self.data.data_frame(data, "obs")
|
||||
self.assertEqual(len(data_frame_obs["var"]), 1838)
|
||||
self.assertEqual(len(data_frame_obs["obs"]), 497)
|
||||
self.assertEqual(type(data_frame_obs["obs"][0]), list)
|
||||
self.assertEqual(type(data_frame_obs["var"][0]), int)
|
||||
data_frame_var = self.data.data_frame(data, "var")
|
||||
self.assertEqual(len(data_frame_var["var"]), 1838)
|
||||
self.assertEqual(len(data_frame_var["obs"]), 497)
|
||||
self.assertEqual(type(data_frame_var["var"][0]), list)
|
||||
self.assertEqual(type(data_frame_var["obs"][0]), int)
|
||||
|
||||
def test_data_single_gene(self):
|
||||
for axis in ["obs", "var"]:
|
||||
filter_ = {
|
||||
"filter": {
|
||||
"var": {
|
||||
"annotation_value": [
|
||||
{"name": "name", "values": ["RER1"]},
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
data = self.data.filter_dataframe(filter_["filter"], include_uns=False)
|
||||
data_frame_var = self.data.data_frame(data, axis)
|
||||
if axis == "obs":
|
||||
self.assertEqual(type(data_frame_var["var"][0]), int)
|
||||
self.assertEqual(type(data_frame_var["obs"][0]), list)
|
||||
elif axis == "var":
|
||||
self.assertEqual(type(data_frame_var["obs"][0]), int)
|
||||
self.assertEqual(type(data_frame_var["var"][0]), list)
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
|
||||
Reference in New Issue
Block a user