diff --git a/doc/main.pdf b/doc/main.pdf index 597756b..7223109 100644 Binary files a/doc/main.pdf and b/doc/main.pdf differ diff --git a/doc/modules/pet28a.tex b/doc/modules/pet28a.tex index 6f64b37..73ff8b7 100644 --- a/doc/modules/pet28a.tex +++ b/doc/modules/pet28a.tex @@ -36,6 +36,8 @@ bind------------ -----------init \end{verbatim} + Transkrypcja rozpoczyna się przy oznaczonym gwiazdką guaninie \cite{rong1998}. + \end{longenum} \vspace{0.5cm} diff --git a/doc/references.bib b/doc/references.bib index 31dd279..0f5af3c 100644 --- a/doc/references.bib +++ b/doc/references.bib @@ -227,3 +227,17 @@ pages = {6313--6317}, year = {1982} } + +@article{rong1998, + author = {Rong, M. and He, B. and McAllister, W.T. and Durbin, R.K.}, + title = {Promoter specificity determinants of T7 RNA polymerase}, + journal = {Proceedings of the National Academy of Sciences of the United States of America}, + year = {1998}, + volume = {95}, + number = {2}, + pages = {515--9}, + doi = {10.1073/pnas.95.2.515}, + pmid = {9435223}, + bibcode = {1998PNAS...95..515R} +} + diff --git a/py/protocol.py b/py/protocol.py index 2593e03..a62d336 100644 --- a/py/protocol.py +++ b/py/protocol.py @@ -125,7 +125,7 @@ if refseq_id: else: print("Nie znaleziono odpowiedniego RefSeq ID.") - +#%% # Wyświetlanie etykiet (annotacji) dla CDS for feature in record.features: if feature.type == "CDS": @@ -234,7 +234,75 @@ for feature in record.features: print() +#%% +# Znajdź i wyświetl sekwencję promotora T7 +sq = [] +for feature in record.features: + if feature.type == "promoter" and "T7" in feature.qualifiers.get('note', [''])[0]: + print("Promotor T7 znaleziony:") + print(f"Type: {feature.type}") + print(f"Location: {feature.location}") + # Pobierz sekwencję promotora + promoter_seq = record.seq[feature.location.start:feature.location.end] + + # Sprawdź orientację i odwróć/uzupełnij jeśli potrzebne + if feature.location.strand == 1: + strand_orientation = "(+)" + sequence_with_ends = f"5'-{promoter_seq}-3'" + elif feature.location.strand == -1: + strand_orientation = "(-)" + promoter_seq = promoter_seq.reverse_complement() + sequence_with_ends = f"3'-{promoter_seq}-5'" + else: + strand_orientation = "(unknown strand)" + sequence_with_ends = str(promoter_seq) + + #print(f"Strand: {strand_orientation}") + print(f"Sequence: {sequence_with_ends}") + print() +# Znajdź orientację CDS w pliku GenBank +cds_orientation = None +for feature in record.features: + if feature.type == "CDS": + cds_orientation = feature.location.strand + break # Zakładamy, że interesuje nas pierwszy znaleziony CDS + +# Znajdź i wyświetl sekwencję promotora T7 z oznaczeniem na podstawie orientacji CDS +for feature in record.features: + if feature.type == "promoter" and "T7" in feature.qualifiers.get('note', [''])[0]: + print("--") + print("Promotor T7 znaleziony:") + print(f"Type: {feature.type}") + + # Pobierz lokalizację + start = feature.location.start + end = feature.location.end + + # Pobierz sekwencję promotora + promoter_seq = record.seq[start:end] + + # Oblicz sekwencję komplementarną + complementary_seq = promoter_seq.complement() + + # Przygotuj format wyjścia na podstawie orientacji CDS + if cds_orientation == 1: + # CDS na nici dodatniej + positive_strand_output = f" [{start}:{end}](+) 5'-{promoter_seq}-3'" + negative_strand_output = f" [{start}:{end}](-) 3'-{complementary_seq}-5'" + elif cds_orientation == -1: + # CDS na nici ujemnej + positive_strand_output = f" [{start}:{end}](+) 5'-{promoter_seq}-3'" + negative_strand_output = f"* [{start}:{end}](-) 3'-{complementary_seq}-5'" + else: + # Orientacja CDS nieokreślona + positive_strand_output = f" [{start}:{end}](unknown) 5'-{promoter_seq}-3'" + negative_strand_output = f" [{start}:{end}](unknown) 3'-{complementary_seq}-5'" + + # Wyświetl wyniki + print(f"(+): {positive_strand_output}") + print(f"(-): {negative_strand_output}") + print() #%% # Znajdź i wyświetl sekwencję terminatora T7 @@ -254,8 +322,6 @@ for feature in record.features: print(f"(+) Sequence: {terminator_seq}") print() -#%% - #%% t=record[25:73].seq