2015-07-17 2 views
-2

Я хочу разрезать геном ДНК на любой размер k-mer, поэтому я создал функцию Sliding_DNA (dna_list, size_to_split), но я не работаю.Как получить фрагменты из последовательности ДНК

Может кто-нибудь мне помочь!

При печати из переменных pedazos, она дает мне следующее:

'CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC', 'CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC', 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA', 'TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT', 'TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT'] 

Код:

def Sliding_DNA(dna_list,size_to_split): 

# range por el que va a slide 

#vecesRecorrer = int(len(dna_list)/500) 

lista_temp = [] 


#dna_to_split = dna_list[0] 

#print(dna_to_split) 

posiInicial = 0 

posiFinal = 0 

test = 'AGCTTTTCATTCTGACTGCAACGGGCAATATGTCTCTGTGTGGATTAAAAAAAGAGTGTCTGATAGCAGCTTCTGAACTGGTTACCTGCCGTGAGTAAATTAAAATTTTATTGACTTAGGTCACTAAATACTTTAACCAATATAGGCATAGCGCACAGACAGATAAAAATTACAGAGTACACAACATCCATGAAACGCATTAGCACCACCATTACCACCACCATCACCATTACCACAGGTAACGGTGCGGGCTGACGCGTACAGGAAACACAGAAAAAAGCCCGCACCTGACAGTGCGGGCTTTTTTTTCGACCAAAGGTAACGAGGTAACAACCATGCGAGTGTTGAAGTTCGGCGGTACATCAGTGGCAAATGCAGAACGTTTTCTGCGGGTTGCCGATATTCTGGAAAGCAATGCCAGGCAGGGGCAGGTGGCCACCGTCCTCTCTGCCCCCGCCAAAATCACCAACCACCTGGTGGCGATGATTGAAAAAACCATT' 

for nucleotide in test: 

    pedazo = "" 

    posiFinal = posiInicial + size_to_split 

    for posiInicial in xrange(posiFinal): 

     pedazo += nucleotide 

     if len(pedazo)==size_to_split: 

      lista_temp.append(pedazo) 

    posiInicial += size_to_split 


return lista_temp 


pedazos = Sliding_DNA(dna_list,100) 

ответ

1

Проблема в том, что это,

pedazo += posiInicial 

Вы назначены пустым string до pedazo переменной, поэтому это строка. posiInicial переменная содержит целое число. Таким образом, python запутывает при конкатенации или выполнении + по строкам и целым числам.

Таким образом изменить значение pedazo для 0

pedazo = 0 

cont += 1 

posiFinal = posiInicial + 500 

for posiInicial in xrange(posiFinal): 

    pedazo += posiInicial 
+0

Спасибо Авинаш, но когда я сделал изменения есть та же ошибка, но в следующей строке: Файл «/Users/CamilaMV/Read_Genome.py» , строка 102, в Sliding_DNA posiFinal = posiInicial + 500 TypeError: не сцеплять 'ул' и 'INT' объекты – user3275981

+0

попробовать 'posiFinal = INT (posiInicial) + 500' –

+0

Благодаря Авинаш, я смог исправить эту ошибку, но У меня все еще проблема с моим кодом. Он не делает того, что он должен делать. – user3275981

Смежные вопросы