2016-04-10 16 views
0

Giriş 1'deki sayıları kullanarak belirli bir dizeyi giriş 2'den nasıl çıkaracağınızı bulmakta sorun yaşıyorum. Dna/query dizisindeki tüm temelleri ayıklamaya çalışıyorum. Konu kimliği FO203509.1'de hizalanmış DEĞİLDİR. Yani, 1057-2381'den itibaren, esasen, blast dosyası girdisi 1'e baktığınız zaman her şey. Q.start, sekansın sorgu dizisi dosyası input2'de başladığı yerdir ve q.end, bittiği yerdir.Dize (hizalanmamış sıra) dilimleme

Giriş 1: | AJ000012

emb sorgu dizisi dosyası: Blast rapor dosyası

enter image description here

Giriş 2 (kopyalamak ve kusura yapıştırmak-biçimlendirmeyi tüm yanlış).1 | Mycobacterium tuberculosis recA geni (suş Canetti) CGAAAGGTCAGATCCGGGCCGGTGAGCACGCCGGATCCGGCCAGGCTAGCGGTGTTCAGCAGATCGTCGG TGATCCGGACCAGCCGCGCACGCAAGTCGGGCCGCACCGCCGCCAGGGCGTTCGACGCGCCGACGAGCGC GGACGCGATGTTGCCACACGCGGCGTGTCACACTTGAATCGAACAGGTGTTCGGCTACTGTGGTGATCAT TCGGAGCAGCCGACTTGTCAGTGGCTGTCTCTAGTGTCACGGCCAACCGACCGATACCGGTCAATCGAAC ACCGACCACAGGAGAGGCACCATGACGCAGACCCCCGATCGGGAAAAGGCGCTCGAGCTGGCAGTGGCCC AGATCGAGAAGAGTTACGGCAAAGGTTCGGTGATGCGCCTCGGCGACGAGGCGCGTCAGCCGATTTCGGT CATTCCGACCGGATCCATCGCACTCGACGTGGCCCTGGGCATTGGCGGCCTGCCGCGTGGCCGGGTGATA GAGATATACGGCCCGGAATCTTCGGGTAAGACCACCGTGGCGCTGCACGCGGTGGCCAACGCTCAGGCCG CCGGTGGTGTTGCGGCGTTCATCGACGCCGAGCACGCGCTGGATCCGGACTATGCCAAGAAGCTCGGTGT CGACACCGATTCGCTGCTGGTCAGCCAGCCGGACACCGGGGAACAGGCACTCGAGATCGCCGACATGCTG ATCCGCTCGGGTGCGCTTGACATCGTGGTGATCGACTCGGTGGCGGCGCTGGTGCCGCGCGCGGAGCTCG AAGGCGAGATGGGCGACAGCCACGTCGGGCTGCAGGCCCGGCTGATGAGCCAGGCGCTGCGGAAAATGAC CGGCGCGCTGAATAATTCGGGCACCACGGCGATCTTCATCAACCAGCTCCGCGACAAGATCGGAGTGATG TTCGGGTCGCCCGAGACGACAACGGGCGGAAAGGCGTTGAAGTTCTACGCGTCGGTGCGCATGGACGTGC GGCGGGTCGAGACGCTCAAGGACGGTACCAACGCGGTCGGCAACCGCACCCGGGTCAAGGTCGTCAAGAA CAAGTGCCTCGCAGAGGGCACTCGGATCTTCGATCCGGTCACCGGTACAACGCATCGCATCGAGGATGTT GTCGATGGGCGCAAGCCTATTCATGTCGTGGCTGCCGCCAAGGACGGAACGCTGCATGCGCGGCCCGTGG TGTCCTGGTTCGACCAGGGAACGCAGGATGTGATCGGGTTGCGGATCGCCGGTGGCGCCATCGTGTGGGC GACACCCGATCACAAGGTGCTGACAGAGTACGGCTGGCGTGCCGCCGGGGAACTCCGCAA GGGAGACCGG GTGGCGCAACCGCGACGCTTCGACGGATTCGGTGACAGTGCGCCGATTCCGGCGGATCATGCCCGGCTGC TTGGCTACCTGATCGGAGATGGCAGGGATGGTTGGGTGGGGGGCAAGACTCCGATCAACTTCATCAATGT TCAGCGGGCGCTCATTGACGACGTGACGCGAATCGCTGCGACGCTCGGTTGTGCGGCCCATCCGCAGGGG CGTATCTCACTCGCGATCGCTCATCGACCCGGTGAGCGCAACGGGGTACTGGACCTTTGTCGGCGGGCCG GTGTGCACGGCAAGCTCGCGTGGGAGAAGACGATTCCGAATTGGTTCTTCGAGCCGGACATCGCGGCCGA CATTGTCGGCAATCTGCTCTTCGGCCTGTTCGAAAGCGACGGGTGGGTGAGCCGGGAACAGACCGGGGCA CTTCGGGTCGGTTACACGACGACCTCTGAACAACTCGCGCATCAGATTCATTGGCTGCTGCTGCGGTTCG GTGTCGGGAGCACCGTTCGAGATTACGATCCGACCCAGAAGCGGCCGAGCATCGTCAACGGTCGACGGAT CCAGAGCAAACGTCAAGTGTTCGAGGTCCGGATCTCGGGTATGGATAACGTCACGGCATTCGCGGAGTCA GTTCCCATGTGGGGGCCGCGCGGTGCCGCG CTTATCCAGGCGATTCCAGAAGCCACGCAGGGGCGGCGTC GTGGATCGCAAGCGACATATCTGGCTGCAGAGATGACCGATGCCGTGCTGAATTATCTGGACGAGCGCGG CGTGACCGCGCAGGAGGCCGCGGCCATGATCGGTGTAGCTTCCGGGGACCCCCGCGGTGGAATGAAGCAG GTCTTAGGTGCCAGCCGCCTTCGTCGGGATCGCGTGCAGGCGCTCGCGGATGCCCTGGATGACAAATTCC TGCACGACATGCTGGCGGAAGAACTCCGGTATTCGGTGATCCGAGAAGTGCTGCCAACGCGGCGGGCACG AACGTTCGACCTCGAGGTCGAGGAACTGCACACCCTCGTCGCCGAAGGGGTTGTCGTGCACAACTGTTCG CCCCCCTTCAAGCAGGCCGAGTTCGACATCCTCTACGGCAAGGGAATCAGCAGGGAGGGCTCGCTGATCG ACATGGGTGTGGATCAGGGCCTCATCCGCAAGTCGGGTGCCTGGTTCACCTACGAGGGCGAGCAGCTCGG CCAGGGCAAGGAGAATGCCCGCAACTTCTTGGTGGAGAACGCCGACGTGGCTGACGAGATCGAGAAGAAG ATCAAGGAAAAGCTTGGCATTGGTGCCGTGGTGACCGATGACCCCTCAAATGACGGTGTCCTGCCCGCCC CCGTCGACTTCTGAGCGCGAAGAGCAGGCGCGGGCACTGTGCCTGCGCCTGCTCACCGCGCGATCCCGCA CCCGCGC

Kodum

:

input_1=open('blastreport', 'r') 
input_2=open('queryseq', 'r') 

def slice_sequence(input1,input2): 
    for line in input1: 
     if not line.startswith('#'): 
      list = line.split() 
      q_start=int(list[6]) 
      q_end=int(list[7]) 
      if list[1]=='FO203509.1': 
       for line in input2: 
        next(input2) 
        string=''.join(row.strip() for row in input2) 
        answer=string[q_end:]+string[:q_start] 
    return answer 

ans=slice_sequence(input_1, input_2) 
print(ans) 

Herhangi bir fikir büyük takdir, teşekkürler!

cevap

0

Girdi2 üzerinde yineleme yaptığınız ikinci döngüde, tüm satırları bir satırda birleştirmeye ve beklenen bir çizgiyi bir satırdan mı almaya çalışıyorsunuz? Bu durumda, bir döngüye ihtiyacınız yoktur.Basitçe,

string = ''.join(row.strip() for row in input2[1:]) 
answer = string[q_end:]+string[:q_start] 
return answer 
İlgili konular