Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Java help develop a Java program to read in a FASTA format DNA sequence file, an

ID: 3859735 • Letter: J

Question

Java help

develop a Java program to read in a FASTA format DNA sequence file, and parse out each sequence record into the part of ID and sequence. The ID is identified between the ">" and the "|" in the header line, and the sequence is the concatenation of all lines of the sequence part into a single string. Each DNA sequence record can then be stored into an array element of the DNA class. Use a loop in your program to prompt the user to enter a sequence ID, and if the ID exists print out the sequence. If the ID does not exist, print out a warning message. Exit the loop if the user enters “quit”. Please use any file containing sequences sequence file (i.e. a file named seq.fastfa)as the input file.

Explanation / Answer

Hi,

Please see below the classes:

Thanks!

DNA.java

public class DNA {

private String ID;

private String sequence;

//Constructor

public DNA(String id,String sequence){

this.ID = id;

this.sequence =sequence;

}

//Getters and Setters

public String getID() {

return ID;

}

public void setID(String iD) {

ID = iD;

}

public String getSequence() {

return sequence;

}

public void setSequence(String sequence) {

this.sequence = sequence;

}

}

DNASequence.java

import java.io.BufferedReader;

import java.io.FileReader;

import java.io.IOException;

import java.util.Scanner;

public class c {

static DNA[] dnaArray = new DNA[100];

public static void main(String[] args) {

readSequnce();

//Prompting te uer to enter the header

Scanner scan = new Scanner(System.in);

boolean loop=true;

boolean found= false;

while(loop){

System.out.println("Enter the header: or Q to Quit");

String header = scan.nextLine();

if("Q".equalsIgnoreCase(header)){

loop = false;

}

else{

for(DNA dna : dnaArray){

if(null!=dna && header.equalsIgnoreCase(dna.getID())){

System.out.println("ID : "+dna.getID());

System.out.println("Sequence: "+dna.getSequence());

found =true;

break;

}

}

}

if(!found){

System.out.println("Not found!");

}

}

}

public static void readSequnce(){

try{

BufferedReader readIn = new BufferedReader( new FileReader("seq.fastfa") );

String sb ="";

String line ="";

int counter =0;

String id ="";

boolean newFlag = false;

for( line = readIn.readLine().trim(); line != null; line = readIn.readLine() )

{

if( line.length()>0 && line.charAt( 0 ) == '>' )

{

if(counter>0){

DNA dna = new DNA(id, sb);

dnaArray[counter] =dna ;

sb ="";

}

int indexOfLast = line.indexOf("|");

id = line.substring(1,indexOfLast);

counter++;

} else {

sb = sb= sb+line;

}

}

DNA dna = new DNA(id, sb);

dnaArray[counter] =dna ;

}catch(IOException e)

{

System.out.println("Error when reading seq.fastfa");

e.printStackTrace();

}

}

}

seq.fastfa

>by05e12.y1|BF724769
CCGCCGTGCGCCCAGCCAGCCATGGGGAAGATCACCCTCTACGAGGACCG
GGGCTTCCAGGGCCGCCACTACGAATGCAGCAGCGACCACCCCAACCTGC AGCCCTACTTGAGGAATTCGAACTCGGCGCGCGTGGACAGCGGCTGCTGG ATGCTCTATGAGCAGCCCAACTACTCGGGCCTCCAGTACTTCCTGCGCCG CGGCGACTATGCCGACCACCAGCAGTGGATGGGCCTCAGCGACTCGGTCC GCTCCTGCCGCCTC
>by09f05.y1|BF73659
CACCAGCTCAGCACCGCCGTGCGCCCAGCCAGCCATGGGGAAGATCACCC TCTACGAGGACCGGGGCTTCCAGGGCCGCCACTACGAATGCAGCAGCGAC CACCCCAACCTGCGGAATTCCTTGAGCCGCTGCAACTCGGCGCGCGTGGA CAGCGGCTGCTGGATGCTCTATGAGCAGCCCAACTACTCGGGCCTCCAGT ACTTCCTGCGCCGCGGCGACTATGCCGACCACCAGCAGTGGATGGGCCTC AGCGACTCGGTCCGCTCCTGCCGCCTCATCCCCCACTCTGGCTCTCACAG GATCAGACTCTATGAGGAATTCCCCTACAGAGGCCAGATGATAGAGTTCA CTGAGGACTGCTCCTGTCTTCAGGACCGCTTCCGCTTCAATGAAATCCAC TCCCTCAACGTGCTGGAGGGCTCCTGGGTCCTCTACGAGCTGTCCAACTA CCGAGGACGGCAGTACCTG

Sample output:

Enter the header: or Q to Quit
by05e12.y1
ID : by05e12.y1
Sequence: CCGCCGTGCGCCCAGCCAGCCATGGGGAAGATCACCCTCTACGAGGACCG GGGCTTCCAGGGCCGCCACTACGAATGCAGCAGCGACCACCCCAACCTGC AGCCCTACTTGAGGAATTCGAACTCGGCGCGCGTGGACAGCGGCTGCTGG ATGCTCTATGAGCAGCCCAACTACTCGGGCCTCCAGTACTTCCTGCGCCG CGGCGACTATGCCGACCACCAGCAGTGGATGGGCCTCAGCGACTCGGTCC GCTCCTGCCGCCTC
Enter the header: or Q to Quit

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote