Developing an Application for Computing Nucleotide
Usage Bias
DNA (deoxyribonucleic acid) is a molecule that carries the genetic information used in
the growth, development, functioning and reproduction of all known living organisms and
many viruses. DNA has four building blocks called nucleotides: Adenin (A), Thymine
(T), Guanin (G) and Cytosine (C). All the information in the DNA is stored as a code
made up of these four chemical bases.
Sub-strings of a DNA sequence having length k are called k-mers. For example, the
k-mers of length 4 (k = 4) of the sequence "GATTACA" are shown in Figure 1. In this
example, w refers to step size with which the sliding window is moved. With w = 1,
the window moves 1 letter to the right at each step, so that the rst k-mer starts at
position 1 and the second starts at position 2 and so on. The composition count in this
case is [GATT=1, ATTA=1,TTAC=1,TACA=1]. When w = 2, the rst k-mer starts at
position 1, the second k-mer starts at position 3, the third position starts at 5 but since
there are fewer than k = 4 nuclotides left, the count stops. The composition count for
this case is [GATT=1, TTAC=1]
Nucleotide usage bias refers to dierences in the frequency of occurrence of dierent
k-mers of nucleotides (For example, when k = 3 this bias is called codon bias and has
many biological implications.). In this project, your goal is to create an application that
computes nucleotide usage bias of k-mers of variable size and step size for a set of DNA
sequences.
2 Data Format
DNA sequences are often stored in a text le having a specic format called FASTA
le. FASTA format is a text-based format for representing either nucleotide or amino
acid sequences. The format allows for sequence names and comments to precede each
sequence.
Your program should be able to read all sequences from a FASTA le and compute
the k-mer usage bias from all sequences in the le.
3 Requirements
In this phase, you are required to implement the following classes:
// This class represents a set of sequences.
public class SequenceSet {
// Constructor.
public SequenceSet();
// Load sequences from FASTA file.
public static SequenceSet load(String fileName);
// Return the global usage over all sequences in the set. The word length is k
and window step size is w.
public Usage getUsage(int k, int w);
// Return all sequences in the set in the same order they appear in the file.
public LinkedList<Sequence> getSequences();
}
// This class represents a single sequence.
public class Sequence {
// Constructor.
public Sequence(String header, String seq);
// Return the header of the sequence.
public String getHeader();
public String getSeq();
// Return the usage for word length k and window step size w.
public Usage getUsage(int k, int w);
}
// This class represents usage data at the sequence or sequence set level.
public class Usage {
// Constructor.
public Usage();
// Add a kmer with the corresponding number of occurrences.
public add(String kmer, int count);
// Return the number of occurrences of kmer.
public int getCount(String kmer);
// Return all kmers with their count.
public LinkedList<Pair<String, Integer>> getCounts();
}
// This class represents a pair. This class must be used as it is without
modifications.
public class Pair<U, V> {
public U first;
public V second;
public Pair(U first, V second) {
[login to view URL] = first;
[login to view URL] = second;
}
}
Around 6+ years of design and development experience for JAVA SE application and large scale of enterprise application using JAVA EE (Servlets/JSP/Spring MVC), Android OS modification and application development. Possess a BS in Computer Science and Engineering.
$30 USD in 3 days
4.9 (2 reviews)
1.4
1.4
10 freelancers are bidding on average $46 USD for this job
Hello
I'm interesting your project very well
I'm a Good Java, Math, Algorithm expert.
I m quite well experienced in these jobs.
Let's go ahead with me
I want to service for you continously.
Thanks
Dear Prospect Hiring Manager.
Thank you for giving me a chance to bid on your project. i am a serious bidder here and i have already worked on a similar project before and can deliver as u have mentioned
I have checked your requirements. We have right skills to work on this assignment. We are a team of professionals including experienced analysts, designers, project managers, developers and QA people having great expertise in web applications development mainly on core PHP, PHP with open sources (Joomla, Wordpress, Codeigniter, Cake PHP), .NET, Asp.NET, Vb.NET, HTML 5 etc. and mobile applications on ios and Android platform.
Our award = superb result = happy client. In a good partnership, good results happen. Good cooking makes good eating!BWe consider our client as our partner.
I am ready to discuss with you
with best Regards
DDear Prospect Hiring Manager.
Thank you for giving me a chance to bid on your project. i am a serious bidder here and i have already worked on a similar project before and can deliver as u have mentioned
I have checked your requirements.i have right skills to work on this assignment
my award = superb result = happy client. In a good partnership, good results happen. Good cooking makes good eating!BWe consider our client as our partner.
can u provide your email or sky-pe etc for further discussion about the project.
I am ready to discuss with you
with best Regards