Example #1
0
    def test_cube_d5_indices(self):
        '''Test the the hypercube in R5 is generated correctly.
        The order is as follows
            3  .    .    .    .    .
            2  .    .    .    .    .
            1  x    x    x    x    x
               d1   d2   d3   d4   d5

            3  .    .    .    .    .
            2  .    .    .    .    x
            1  x    x    x    x    .
               d1   d2   d3   d4   d5

            3  .    .    .    .    x
            2  .    .    .    .    .
            1  x    x    x    x    .
               d1   d2   d3   d4   d5
        
            3  .    .    .    .    .
            2  .    .    .    x    .
            1  x    x    x    .    x
               d1   d2   d3   d4   d5

            3  .    .    .    .    .
            2  .    .    .    x    x
            1  x    x    x    .    .
               d1   d2   d3   d4   d5
        '''
        # only going to test specific indices
        inds = [1,2,3]
        obs = cube_d5_indices(inds,inds,inds,inds,inds)
        self.assertEqual(obs[0], [1,1,1,1,1])
        self.assertEqual(obs[14], [1,1,2,2,3])
        self.assertEqual(obs[242], [3,3,3,3,3])
        self.assertEqual(obs[159], [2,3,3,3,1])
Example #2
0
 def setUp(self):
     '''sets up variables needed by many tests'''
     self.freq = [1, 2, 3]
     self.amp = [100, 50, 25]
     self.phase = [0, .25*pi, .5*pi]
     self.noise = [0, .25, .5]
     self.adj = [[subsample_otu_evenly, .5], [subsample_otu_zero, .5, .3], 
         [subsample_otu_zero, .5, .75]]
     self.q = cube_d5_indices(self.freq, self.amp, self.phase, self.noise, 
         self.adj)
     self.exp_indices = array([
         [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80],
         [81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161],
         [162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242], 
         [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188], 
         [27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215], 
         [54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242], 
         [0, 1, 2, 3, 4, 5, 6, 7, 8, 27, 28, 29, 30, 31, 32, 33, 34, 35, 54, 55, 56, 57, 58, 59, 60, 61, 62, 81, 82, 83, 84, 85, 86, 87, 88, 89, 108, 109, 110, 111, 112, 113, 114, 115, 116, 135, 136, 137, 138, 139, 140, 141, 142, 143, 162, 163, 164, 165, 166, 167, 168, 169, 170, 189, 190, 191, 192, 193, 194, 195, 196, 197, 216, 217, 218, 219, 220, 221, 222, 223, 224], 
         [9, 10, 11, 12, 13, 14, 15, 16, 17, 36, 37, 38, 39, 40, 41, 42, 43, 44, 63, 64, 65, 66, 67, 68, 69, 70, 71, 90, 91, 92, 93, 94, 95, 96, 97, 98, 117, 118, 119, 120, 121, 122, 123, 124, 125, 144, 145, 146, 147, 148, 149, 150, 151, 152, 171, 172, 173, 174, 175, 176, 177, 178, 179, 198, 199, 200, 201, 202, 203, 204, 205, 206, 225, 226, 227, 228, 229, 230, 231, 232, 233], 
         [18, 19, 20, 21, 22, 23, 24, 25, 26, 45, 46, 47, 48, 49, 50, 51, 52, 53, 72, 73, 74, 75, 76, 77, 78, 79, 80, 99, 100, 101, 102, 103, 104, 105, 106, 107, 126, 127, 128, 129, 130, 131, 132, 133, 134, 153, 154, 155, 156, 157, 158, 159, 160, 161, 180, 181, 182, 183, 184, 185, 186, 187, 188, 207, 208, 209, 210, 211, 212, 213, 214, 215, 234, 235, 236, 237, 238, 239, 240, 241, 242], 
         [0, 1, 2, 9, 10, 11, 18, 19, 20, 27, 28, 29, 36, 37, 38, 45, 46, 47, 54, 55, 56, 63, 64, 65, 72, 73, 74, 81, 82, 83, 90, 91, 92, 99, 100, 101, 108, 109, 110, 117, 118, 119, 126, 127, 128, 135, 136, 137, 144, 145, 146, 153, 154, 155, 162, 163, 164, 171, 172, 173, 180, 181, 182, 189, 190, 191, 198, 199, 200, 207, 208, 209, 216, 217, 218, 225, 226, 227, 234, 235, 236], 
         [3, 4, 5, 12, 13, 14, 21, 22, 23, 30, 31, 32, 39, 40, 41, 48, 49, 50, 57, 58, 59, 66, 67, 68, 75, 76, 77, 84, 85, 86, 93, 94, 95, 102, 103, 104, 111, 112, 113, 120, 121, 122, 129, 130, 131, 138, 139, 140, 147, 148, 149, 156, 157, 158, 165, 166, 167, 174, 175, 176, 183, 184, 185, 192, 193, 194, 201, 202, 203, 210, 211, 212, 219, 220, 221, 228, 229, 230, 237, 238, 239], 
         [6, 7, 8, 15, 16, 17, 24, 25, 26, 33, 34, 35, 42, 43, 44, 51, 52, 53, 60, 61, 62, 69, 70, 71, 78, 79, 80, 87, 88, 89, 96, 97, 98, 105, 106, 107, 114, 115, 116, 123, 124, 125, 132, 133, 134, 141, 142, 143, 150, 151, 152, 159, 160, 161, 168, 169, 170, 177, 178, 179, 186, 187, 188, 195, 196, 197, 204, 205, 206, 213, 214, 215, 222, 223, 224, 231, 232, 233, 240, 241, 242], 
         [0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48, 51, 54, 57, 60, 63, 66, 69, 72, 75, 78, 81, 84, 87, 90, 93, 96, 99, 102, 105, 108, 111, 114, 117, 120, 123, 126, 129, 132, 135, 138, 141, 144, 147, 150, 153, 156, 159, 162, 165, 168, 171, 174, 177, 180, 183, 186, 189, 192, 195, 198, 201, 204, 207, 210, 213, 216, 219, 222, 225, 228, 231, 234, 237, 240], 
         [1, 4, 7, 10, 13, 16, 19, 22, 25, 28, 31, 34, 37, 40, 43, 46, 49, 52, 55, 58, 61, 64, 67, 70, 73, 76, 79, 82, 85, 88, 91, 94, 97, 100, 103, 106, 109, 112, 115, 118, 121, 124, 127, 130, 133, 136, 139, 142, 145, 148, 151, 154, 157, 160, 163, 166, 169, 172, 175, 178, 181, 184, 187, 190, 193, 196, 199, 202, 205, 208, 211, 214, 217, 220, 223, 226, 229, 232, 235, 238, 241], 
         [2, 5, 8, 11, 14, 17, 20, 23, 26, 29, 32, 35, 38, 41, 44, 47, 50, 53, 56, 59, 62, 65, 68, 71, 74, 77, 80, 83, 86, 89, 92, 95, 98, 101, 104, 107, 110, 113, 116, 119, 122, 125, 128, 131, 134, 137, 140, 143, 146, 149, 152, 155, 158, 161, 164, 167, 170, 173, 176, 179, 182, 185, 188, 191, 194, 197, 200, 203, 206, 209, 212, 215, 218, 221, 224, 227, 230, 233, 236, 239, 242]])
Example #3
0
    def test_cube_d5_indices(self):
        '''Test the the hypercube in R5 is generated correctly.
        The order is as follows
            3  .    .    .    .    .
            2  .    .    .    .    .
            1  x    x    x    x    x
               d1   d2   d3   d4   d5

            3  .    .    .    .    .
            2  .    .    .    .    x
            1  x    x    x    x    .
               d1   d2   d3   d4   d5

            3  .    .    .    .    x
            2  .    .    .    .    .
            1  x    x    x    x    .
               d1   d2   d3   d4   d5
        
            3  .    .    .    .    .
            2  .    .    .    x    .
            1  x    x    x    .    x
               d1   d2   d3   d4   d5

            3  .    .    .    .    .
            2  .    .    .    x    x
            1  x    x    x    .    .
               d1   d2   d3   d4   d5
        '''
        # only going to test specific indices
        inds = [1, 2, 3]
        obs = cube_d5_indices(inds, inds, inds, inds, inds)
        self.assertEqual(obs[0], [1, 1, 1, 1, 1])
        self.assertEqual(obs[14], [1, 1, 2, 2, 3])
        self.assertEqual(obs[242], [3, 3, 3, 3, 3])
        self.assertEqual(obs[159], [2, 3, 3, 3, 1])
# group1 otus #
###############
'''
These otus will be variations of a sin signal with changing frequency, 
phase, and subsampling routine.

These otus will not have values that dip below 0 due to noise effects. 
'''
seed(652323)
freq = [0.25, 0.5, 1, 1.25, 1.5, 2, 3, 25, 50, 100, 200]
amp = [100]
amp_logistic = [10]
phase = [0, .5*pi]
noise = [0.5]
adj = [[subsample_otu_evenly, .26], [subsample_otu_random, .26], [subsample_otu_zero, .26, .26]]
q = cube_d5_indices(freq, amp, phase, noise, adj)
ts_g1_otus_sin = vstack([generate_otu_from_pt_in_R5(q[i], sin, 150) 
    for i in range(65)])
ts_g1_otus_square = vstack([generate_otu_from_pt_in_R5(q[i], square, 150) 
    for i in range(65)])
otus1_1 = vstack([generate_otu_from_pt_in_R5(q[i], square, 150) 
    for i in range(65)])
# second half of signal
otus2_1 = vstack([generate_otu_from_pt_in_R5(q[i], cos, 150) 
    for i in range(65)])
q_logistic = cube_d5_indices(freq, amp_logistic, phase, noise, adj)
ts_g1_otus_logistic = vstack([generate_otu_from_pt_in_R5(q_logistic[i], make_pop_growth_func(10,2, 1), 10) 
    for i in range(65)])
# make one signal of 26 samples
ts_g1_otus_square_cos = hstack([otus1_1, otus2_1])
ts_g1_otus_square_cos = ts_g1_otus_square_cos.take(arange(0,52,2),1)
Example #5
0
 def setUp(self):
     '''sets up variables needed by many tests'''
     self.freq = [1, 2, 3]
     self.amp = [100, 50, 25]
     self.phase = [0, .25 * pi, .5 * pi]
     self.noise = [0, .25, .5]
     self.adj = [[subsample_otu_evenly, .5], [subsample_otu_zero, .5, .3],
                 [subsample_otu_zero, .5, .75]]
     self.q = cube_d5_indices(self.freq, self.amp, self.phase, self.noise,
                              self.adj)
     self.exp_indices = array([[
         0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
         19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
         36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
         53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
         70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80
     ],
                               [
                                   81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
                                   91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
                                   101, 102, 103, 104, 105, 106, 107, 108,
                                   109, 110, 111, 112, 113, 114, 115, 116,
                                   117, 118, 119, 120, 121, 122, 123, 124,
                                   125, 126, 127, 128, 129, 130, 131, 132,
                                   133, 134, 135, 136, 137, 138, 139, 140,
                                   141, 142, 143, 144, 145, 146, 147, 148,
                                   149, 150, 151, 152, 153, 154, 155, 156,
                                   157, 158, 159, 160, 161
                               ],
                               [
                                   162, 163, 164, 165, 166, 167, 168, 169,
                                   170, 171, 172, 173, 174, 175, 176, 177,
                                   178, 179, 180, 181, 182, 183, 184, 185,
                                   186, 187, 188, 189, 190, 191, 192, 193,
                                   194, 195, 196, 197, 198, 199, 200, 201,
                                   202, 203, 204, 205, 206, 207, 208, 209,
                                   210, 211, 212, 213, 214, 215, 216, 217,
                                   218, 219, 220, 221, 222, 223, 224, 225,
                                   226, 227, 228, 229, 230, 231, 232, 233,
                                   234, 235, 236, 237, 238, 239, 240, 241,
                                   242
                               ],
                               [
                                   0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
                                   13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
                                   23, 24, 25, 26, 81, 82, 83, 84, 85, 86,
                                   87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
                                   97, 98, 99, 100, 101, 102, 103, 104, 105,
                                   106, 107, 162, 163, 164, 165, 166, 167,
                                   168, 169, 170, 171, 172, 173, 174, 175,
                                   176, 177, 178, 179, 180, 181, 182, 183,
                                   184, 185, 186, 187, 188
                               ],
                               [
                                   27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
                                   37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
                                   47, 48, 49, 50, 51, 52, 53, 108, 109,
                                   110, 111, 112, 113, 114, 115, 116, 117,
                                   118, 119, 120, 121, 122, 123, 124, 125,
                                   126, 127, 128, 129, 130, 131, 132, 133,
                                   134, 189, 190, 191, 192, 193, 194, 195,
                                   196, 197, 198, 199, 200, 201, 202, 203,
                                   204, 205, 206, 207, 208, 209, 210, 211,
                                   212, 213, 214, 215
                               ],
                               [
                                   54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
                                   64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
                                   74, 75, 76, 77, 78, 79, 80, 135, 136,
                                   137, 138, 139, 140, 141, 142, 143, 144,
                                   145, 146, 147, 148, 149, 150, 151, 152,
                                   153, 154, 155, 156, 157, 158, 159, 160,
                                   161, 216, 217, 218, 219, 220, 221, 222,
                                   223, 224, 225, 226, 227, 228, 229, 230,
                                   231, 232, 233, 234, 235, 236, 237, 238,
                                   239, 240, 241, 242
                               ],
                               [
                                   0, 1, 2, 3, 4, 5, 6, 7, 8, 27, 28, 29,
                                   30, 31, 32, 33, 34, 35, 54, 55, 56, 57,
                                   58, 59, 60, 61, 62, 81, 82, 83, 84, 85,
                                   86, 87, 88, 89, 108, 109, 110, 111, 112,
                                   113, 114, 115, 116, 135, 136, 137, 138,
                                   139, 140, 141, 142, 143, 162, 163, 164,
                                   165, 166, 167, 168, 169, 170, 189, 190,
                                   191, 192, 193, 194, 195, 196, 197, 216,
                                   217, 218, 219, 220, 221, 222, 223, 224
                               ],
                               [
                                   9, 10, 11, 12, 13, 14, 15, 16, 17, 36,
                                   37, 38, 39, 40, 41, 42, 43, 44, 63, 64,
                                   65, 66, 67, 68, 69, 70, 71, 90, 91, 92,
                                   93, 94, 95, 96, 97, 98, 117, 118, 119,
                                   120, 121, 122, 123, 124, 125, 144, 145,
                                   146, 147, 148, 149, 150, 151, 152, 171,
                                   172, 173, 174, 175, 176, 177, 178, 179,
                                   198, 199, 200, 201, 202, 203, 204, 205,
                                   206, 225, 226, 227, 228, 229, 230, 231,
                                   232, 233
                               ],
                               [
                                   18, 19, 20, 21, 22, 23, 24, 25, 26, 45,
                                   46, 47, 48, 49, 50, 51, 52, 53, 72, 73,
                                   74, 75, 76, 77, 78, 79, 80, 99, 100, 101,
                                   102, 103, 104, 105, 106, 107, 126, 127,
                                   128, 129, 130, 131, 132, 133, 134, 153,
                                   154, 155, 156, 157, 158, 159, 160, 161,
                                   180, 181, 182, 183, 184, 185, 186, 187,
                                   188, 207, 208, 209, 210, 211, 212, 213,
                                   214, 215, 234, 235, 236, 237, 238, 239,
                                   240, 241, 242
                               ],
                               [
                                   0, 1, 2, 9, 10, 11, 18, 19, 20, 27, 28,
                                   29, 36, 37, 38, 45, 46, 47, 54, 55, 56,
                                   63, 64, 65, 72, 73, 74, 81, 82, 83, 90,
                                   91, 92, 99, 100, 101, 108, 109, 110, 117,
                                   118, 119, 126, 127, 128, 135, 136, 137,
                                   144, 145, 146, 153, 154, 155, 162, 163,
                                   164, 171, 172, 173, 180, 181, 182, 189,
                                   190, 191, 198, 199, 200, 207, 208, 209,
                                   216, 217, 218, 225, 226, 227, 234, 235,
                                   236
                               ],
                               [
                                   3, 4, 5, 12, 13, 14, 21, 22, 23, 30, 31,
                                   32, 39, 40, 41, 48, 49, 50, 57, 58, 59,
                                   66, 67, 68, 75, 76, 77, 84, 85, 86, 93,
                                   94, 95, 102, 103, 104, 111, 112, 113,
                                   120, 121, 122, 129, 130, 131, 138, 139,
                                   140, 147, 148, 149, 156, 157, 158, 165,
                                   166, 167, 174, 175, 176, 183, 184, 185,
                                   192, 193, 194, 201, 202, 203, 210, 211,
                                   212, 219, 220, 221, 228, 229, 230, 237,
                                   238, 239
                               ],
                               [
                                   6, 7, 8, 15, 16, 17, 24, 25, 26, 33, 34,
                                   35, 42, 43, 44, 51, 52, 53, 60, 61, 62,
                                   69, 70, 71, 78, 79, 80, 87, 88, 89, 96,
                                   97, 98, 105, 106, 107, 114, 115, 116,
                                   123, 124, 125, 132, 133, 134, 141, 142,
                                   143, 150, 151, 152, 159, 160, 161, 168,
                                   169, 170, 177, 178, 179, 186, 187, 188,
                                   195, 196, 197, 204, 205, 206, 213, 214,
                                   215, 222, 223, 224, 231, 232, 233, 240,
                                   241, 242
                               ],
                               [
                                   0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30,
                                   33, 36, 39, 42, 45, 48, 51, 54, 57, 60,
                                   63, 66, 69, 72, 75, 78, 81, 84, 87, 90,
                                   93, 96, 99, 102, 105, 108, 111, 114, 117,
                                   120, 123, 126, 129, 132, 135, 138, 141,
                                   144, 147, 150, 153, 156, 159, 162, 165,
                                   168, 171, 174, 177, 180, 183, 186, 189,
                                   192, 195, 198, 201, 204, 207, 210, 213,
                                   216, 219, 222, 225, 228, 231, 234, 237,
                                   240
                               ],
                               [
                                   1, 4, 7, 10, 13, 16, 19, 22, 25, 28, 31,
                                   34, 37, 40, 43, 46, 49, 52, 55, 58, 61,
                                   64, 67, 70, 73, 76, 79, 82, 85, 88, 91,
                                   94, 97, 100, 103, 106, 109, 112, 115,
                                   118, 121, 124, 127, 130, 133, 136, 139,
                                   142, 145, 148, 151, 154, 157, 160, 163,
                                   166, 169, 172, 175, 178, 181, 184, 187,
                                   190, 193, 196, 199, 202, 205, 208, 211,
                                   214, 217, 220, 223, 226, 229, 232, 235,
                                   238, 241
                               ],
                               [
                                   2, 5, 8, 11, 14, 17, 20, 23, 26, 29, 32,
                                   35, 38, 41, 44, 47, 50, 53, 56, 59, 62,
                                   65, 68, 71, 74, 77, 80, 83, 86, 89, 92,
                                   95, 98, 101, 104, 107, 110, 113, 116,
                                   119, 122, 125, 128, 131, 134, 137, 140,
                                   143, 146, 149, 152, 155, 158, 161, 164,
                                   167, 170, 173, 176, 179, 182, 185, 188,
                                   191, 194, 197, 200, 203, 206, 209, 212,
                                   215, 218, 221, 224, 227, 230, 233, 236,
                                   239, 242
                               ]])