- Write a program that does the following, for the DNA sequence of the first scaffold of
*Helobdella robusta*. The .gbff file contains all of the scaffolds, which are separated by '//'. To create a file with just the first scaffold, you can runhead -n 260065 GCA_000326865.1_Helobdella_robusta_v1.0_genomic.gbff > scaffold_1.gbff

(At the bottom of this page there are links to other sequences, and the results for them, that you can use to test your program.)- Read the Genbank file (with suffix .gbff), and from the CDS FEATURES entries infers the locations of the starts of the coding sequences on both strands. CDS coordinates containing a '<' or '>' should be ignored (these symbols indicate that the precise start or end of the coding sequence is uncertain).
- Use the information in 1) to compute count and frequency matrices (of the type presented in lecture 8 for
*C. elegans*splice sites) for the translation start sites. These should extend from position -10 (i.e. 10 bases upstream of the first base of the start codon) to position +10 (i.e. 10 bases downstream of that base) -- 21 bases in all. To generate this you will need to read in the genome sequence (which appears later in the Genbank file), and to complement it in order to handle genes on the opposite strand correctly. Ns in the sequence (unknown bases) should be ignored when computing these matrices. CDS entries marked with 'join' indicate non-contiguous sections of coding sequence, and should be processed as such when determining the base composition at the first 10 positions. Thus, for an entry marked as join(1000..1008,1200..1500), position +10 would correspond to coordinate 1201. - Compute a site weight matrix using the frequency table for the translation start sites, together with the genome nucleotide frequencies (based on the forward and reverse strands). Entries in the weight matrix should be the log, to the base 2, of the ratio of the appropriate frequencies. Use -99.0 as the weight for any cells that have frequency 0 in the translation start sites.
- Using the weight matrix from (3), generate two score histograms (using a bin size of 1 for the scores):
- a histogram of the scores of all "true" translation start sites (i.e. the ones used to construct the site frequency table)
- a histogram of the scores of all positions in the actual genome sequence (and its complement). When calculating scores, sequence positions that are N should be given a score of 0.

- Generate a list of all positions in the genome and its complement that have scores >= 10.0 but which do NOT correspond to annotated translation start sites.

- You must turn in your results
*and*your computer program.**Please put everything into ONE plain text file - do not send an archive of files or a tar file, or a word processing document file.**Compress it (using either Unix compress, or gzip -- if you don't have access to either of these programs let us know), and send it as an attachment to both Phil (phg (at) u.washington.edu) and Alex (aeng (at) uw.edu).Test sequence 1 (This file contains only one chromosome/contig so you don't need to worry about extracting part of the file.)

Test sequence 2 (This file contains only one chromosome/contig so you don't need to worry about extracting part of the file.)

### Template Details:

- Background Frequency: Like nucleotide histogram, but giving fraction of times (to 4 decimal places) each nucleotide occurs in the sequence and its complement. In computing these, ignore ambiguity-coded nucleotides.
- Count Matrix: Put the matrix of nucleotide counts at each position in known translation start sites, in the order: A, C, G, T. Ignore occurrences of ambiguity-coded nucleotides at each position.
- Frequency Matrix: Like count matrix, but indicating the fraction of times (to 4 decimal places) each nucleotide occurs at each position, rather than the total counts.
- Weight Matrix: Like frequency matrix, but giving weight. Give values to four decimal places.
- Maximum Score: The maximum possible score - i.e., the score for the "ideal" sequence.
- Score Histogram CDS: Two columns, where the first is score rounded down, and the second is the times that score occurs for true start sites. Also include an additional row for all scores less than -50.
- Score Histogram All: As above, but for all positions in the genome (and its complement).
- Score Histogram All: A list of positions in the genome where scores g.t.e. 10 occurred but which do NOT correspond to an annotated translation start site. Provide the position (in top strand, origin 1 co-ordinates), strand = 0 (for top) or 1 (for bottom), and score to four decimal places.