Ich muss eine Liste einer Gensequenz in Java erstellen und die Startpositionen der Teile, die mich interessieren. Ich verwende eine .txt-Datei als Eingabe und suche dann nach "GT" in der Sequenz. Sobald ich sie gefunden habe, möchte ich sie in einem Array mit dem entsprechenden Index speichern. Ich habe es nicht hinbekommen. Bitte helfen Sie mir.
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.nio.MappedByteBuffer;
import java.nio.channels.FileChannel;
import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
class Signal{
public String signal;
public int pos;
public Signal(String s, int p) {
s = signal;
p = pos;
}
public static String inputSequence(String filename) throws IOException{
FileInputStream stream = new FileInputStream(new File(filename));
try {
FileChannel fc = stream.getChannel();
MappedByteBuffer bb = fc.map(FileChannel.MapMode.READ_ONLY, 0, fc.size());
return Charset.defaultCharset().decode(bb).toString();
}
finally{
stream.close();
}
}
public static void main(String[] args) {
String c1 = "GT";
String seq = null;
List<Signal> s2 = new ArrayList<Signal>();
String s1;
int i;
try {
seq = inputSequence(path);
} catch (IOException ex) {
Logger.getLogger(Signal.class.getName()).log(Level.SEVERE, null, ex);
}
for (i = 0; i < seq.length() - 2; i++ ) {
s1 = seq.substring(i,i+2);
if (s1.equals(c1)){
Signal ss = new Signal(s1, i);
s2.add(ss);
}
}
System.out.print(s2);
}
}