-
Notifications
You must be signed in to change notification settings - Fork 0
worklog
- how will we guarantee that the network will output the same amount of tokens as the input sequence?
- do i need to add the stop codon to the sequences?
- ...
I've been working on several things, most notably what learning algorithms that we can use and where we can get data from.
algorithm
I'm pretty convinced that we should be using LSTMs. We should experiment with at least a couple of different architectures. I think that those architectures should all involve bidirectional LSTMs. One architecture is to do a one-to-one lstm. The other would be to do a many-to-many where we delay the output for a little bit for the network to warm up before it outputs. The only issue with this is how will we guarantee that the network will output the same amount of tokens as the input sequence?
I need to gather the information on what we did with language models.
data
I've decided to base this all on e. coli data for now. The NCBI e. coli main page is http://www.ncbi.nlm.nih.gov/genome/167. I'm using a table that is generated from http://www.ncbi.nlm.nih.gov/genome/genomes/167. This provides a list of all the references genomes that are associated with this organism. I need to parse this and then download all the different coding sequences. Once coding sequences are downloaded, we can then convert them to amino acid sequences and partition the nucleotide sequences into codons so that they can be used for training. We should strip out the sequence identifiers for them as well, one sequence per line. There will be 2 files one for the sequences separated as codons and another for the amino acid sequences.
It took me a while to figure out how to use NCBI's entrez interface, but it turns out that it's pretty nice. Using the ideas that were parsed out of http://www.ncbi.nlm.nih.gov/genome/genomes/167, I'll download using entrez. To do so in python using biopython, you can run:
from Bio import Entrez
Entrez.email = "sfujimoto@gmail.com"
handle = Entrez.efetch(db="sequences", id="NC_002695", rettype="fasta_cds_na", retmode="text")
print(handle.read())This snippet of code will get NC_002695's coding sequence as specified by the rettype="fasta_cds_na".
I've added a few scripts to take care of the downloading and parsing, check the commmits.