Pomoc w zadaniu zaliczeniowym - cięcie ciągu znaków i wgrywanie pliku

Odpowiedz Nowy wątek
2018-12-16 21:10
0

Hej! Jesteście chyba moją ostatnią nadzieją. Uprzedzam jednak, że w ogóle w tym nie siedzę i mój specjalistyczny język może być ubogi. Mam zadanie na zaliczenie przedmiotu, które brzmi: Rozszczepienie wczytanej z pliku sekwencji aminokwasowej lub nukleotydowej w podanej przez użytkownika pozycji i zapisanie tak powstałych dwóch sekwencji w formacie FASTA w dwóch plikach. Sekwencje winny również być wydrukowane na ekranie.
I mam kilka problemów...
1) Plik z sekwencją ma być wgrany przez użytkownika programu. Jaką komendę trzeba wydać, i co potem wpisać w "czarne okienko", by na ekranie została wydrukowana treść pliku?
2) Wiem jak ciąć łańcuch mając w nim znaki specjalne itd. A potrzebuję, żeby cięło w konkretnym miejscu podanym jako liczba. Np. Tnij łańcuch po 6 znaku.
3) Jak potem zapisać obie sekwencje w osobnych plikach?
Z góry dziękuję za odpowiedzi.

Pozostało 580 znaków

2018-12-16 21:22
1

Jak ma być wgrany? Użytkownik pisze w konsoli: <script_name> <file_name>? To wtedy zgodnie z tym https://www.tutorialspoint.co[...]on_command_line_arguments.htm, po czy Otwierasz plik, itd.
Co do podziału łańcucha, przyjdzie on jako string a te, w pythonie, są indeksowane i obsługują "slicing":
str1 = "ABCDGTEEE"
str1[:2] -> "AB"
str1[3:] -> "DGTEEE"
str1[1:3] -> "BC"
https://realpython.com/python-strings/#string-slicing
Czytanie i zapisywanie do pliku (jak coś): https://www.pythonforbeginner[...]g-and-writing-files-in-python


Pozostało 580 znaków

2018-12-16 21:22
1
  1. Mogłabyś napisać z jakiego przedmiotu oraz jakich studiów pochodzi to zadanie?
  2. Jak rozumiem zadanie: "Rozszczepienie wczytanej z ..." jest tylko otoczką. Jest to forum programistyczne, nie wydaje mi się żeby osoby które pracują w pythonie w codziennej pracy zajmowały się takimi zadaniami - aka nie jest im znana ta domena / nomenklatura. Opisz proszę zadanie "na chłopski rozum" - najlepiej jakbyś dodała co jest danymi wejściowymi - ale dokładnie (czy są to pliki txt jeśli tak jaki format danych)

Pozostało 580 znaków

2018-12-16 21:30
0

Przedmiot to programowanie w bioinformatyce, studia biofizyka medyczna. Pierwszy raz w życiu mam z tym styczność, mieliśmy tylko dwoje zajęć i żadnych konkretów a na zaliczenie takie cuda :(
Postaram się wytłumaczyć. Sekwencja, czyli ciąg znaków bez spacji i znaków specjalnych. Nukleotydowa to np: AGCATGACAGATACGA a aminokwasowa to np. MHJDPIXVNMZ. I teraz tak, taką sekwencję mam podaną w pliku tekstowym. Musi ona zostać wydrukowana na ekranie. Następnie musi ona zostać przecięta w miejscu podanym przez użytkownika. W efekcie powstają dwie sekwencje a każda ma zostać zapisana jako plik txt.

lubie_programowac napisał(a):
  1. Mogłabyś napisać z jakiego przedmiotu oraz jakich studiów pochodzi to zadanie?
  2. Jak rozumiem zadanie: "Rozszczepienie wczytanej z ..." jest tylko otoczką. Jest to forum programistyczne, nie wydaje mi się żeby osoby które pracują w pythonie w codziennej pracy zajmowały się takimi zadaniami - aka nie jest im znana ta domena / nomenklatura. Opisz proszę zadanie "na chłopski rozum" - najlepiej jakbyś dodała co jest danymi wejściowymi - ale dokładnie (czy są to pliki txt jeśli tak jaki format danych)
edytowany 1x, ostatnio: Paula N, 2018-12-16 21:31

Pozostało 580 znaków

2018-12-16 21:45
1

Dzięki za komentarz, oto chodziło. Mogłabyś napisać czy sekwencja nukleotydowa zawsze składa się z 16 liter a aminokwasowa z 11? Jeśli nie to jaka jest maksymalna długość sekwencji wejściowej?

Część: Następnie musi ona zostać przecięta w miejscu podanym przez użytkownika. W efekcie powstają dwie sekwencje a każda ma zostać zapisana jako plik txt. Dla przykładu: w pliku wejściowym mamy sekwencję AGCATGACAGATACGA, użytkownik podał punkt przecięcia 4, to czy wynikiem tej operacji będą dokładnie sekwencje: AGCA oraz TGACAGATACGA?

Pozostało 580 znaków

2018-12-16 21:48
0

Liczba znaków w jakiejkolwiek sekwencji jest nieokreślona, może mieć nawet kilka tysięcy. Moja w pliku ma akurat 48.
Tak, jeśli użytkownik poda tnij po 4tym znaku to będzie tak to wyglądało.

lubie_programowac napisał(a):

Dzięki za komentarz, oto chodziło. Mogłabyś napisać czy sekwencja nukleotydowa zawsze składa się z 16 liter a aminokwasowa z 11? Jeśli nie to jaka jest maksymalna długość sekwencji wejściowej?

Część: Następnie musi ona zostać przecięta w miejscu podanym przez użytkownika. W efekcie powstają dwie sekwencje a każda ma zostać zapisana jako plik txt. Dla przykładu: w pliku wejściowym mamy sekwencję AGCATGACAGATACGA, użytkownik podał punkt przecięcia 4, to czy wynikiem tej operacji będą dokładnie sekwencje: AGCA oraz TGACAGATACGA?

Pozostało 580 znaków

2018-12-16 22:11
1

Jeśli nie masz zainstalowanego środowiska do programowania to polecam zainstalować PyCharm Community. Tutaj masz opisane jak to zrealizować: https://www.youtube.com/watch?v=NN5Pht2FRWs Co do Twojego zadania tak jak napisał wcześniej lion137 warto użyć wbudowanej funkcjonalności "slicking". Na tej stronie możesz wypróbować tę funkcjonalność online: https://www.learnpython.org/en/Basic_String_Operations

edytowany 1x, ostatnio: lubie_programowac, 2018-12-16 22:12

Pozostało 580 znaków

2018-12-17 09:23
str1 = "ABCDGTEEE"
print("podaj")
i = int(input())
print("podaj")
p = int(input())
print(str1[i:p])
t = str1[i:p]
t2= str1[:i] + str1[p:]
with open('t.txt', 'w') as czesc1:
    czesc1.write(t)
with open('t2.txt', 'w') as czesc2:
    czesc2.write(t2)

Proszę

edytowany 1x, ostatnio: bogdans, 2018-12-17 09:48

Pozostało 580 znaków

2018-12-17 09:42
0

Dziękuję wszystkim! Łącząc wszystkie Wasze siły dałam radę wykonać zadanie :)

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0