2. Practical 02

Είσοδος και Έξοδος (input, output), Πίνακες (arrays) και βρόχοι επανάληψης (loops), Δομές “Αν” (if structures)

Σε αυτήν την δεύτερη άσκηση θα χειριστούμε πίνακες. Θα δούμε πως εκμεταλλευόμαστε τις συναρτήσεις πινάκων για να διαβάσουμε δεδομένα από αρχεία και πως εφαρμόζουμε τους βρόχους επανάληψης για εξαντλητική αναζήτηση.

Για την συγκεκριμένη εργασία:

1. Κατεβάστε τα αρχεία human.fa και sites.tab από το τέλος αυτής της σελίδας.

2. Ξεκινήστε το πρόγραμμα με τις εντολές open που θα ανοίγουν τα δύο αυτά αρχεία για να διαβάσουν από αυτά.

3. Βοήθεια #1: Διαβάστε το πρώτο αρχείο (human.fa) με μια επαναληπτική διαδικασία ώστε να κρατηθεί όλο το αρχείο σε μια μεταβλητή.

4. Βοήθεια #2: Διαβάστε το δεύτερο αρχείο (sites.tab) ανάλογα με το παραπάνω και στη συνέχεια χρησιμοποιείστε μια εντολή που να κάνει το string χαρακτήρων, πίνακα με κάθε στοιχεία ένα ολιγονουκλεοτίδιο.

5. Τέλος για κάθε ένα από τα ολιγονουκλεοτίδια κάντε την επαναληπτική διαδικασία αναζήτησής του στην μεγαλύτερη αλληλουχία. Επιστρέψτε κάποιο μήνυμα το αν το μοτίβο υπάρχει ή όχι στην αλληλουχία.

6. Επιπλέον πρόβλημα θα ήταν αν μπορούσαμε να μετρήσουμε πόσες φορές υπάρχει το μοτίβο στην αλληλουχία. Πώς θα το κάνατε; Σκεφτείτε.

# Για σχόλια και ερωτήσεις για το πρόβλημα μπορείτε να αναφέρεστε στη σελίδα του εργαστηρίου στο facebook (https://www.facebook.com/cg2uoc) όπου θα μπορείτε να ανταλλάσσετε απόψεις και μεταξύ σας σε πραγματικό χρόνο.

Νέα Άσκηση (2015-2016)

1. Πάρτε ένα αρχείο fasta σαν το παρακάτω (human.fa)

2. Διαβάστε ΜΟΝΟ την αλληλουχία σε όποια μεταβλητή θέλετε (πίνακα ή βαθμωτή)

3. Μεταφράστε σε RNA τα τμήματα της αλληλουχίας από 100-200 και 250-350 και ενώστε τα σε ΜΙΑ μεταβλητή.

4. Επιστρέψτε την σαν αποτέλεσμα

5. Δημιουργήστε μια εκδοχή του προγράμματος που τα διαστήματα θα δίνονται από τον χρήστη και θα είναι όσα ο ίδιος επιθυμεί.