コード例 #1
0
def reverse_complement(dna):
	"""Returns the reverse complement of dna"""
	reverse = dna[::-1]
	return complement.complement(reverse)

#data = open_file.open_file("rosalind_1b.txt")

#print reverse_complement(data)

#print reverse_complement('CCCAAGTACGAGGATGTCTAAACGGCGATGGCGATAGGAGCAGAATGACAATAGCTGACATTTTAACCCTAAGGCAAGCTGGTAGATAACCAGAGGAGCTAAATATCGTATCTCTGGCATAATGACAACAACAATCGTGCTCCTTTACTTATGGCCGGTGTGGACGCGTTTAGTGGAGGGGCAGTTCAGCTACACCCTGACCGCACATTATAGTTAACAGTGACGAATCAAGCAAAGGTATAACTATCTAAGAGTAGCGAGCAGGGGCATCGTCTCCGCAGTTGCTGCCGGAGGGGTAGGAATCTTAATACCTGGGGGATAATACAAGTGACAACGAGTCTTGGCCGGGTAGAACGAGACCGCGCCAATGCTGGGATGCTATCTTCGGACCCCACCATCAAATCTAATGTTGTACCTGTGATCGGCTGATTAGTATACGTCCGAGCTTGAGAATTCACTTTTCGAGAACAGTCGTGAGACCTCCGCGATCCGAAATCTTCGTGGCTTTGGAAACCCTCCGCTGATCAATATGGGTACTCGGATAGGACAGTCTTGATATTGACTGACTGGTATGTACTGCCTCCTCCCAATGTGTGGTAAACCGCCCATGAGTACACTAGAGATCATACTAGCTCTGCGGACTACTACTAATTTTTGCCCAGGGTGGAGGCGCCAGCTGGACGGAGTTGTTCATATGTAGTTTAGTCAGTGCATTCGGAGGGGCCAATCAACCATAAGACTGGCTGACACTGGTGGCGAAGGTTTCCTAGGGACCTTTTAAGCCTGACGGTATGCAGTGCTCTTTCGGGTGAAATTATCGGCTGTCGCTATCTGGGATATTGTCACGATTTGTCCGGTGGTGCTGGAATTCAACCAGGGTGACACGAGTATTCCGCCTCTGCATCTGGAGAATTCGGATTCCCCTTTCTCTGTACGCCTGACGAAGGGCTCTTACAGCGTGAGTAGAAATCACTGATTGGTTGCGTTGCTCATATTATCAAAGTACGGTGGGGCTAAATGTACGGCAACCAGGACCGCTTTGAGTGATCATAGTCACTCGCCGTAACGAGATCTGTGTCTAGTGTCGACTATAGCGGAGTGAGTATTGTGGCAGAAGCGGGGCGCGGTCCCAGTCGGAACCATGAACACCAGTGCGCTACTATGCCAACAGTGCAAACAACGCATAAGACTCCTGGCTCGATTCCGAGATTCTGCCCGAATGCTGGAGGTAACGATTTATCCGCGAAAGCCCTCTCAGGGGGTTGTAATTGCGTAATCACTGGGCGTGCTTCATGGTGCACTATATCGCAAGACAAGTGACGCGCGAACGTAGCTGTCCCTCCAGGTACGCCCTGGGGTGTTATTGAGGGCGCTGATTAGCGCAGGCTAAAAGGCGTAGCATCCAGTGACCATCGGGGGTATCAGTGCTACTTTCAAGGCTAGTCGAGCTTGAGTCTGGTCTTTCCAGACACGGACTCCATTCGAGTTTCCGAAGTAGAACACGCTCGAACTCTGAGGTAATACCAACGAATAATACACCACTCGATAGGGAACATACAACAAGGCGGAAGGTTGCACCGGCCGTAACCGTTTAACGACGCCAATCTAAAGAATGCTTACACTGGAAACTTAGAGAGTACGGTCACCCCTTAATATCGGCTGGGATCTCCGCAGCTACGCGTCGCATCATCCCCGCGCGTGTGAAGAGGATTCTTTCTGAGTTCGATTGGCATCCTCCACAAGCGAAGACATATCTCCCTGGGTATATCTGCCGTCCCTACTATTCCTTCAATGCCGTACCCAATGGTGCTACGTATACTAATTAGCTTGAGGTCAAGCGCTGACCGGAGACACGGTACCGACTCTATAACTAAGTGGCCTTTTCTGACTGCGCCCGCTGGGACACTAAACATGGATTCATACAATGAGATTGTGGTATTCAGTATATCGAGACGCGCCTTAAATTCCCCGTAGAGGGTGGGCATCGATGCATCAATTGAGGGATATGTTGTCGTTCGCAATTTACGAACAGGTAAGGTTATAGATGGAAGATACTAAAAAAGAGCGACTCAGTGTGTGTTCTTTCGCTATGCCGTGCTATGATGTTATTCCCAGCCTTCCATGATGATCAAGATTGGGAATGGCGAACCTTGTCTATGTGTCACCTATCCCAATCGAGTTTAGCCATAGCAACTCTTCGCTACGAGCGCCTTTTCATGTCTAGACACTAAACGGAAGTGCTGGGCCATCGACCTACCAACTGAACGACCAAAGGAGGCTAGTAGTGGGACCCGCTACAGGACGGGTCAATACGCGCGCCCAGTCCGGGCCGAAAACCTCTTTGCCGACAGTCATGTCGAACCTTTCCCTCTGGGCGTAAGGAGTTCAGACTACCTGACGGCGATGCGGCATCATGCATGACATGACTACTATACACACCTCCCCTTTGCGCAACATATGTAAAGTAACATAACAACACGCACTAGTTGTTCTAAGAGACTTATTCCGAGACCATTTGCACTCAAACGCAAAGTAGAGCACTATACAGAAACAGTATATCACTCCGTATTCGCATATTTAAGAAAGTTAATGATTGAGTCGCAGCAAGCCAGAAAAAATGTTCATAGTCTACGGGAGAGGTACCTTATTATGCTTAAAGAGCACATTGCACCGCAGGAGGTCCCGGTCCAGATGGGCAAAAGAGCTGTCCTGGAATGAGCAATTACACTTCGGTTGACCCGACCTCGATTCGCGGAGCAGAATAAGTGATGATCAGAATATTACTGTGCATCTAACACCCAACGAAGATAGCCGGGATATTATAGTGAACTACCTACTATGCTACCCTGTCAGGAACCCGGACTCCGTAGTTGGCGTGTGTGACAGTTATGGCCCGCACGCGGATTAATCATAAGTATTAAATTCACTATAACAATCAAACTTCTATTATATTTCCTAATTTTATTACGATTCGGGGATCCTGCGGCACAACAGCACGAGTCAGTGAGTATAATCCCTGCTTCGCACAATCAGCGATTAGGCGACAACCCAGAACAAATGACGTAGGAGACTACAACAGTAGAAGGTTAAGAATTCGTATACTTACGACAGCGTCAATGTCGGTCACAACCCAGGTGAGTGGGTGGGCTGGTGCGGGCTAGATCTGGTTTTTAAGAGTGTTCCACCGATTAATGGCTAAACCACCTGAAGTTATGAGAGATCTGATACGTCGCCATATCCTGGGCCTCTTCATGGTCCTGAGCGCTTTCATACTAGCCGAGCTCCGCCGGAGTCCTACCGAAACTAGACAGTGGCGGGACTGCGTATATCGGCGGAACTCAGGTACTGTCAACGGATTATGCAGGCTGGTTGGTACGAGGCAATGTATTACCTCTAAACTGACGCTCCTCACCGATAACCGTGAGGCTCGTTCTCGCACTCAGTCCTTCAAAGACAGCTAGAGATTTCGACACGTCAAACTCTGAAGAGATATATAGAGGAGACGTATGGGGTGTAGTCACTGATGTCGGTTCGGGCAAAGTTTTCTACTCGATGCAATAGGTCGCCACCTGACTTACACCTAATGTTCTCTGGGAGTTACATTGTTTTAGTGACCGTTCAGGTTCGTCGTGTTACAATTATTTTAATCAAAATCAACGCCTTTGACTCTGTAAATTGTAGATTAAAGTGCATGCGGACGACCCGAGCCCGGCATACACGCTTGACCGCCCCATGACTCTGATGTCTGATTGGCGGAGGAGTGTGAAACTCTTATTCGTGGGGCATCCAACGTGATCGAATTGAATACGCGGCAGCTACCCGGAAGGAATGGTGAAATACTCCAGCAGCGGCAAACCCCCAAAATCTAAATGTGGGTGCACACTAGGTTTGCGAAAAGCGCTGGCCCTTAGGTATTTAGGTCGGACAGATCAACGTCTGTTGCAATCCCGGCGGCCGATCTCGTACTTCCGACGGGATCACTTCGGCGTGGTTTGTTATCTCTGGATCATTGTGAGCCATCAACCTCCATGAAAGGAACAACTCATGACTTCCAAATATGACGACCAAAGTGACCCCGCCTAGATCCAGAGTCGGGACCGAGCGATGTTGCCGGACGGATTCCTTTAACGTTCCCCAAGTAGTGGATCTTTGCAGACTTCTAGCAACTGGCATGATAGTCGGATATATCTGGCGCTACCACGGGCCATCTTGGTGCGATCCGCAATCGTAACCCTGTCCGCATCTGCTAACGCGTACCAACTCTTCTGCTGCGAGGCAACTTTTGCAATAGTCCCTATTGCGAGTGAGCAACCAGGTGCTACCCCTACTGGACAGGCAGTGAGCTGCGGTTGGAGTTGTCACGCTGCAAAACTCGGACATTTAGAGGCAGAACATCTAGGAGATAGCGAAGTTAATCTTTTGACTACTGCTGGCTGCGCTGCCCCCCATGGCCCGTATTCCGCTGTCTTTTCACTGAATACCAAAACTCTCACAAATTTAGTGCTACCCGGAGTTCCCCCAGATGATGCGGTCAGGAGGGAACCTTGGTGAATTACCGGGGTGGCTCCCACGGTACTCTTTGAGCTCGACACGGAATCATACTGTTCGGGAATGGCCGGCGCGCGCATGGACGGCGGACATACTTTGTCTAACTTCTCTGAACTTGAGATACCACCTAATTAACAGGATTCTTGCTCATGAGGTTCACCATCGTCCTGACCTAGAGACTCGACCCGACCTAAGGCGGTTTAAAGTGGTTTGAGGACAAAGTGGGTGTCCAGGGCGCGCAAAAAATTCGATCGACTCTTAAGCACTGAGCTCAGGCTTCAGAGGTTCAGTGGTGTACCCTCCAGTTAATAAACGACGTGGCTGGTTCTTGTCGTTATCTTCTGAATGTAACGGATGGTCTGATCTCCGCAGGCGTTCATTTCTATGTCCTTAGTAGCGTCGTAAGTAAACTACCTCAAAATGGGGAAGGACCACGCCGCATCCAGACCACCTCGACGTTCTGACATCTATTACAACATCGGATGTACTCATTTGCTGTAAGAATCCCGTTCAGATCTGAAGGCTTGTATACGTACCTGCCTTATGGATTTGCCCGTACAGGCGGGTACATTTGATCCCCCGCGAAGCAGTAGTGCTCAGACCACCCAATCCCTTCATCTTATGTTGCTTACCCTGCAACGATTCCGCTTGTGAGCGTTTCTACTTGGGGTACAAGCCCCATGACGACAGGCGAATGTGTTTATAAGCTACGAGCGTGGCAATGAGCTCGTTCCCATAGGCCCGTGCCATCATAACTTAGGCTATATCCAGTTCGGACCTGCTCATCACGGGGAAGACGACCGATCGGCATCTGATGCGAGGATGGAGAACGAAGTGGGCTGGGTAGACTGGGGCGCGAGATAATATTATCGGGGGCAGTTAGCGTAGAGTCTGATCGGATAAGCGTCGGCGTCATAACGCGGGGTACCCAGAGCGTCGAGAGGGGCCAGTACTCGAAGAGGTTGGACCCCGCTTGATATTCCTACCAGCTCTAGTAGTCCGGGATTATGAGTGCCAGGTTCAGAGCGGTTGTACAGTTGTTATGTCCTTTCGGATATCATAAGCAGGTTTGGTTGGATGCGGCTTGACTAGGAGAGTAAGCATAGGCGATAAAGGTAATTTCGGCTTACTGATATTATATGATTCCTCTACGCTAATAATCCGCGGACAGGGACACTGGTACGTGGCGAGGGCAGTACCCTATCTCGTCGACCCTCGCTTCCGCTGTCGTGCCGTGTAAACAAGAAATCATCGAGCATGTCCGTACCTCAGAGCACGTTACCAATATTCGAAATCTGAACCGGTCCGCAGTCTTAAAATATTACGAAAACGAATTAAACCTCATTAGAATTCCGCAATTTTTCTAAGCTCTCCTGGCTACATCTTCACCTGGGACCTTGAAATCATATACAGTAAAAAGAGGCGTTTATCTAGAACGCGAGTTCTCCAGCGTAACTGGAGGAGTACAATCTAATCCTCGATATTGGCAACGGGACCTGCGCGTTTTGCGTTCAGTAACCTCCGGCCGGACAGCCCCATATCTGTCCCGGCAGCTCCACGTCCAGGTTGTCCGCACCGACATTGTTGACATAAGCTACTAAAGACCTGCCTAAGCTATCCCACCTGTTGGAAACTATTCCGCTAGAGGATATCTGTGTTTTGGTTAATCTGATGGTAGTAGGGCAGCTCACGGTTGGTAAGCGCAATATCCGCAGGATCCCCCAGAAGTATCTATAGTGTCCTTACCATACAGGTCAGAAGTGTCCGGTCAGCCTCACCTCCGTATCACAGGCGGGAGCCCGTCCGGTTGGTATTTCCGAGCTTCTAATTTAGCTACGTTACCAGCGGAGACTCCGCGTGCCCGGTGACAACGGGGTTGCGAGCCGGTCGCAAGAAAAGCTTGTGATCGGTTGCGCCACCAAGCAAACATCACGAACGGCTTACATTCCGAACCCAGGCCTTAGTGCGTAAGTGGACATTCGCATTCAATAGACCTCAGGTCTTGACCTGCCTAATCCGGCGTCGGCCAAAGCTCCGAATCTTAGTTAACTCGGTAGTATTGGCGAGAAAAGAAAGTCCTAATCGTACCGCACAGCTATAACTAAGGGCGACAGCGTTTTGTGAGCAGGCTCTATAACTTGAGTTAGTTGGACCGTAGGCTTAAAGAAACTGACTATTTGCCCGTGCGCAGCACACGTACATAGGGATAACCATCAATAACGTTTGTCGAATCGTCTGGGATAAATTTACCGGGTGCTCACATACTGCTACACGATCGCTCTCCGATACGACTAGCAGTAGATCGCACACACAATATTAGTCTCAATCAATACATTCATCCTACGGATAAATATGTTGAGTTGTTCGAGCGGCCGATTTCGAGTCTTTCGGCGTACTATAGGATTGGGATCTTGCATAGTAGCGGTAATGCTGTCTGCTCCACAGTATTTAGGGTGTCTTGCTTGGACCGAGGGCCTAACCGTATCATCTTGGAATTCCTAGCGAACAGGAGTAGGCAAGAATCAGCGCAGAGTATCAGGCAACTCCCCAGGTAGAGTGGTAACGACTTGATCCAGCCATGATGTATGTCTATGGTAGCTCTCTCAGGCCGAGCGAAACTACGCACTGGGCCTTAAGAACATGGGGCCAGTGTAGAGGGTGGCGGTAGGCCGACGTAGGGCTAGATCTACTACGTATAGAAATTGCCATGGCATTGCCAAAGACGCTTGTACTGGAAAGTGGGGTCGCTAGCGTAGGGCCAAGGCTGGGTGCGTTAATAACGGTGGATAGGCGGGAAATTGGGTCCCTTCTTTCAACCCTAAAATAAAATAAGTCCTCATCATTGATCGTGGCCACAATACATTACCAATTGAAGTGATGTTAAGCCACGAGCAACCCTCTGTTGCGTCCGTCAGTCCTTTAGCCACCATACTTGCAATAGTCTAAATTCGCTTAGCCAACAGGCTCACCATTTCCGAAAACTCAGAAGTTACATATGTCTGTAGATTAGGGAACGAAATTCGATTGAAATTACAAGTCCCTTTGTATGAGTCCCTGACATTAGTGGTTTCCAAATGAGCTAGGCCGATCGACTCTGTCAACTAGGAGATGCGGGCAAGGTATTCACTATCGAGCATGGTCTAAATCTGCAACACGCAAGTTGGGGAAATGCCAGCTTAAGCCACATCGTTAGTGAGAGATAGCTCACCTTCCCTGGACGCGTGGCGCAGCATGACGAGTCGATGATACGTTCCTGATGTATGTACGCCGGTGCGTAAACTCTTCCCTAAAGAGACAGTTCCAACATCGATAGGACTCATCAATATCTACGGCCCGGGTTGAGGCGGTGTCTGAATTAGGTCCTTTGCCATTTGCCGCGGAAGATAACAAACGCCACATCAGAAGCGCCTCCAAAGGGTACAGAACGCAGAGCTAATTCCCTCATGCGCCTCCGCGCCGATTCCCTTTTTATTGTACGCACATTTTGACAGCCGATTCCCTCACTATCGTCGAGCACACACCAGACCAGCGTCCCAGGACCTGTCGTGGGAGGGATTACCGAATGAGGGTTTGCCGCCCTGCACTCTCGCGAGGCTCGGTTCTGTAGACTTTTATATCATACGCTCCCTTTTCGCCTTCGACGGAGGTTATTATTATATCTATGTCTCCTACAGGTTCTCATCTGATGGTATTCTTCTCTATAGATCGTCTTCATGGAAGGTTATTACTGACATGCCCGTAAACTTATGACCATAAAGAGGGGGACGGCCCTTTTAATCAATTGCCACCCGACACTGCGCCTGTGAGCGTCCAGCTGATAGTCTACGGTAATCGCCTTCTTACTTCGTCCACCACTAGACCCCGGGAGTGACCGGTATATGCTTGCGATAGCCGACTGTCACCCCGGCGACCTAAGCGTTATCCTTTGAAATGCGAAACACGTCTTATAGGTCCCGACGACTTAGTGATAGACAGCTACATGTCGATTACACATTTACTCCCACCAGATCGCTGTGCTAGTCGCAGACGAGTATAACACCGGCACCCCGATACTTGGTTTGGAGCTAAGTCATTTGAAATGTTCTCTTAGGCCATATGTATATAGTCTGTGACTTGGAATTAATAAGCAAAGCGCCAGGCGCCGCGCGCGCCAACATACTTGAATATACAGCAGCGCGTGGGCCGAAACGAGACACCAAAACCACTATTTGGAACGCGTGGCACGTATGGCAGCATGACCCCCAACGGCATACGTAGACAAAACTTTACGACCGGTAGCTGGGCGGAGGGTCAGGGGATCGGGGTTACTGCGGCCAGGCCGCGGCACACCTGCAAATCTTCGTTATGTTGTATTTACTCGTGTGTCGTACCTGGAAGGCATTCGCGCCTGAACTTTTGGACCCCGAAACCAATTACGGCCTGTTAGCTTGTGCACAACGAGTCCGGTGTTATTATCTCCACCGGTTTAAAAACGTTATAGATACAGGCGGGAACCCAGCGGCTGTGGATCCACATCTTCCGATAGTAAGTAGATGGTTTATAGCAGTCATGGAGCGCTAAAACAGAGTTATACTTCGCTCCATCAGGATGCACCGCTGCTGTTGAAGCGAGCATCTTGTCTAATTAAAACTGTTAGGCGATTGACCGCGTCAAGTACCCGCGAGAAGGAGCTTCTAAGACGGTATGAACTCTGCTTCGTTAACCCCCGTAACTGACATTCGCGCGTTTGTACTACATCCTATTCGAGATTAGTTGACCCTGCGCCTTTACGCCTTGAACGCGGTACGAGTTTTATTATCCATATACGCGGGCGAGTAGAATTGAGGGGGAAATCACTGTTCTAGACATACACGCCCCTAATAACTAACTTCACCATGTTCTAAGAAATATTCCAGTCTGTGTCACAGGCCCATGGGATGTCCGAGCATCCTCGGAGGTAAACCTGACTAGGTGTAATTTGAGTGACCCTTCAGTCCTCATACATTAGCGAAAAATCCGTACCCCACGATCCGTGGTAGTGGATACCAGGTCTGATCCGCACACTTATTTACGTACTTAATCTTGGTCTTGTCCTCACCGGTATAGGATCTCAGGTATCACTTCATGAGGGACAGACTATCGGGCTCATTCGACTGTGGTTAATATGTCAGAATCTCTCTCGGTATCCA')
コード例 #2
0
def sudoku(name):
    global listk
    a = input1.input1(name)
    i = 1
    j = 1
    listk = []
    for i in a:
        for j in a[i]:
            if a[i][j] == 0:
                listk.append([i, j])
    i = 1
    j = 1
    while i < 10:
        listr = []
        listbox = []
        listc = []
        for k in range(1, 10):
            if a[i][k] != 0:
                listr.append(a[i][k])
            if a[k][j] != 0:
                listc.append(a[k][j])
        listbox = listb.listb(a, i, j)
        listu = union.union3(listr, listc, listbox)
        listv = complement.complement(listu)
        if ([i, j] in listk):
            a[i][j] += 1
            while a[i][j] <= 10:
                error = errchk.errchk(a[i][j], listv)
                if error:
                    a[i][j] += 1
                else:
                    j += 1
                    if j == 10:
                        j = 1
                        i += 1
                    break

            if i < 10 and j < 10:
                if a[i][j] == 11:
                    a[i][j] = 0
                    c = listk.index([i, j])
                    i = listk[c - 1][0]
                    j = listk[c - 1][1]

        else:
            j += 1
            if j == 10:
                j = 1
                i += 1

    output.output(a)
コード例 #3
0
ファイル: ui.py プロジェクト: BurkClik/comp_1_to_10
2 - Decimal to binary
3 - Binary to decimal
4 - D-Radix complement
5 - Radix Complement\n"""

flag = True

print(s)

while flag != False:
    islem = int(input("Numara gir : "))
    if (islem != 0):
        if (islem == 1):
            num_of_complement = str(input("num_of_complement : "))
            num_s_complement = str(input("num_s_complement : "))
            print(comp.complement(num_of_complement, num_s_complement)+"\n")
        elif (islem == 2):
            number = int(input("Number : "))
            print(comp.decimal_to_binary(number)+"\n")
        elif (islem == 3):
            number = str(input("Number : "))
            print(comp.binary_to_decimal(number)+"\n")
        elif (islem == 4):
            num = int(input("Number : "))
            print(comp.d_radix_complement(num)+"\n")
        elif (islem == 5):
            numb = int(input("Number : "))
            print(comp.radix_complement(numb)+"\n")
        elif (islem == 0):
            flag = False
        else:
コード例 #4
0
def test_t():
    assert complement('T') == 'A'
コード例 #5
0
def test_a():
    assert complement('A') == 'T'
コード例 #6
0
def test_given_example():
    assert complement('CAATTTGGGG') == 'GTTAAACCCC'
コード例 #7
0
def test_atgc():
    assert complement('ATGC') == 'TACG'
コード例 #8
0
def test_c():
    assert complement('C') == 'G'
コード例 #9
0
def test_g():
    assert complement('G') == 'C'
コード例 #10
0
def reverse_complement(input_sequence,input_type=''):
    # use the complement function from the complement module
    complement_seq = complement.complement(input_sequence,input_type)
    # easy reverse method: full list slice with a step of -1
    reverse_complement_seq = complement_seq[::-1]
    return reverse_complement_seq
コード例 #11
0

def pat_ix(P, S):
    '''
    >>> pat_ix('ATAT', 'GATATATGCATATACTT')
    (1, 3, 9)
    >>> pat_ix('z', 'GATATATGCATATACTT')
    ()
    >>> pat_ix('AT', 'A')
    ()
    '''

    i = 0
    ix = []
    try:
        while True:
            ix.append(S.index(P, i))
            i = ix[-1] + 1
    except ValueError:
        return tuple(ix)


if __name__ == '__main__':
    # import doctest
    # doctest.testmod()
    # S = open('/home/xio/Desktop/Vibrio_cholerae.txt', 'r').read().strip()
    S = open('../dna/Thermotoga-petrophila.txt', 'r').read().strip()
    P = 'CTTGATCAT'
    print ' '.join([str(el) for el in pat_ix(P, S)])
    print ' '.join([str(el) for el in pat_ix(complement(P), S)])
コード例 #12
0
    def make_square_net(self, default_size, save_to_png=False):
        while True:
            h, w = self.sides(default_size)
            lat_step = self.d_lat / w
            lng_step = self.d_lng / h
            city_array = np.zeros([w, h, 4])
            matrix = [[
                Square(
                    min(self.lat) + (w - y) * lat_step,
                    min(self.lat) + (w - y - 1) * lat_step,
                    min(self.lng) + (x + 1) * lng_step,
                    min(self.lng) + x * lng_step) for x in range(h)
            ] for y in range(w)]
            [[
                matrix[x][y].presence_checker(self.lat, self.lng)
                for x in range(w)
            ] for y in range(h)]

            for i in range(w):
                for j in range(h):
                    if matrix[i][j].presence is True:
                        city_array[i][j][0] = 255
                        city_array[i][j][1] = 255
                        city_array[i][j][2] = 255
                        city_array[i][j][3] = 255

            city_array = complement(city_array)
            lista = []
            addons = []
            for i in [0, h - 1]:
                for j in range(w):
                    if city_array[j][i][0] != 255:
                        lista.append([j, i])

            for j in [0, w - 1]:
                for i in range(h):
                    if city_array[j][i][0] != 255:
                        lista.append([j, i])

            last_layer = list(lista)

            while True:
                for element in last_layer:
                    self.black_propagation(element[0], element[1], city_array,
                                           lista, last_layer, addons, h, w)
                lista = lista + last_layer
                last_layer = list(addons)
                addons = []
                if len(last_layer) == 0:
                    break

            border = []
            for element in lista:
                self.border_propagation(element[0], element[1], lista,
                                        last_layer, addons, border, h, w)
            lista = lista + border
            cepkel = np.full([w, h, 4], 255)
            for element in lista:
                try:
                    cepkel[element[0]][element[1]][0] = 0
                    cepkel[element[0]][element[1]][1] = 0
                    cepkel[element[0]][element[1]][2] = 0
                    cepkel[element[0]][element[1]][3] = 0
                except Exception:
                    print(element[0], w, element[1], h)

            for i in [0, h - 1]:
                for j in range(w):
                    cepkel[j][i][0] = 0
                    cepkel[j][i][1] = 0
                    cepkel[j][i][2] = 0
                    cepkel[j][i][3] = 0

            for j in [0, w - 1]:
                for i in range(h):
                    cepkel[j][i][0] = 0
                    cepkel[j][i][1] = 0
                    cepkel[j][i][2] = 0
                    cepkel[j][i][3] = 0

            for i in range(h):
                for j in range(w):
                    if cepkel[j][i][0] == 255:
                        matrix[j][i].part_of_the_city = True
            if self.get_potc_count(matrix) > h * w / 3:
                break

        if save_to_png is True:
            plt.imsave('{0}_test.png'.format(self.city), cepkel, cmap=cm.gray)
        return matrix
コード例 #13
0
def reverse_complement(input_sequence, input_type=''):
    # use the complement function from the complement module
    complement_seq = complement.complement(input_sequence, input_type)
    # easy reverse method: full list slice with a step of -1
    reverse_complement_seq = complement_seq[::-1]
    return reverse_complement_seq