def test_rename_channels_alt(self): with TmpDir() as dir_: df = DataFrame( self.data, columns=pd.MultiIndex.from_tuples( zip(self.short_channels, self.long_channels), names=["short", "long"], ), ) filename = os.path.join(dir_, self.name) df.to_fcs(filename) ln = "" for i in range(30): ln = ln + str(i) with pytest.raises(ValueError) as err: rename_channels(filename, {"a_di": ln}, "short") assert ( str(err.value) == "New channel names are too long causing overlap with Data Segment." ) rename_channels(filename, {"a_di": ln}, "short", allow_rewrite=True) df2 = DataFrame.from_fcs(filename) assert_almost_equal(df.values, df2.values)
def test_rename_channels(self): cols = pd.MultiIndex.from_tuples( list(zip(self.short_channels, self.long_channels)), names=["short", "long"], ) df = DataFrame(self.data, columns=cols) s3_file_path = f"s3://{self.bucket_name}/test.fcs" df.to_fcs(s3_file_path) rename_channels(s3_file_path, { "a": "a_1", "d": "d_1" }, "short", allow_rewrite=True) dfr = DataFrame.from_fcs(s3_file_path, channel_type="multi") np.testing.assert_array_equal( ["a_1", "b", "c", "d_1"], dfr.columns.get_level_values("short").values, ) np.testing.assert_array_equal( list("ABCD"), dfr.columns.get_level_values("long").values, ) ln = "" for i in range(30): ln = ln + str(i) rename_channels(s3_file_path, {"C": ln}, "long", allow_rewrite=True) assert ["A", "B", ln, "D"] == read_channels(s3_file_path, "long")
def test_to_fcs(self): with TmpDir() as dir_: filename = os.path.join(dir_, "test.fcs") cols = pd.MultiIndex.from_tuples( list(zip(self.short_channels, self.long_channels)), names=["short", "long"], ) df = DataFrame(self.data, columns=cols) with open(filename, "wb") as fp: df.to_fcs(fp) dfr = DataFrame.from_fcs(filename, channel_type="multi") assert_frame_equal(df, dfr)
def test_to_fcs(self): with TmpDir() as dir_: cols = pd.MultiIndex.from_tuples( list(zip(self.short_channels, self.long_channels)), names=["short", "long"], ) df = DataFrame(self.data, columns=cols) df.to_fcs(f"s3://{self.bucket_name}/test.fcs") filename = os.path.join(dir_, "test.fcs") self.s3.download_file(self.bucket_name, "test.fcs", filename) dfr = DataFrame.from_fcs(filename, channel_type="multi") assert_frame_equal(df, dfr)
def test_write_fcs(self): with TmpDir() as dir_: filename = os.path.join(dir_, self.name) df = DataFrame(self.data, columns=self.short_channels) write_fcs(df, filename, long_names=self.long_channels) df = DataFrame.from_fcs(filename, "multi") np.testing.assert_array_equal(df.values, self.data) np.testing.assert_array_equal( df.columns, pd.MultiIndex.from_tuples( zip(self.short_channels, self.long_channels), names=["short", "long"], ), )