Exemple #1
0
    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)
Exemple #2
0
    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")
Exemple #3
0
    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)
Exemple #4
0
    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)
Exemple #5
0
 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"],
             ),
         )