Пример #1
0
    def toLogOddsMatrix(self, symbol_freqs=None):
        """Returns the LogOddsMatrix of a profile as a new Profile/

        symbol_freqs: per character array of background frequencies
        e.g. [.25,.25,.25,.25] for equal frequencies for each of the 
        four bases.

        See toOddsMatrix for more information.
        """
        odds = self.toOddsMatrix(symbol_freqs)
        log_odds = safe_log(odds.Data)
        return Profile(log_odds, self.Alphabet, self.CharOrder)
Пример #2
0
 def test_safe_log(self):
     """safe_log: should handle pos/neg/zero/empty arrays as expected
     """
     #normal valid array
     a = array([[4,0,8],[2,16,4]])
     self.assertEqual(safe_log(a),array([[2,0,3],[1,4,2]]))
     #input integers, output floats
     self.assertFloatEqual(safe_log(array([1,2,3])),array([0,1,1.5849625]))
     #just zeros
     a = array([[0,0],[0,0]])
     self.assertEqual(safe_log(a),array([[0,0],[0,0]]))
     #negative number
     self.assertFloatEqual(safe_log(array([0,3,-4]))[0:2],array([0,1.5849625007]))
     self.assertNotEqual(safe_log(array([0,3,-4]))[2],\
         safe_log(array([0,3,-4]))[2])
     #empty array
     self.assertEqual(safe_log(array([])),array([]))
     #double empty array
     self.assertEqual(safe_log(array([[]])),array([[]]))