Пример #1
0
    def test_find_codiffusion_data(self):
        """multicolor.find_codiffusion: Test returning a pandas Panel"""
        codiff = multicolor.find_codiffusion(self.track, self.track)

        exp = pd.concat([self.track]*2, keys=["channel1", "channel2"], axis=1)
        exp["codiff", "particle"] = 0
        pd.testing.assert_frame_equal(codiff, exp)
Пример #2
0
    def test_find_codiffusion_rel_thresh(self):
        """multicolor.find_codiffusion: Test the `rel_threshold` parameter"""
        track2_1 = self.track.iloc[[0, 2, 3]].copy()
        track2_2 = self.track.iloc[4:].copy()
        track2_1["particle"] = 1
        track2_2["particle"] = 2

        numbers = multicolor.find_codiffusion(
            self.track, pd.concat((track2_1, track2_2)), abs_threshold=2,
            rel_threshold=0.8, return_data="numbers")

        np.testing.assert_allclose(numbers, [[1, 2, 4, 9]])
Пример #3
0
    def test_find_codiffusion_abs_thresh(self):
        """multicolor.find_codiffusion: Test the `abs_threshold` parameter"""
        track2_1 = self.track.iloc[:5].copy()
        track2_2 = self.track.iloc[-3:].copy()
        track2_1["particle"] = 1
        track2_2["particle"] = 2

        numbers = multicolor.find_codiffusion(
            self.track, pd.concat((track2_1, track2_2)), abs_threshold=4,
            return_data="numbers")

        np.testing.assert_allclose(numbers, [[1, 1, 0, 4]])
Пример #4
0
    def test_find_codiffusion_data_merge(self):
        """multicolor.find_codiffusion: Test merging into DataFrame"""
        t2_particle = 3
        track2 = self.track.copy()
        track2["particle"] = t2_particle
        track2.drop(4, inplace=True)
        codiff = multicolor.find_codiffusion(self.track, track2)

        track2_exp = self.track.copy()
        track2_exp["particle"] = t2_particle
        track2_exp.loc[4, ["x", "y"]] = np.NaN

        exp = pd.concat([self.track, track2_exp],
                        keys=["channel1", "channel2"], axis=1)
        exp["codiff", "particle"] = 0
        pd.testing.assert_frame_equal(codiff, exp)
Пример #5
0
    def test_find_codiffusion_long_channel2(self):
        """multicolor.find_codiffusion: Match two short tracks to one long"""
        track2_p1 = 1
        track2_p2 = 2
        track2_1 = self.track.iloc[:3].copy()
        track2_2 = self.track.iloc[-3:].copy()
        drop_idx = [3, 4, 5, 6]
        track2_1["particle"] = track2_p1
        track2_2["particle"] = track2_p2
        track2 = pd.concat((track2_1, track2_2)).reset_index(drop=True)

        data, numbers = multicolor.find_codiffusion(
            track2, self.track, return_data="both")

        np.testing.assert_allclose(numbers, [[1, 1, 0, 2], [2, 1, 7, 9]])

        track1 = self.track.drop(drop_idx).reset_index(drop=True)

        exp = pd.concat([track2, track1], keys=["channel1", "channel2"],
                        axis=1)
        exp["codiff", "particle"] = [0]*3 + [1]*3
        pd.testing.assert_frame_equal(data, exp)
Пример #6
0
 def test_find_codiffusion_numbers(self):
     """multicolor.find_codiffusion: Test returning the particle numbers"""
     codiff = multicolor.find_codiffusion(self.track, self.track,
                                          return_data="numbers")
     np.testing.assert_equal(codiff, [[1, 1, 0, len(self.track)-1]])