ich möchte mit meinem Skript Text-Dateien öffnen und spezifische Positionen im String verändern.
Hierbei haben ich zwei Files, die ich mit meinem Skript aufrufe.
Die 1. File hat folgenden Inhalt: AAAAAAAAAACCCCCCA
und die 2. File hat folgenden Inhalt: AAAAAAAAATTTTACAC
Hier der Code:
Code: Alles auswählen
import random
import os
class simulate_evolution_SNP():
def create_seqs ():
# given sequence and nucleotide bases: starting point
refseq1 = open("C:/Users/Florian/Desktop/testseq.fa", 'r')
refseq2 = open("C:/Users/Florian/Desktop/testseq2.fa", 'r')
print("Reference seq1: " + refseq1.read())
print("Reference seq2: " + refseq2.read())
nucleotide_bases = ["A","T","C","G"]
while True:
pos = input("Input a specific position (int): ") # define specific position
try:
pos = int(pos)
except ValueError:
print("That is no valid number. Try again !")
continue
if 0 <= pos <=3700:
break
else:
print("Try Again")
choose_base1 = random.choice(nucleotide_bases) # choose random nucleotide base and add it to sequence
choose_base2 = random.choice(nucleotide_bases) # choose random nucleotide base and add it to sequence
refseq1 = refseq1[:pos-1]+choose_base1+refseq1[pos:] # insert nucleotide at specified pos. (seq1)
refseq2 = refseq2[:pos-1]+choose_base2+refseq2[pos:] # insert nucleotide at specified pos.(seq2)
read_seq1 = refseq1.readlines()
read_seq2 = refseq2.readlines()
seq1_len = str(len(refseq1)) # length of seq1
seq2_len = str(len(refseq2)) # length of seq2
print("Seq1 length: " + seq1_len)
print("Seq2 length: " + seq2_len)
print("Chosen base seq1: " + choose_base1)
print("Chosen base seq2: " + choose_base2)
print("Pos. in sequence " + str(pos))
print("\n")
create_seqs()
Traceback (most recent call last):
File "C:\Users\Florian\Desktop\simulate_evolution_SNP.py", line 4, in <module>
class simulate_evolution_SNP():
File "C:\Users\Florian\Desktop\simulate_evolution_SNP.py", line 62, in simulate_evolution_SNP
create_seqs()
File "C:\Users\Florian\Desktop\simulate_evolution_SNP.py", line 35, in create_seqs
refseq1 = refseq1[:pos-1]+choose_base1+refseq1[pos:] # insert nucleotide at specified pos. (seq1)
TypeError: 'file' object is not subscriptable
Ich habe versucht die letzte Fehlermeldung zu googlen, jedoch nichts hilfreiches gefunden. Habt ihr irgendwelche Ideen ?
Vielen Dank im voraus !
VG Flo89