0
私のコードは、lonfのDNAストリングを含むファイル(つまり、CTAAATCGATGGCGATGATAAATG ...)から最も頻度の高いコドンを見つけることを目的としています。最初の位置pos
から始まり、3文字ごとに1コドンを構成する。私が持っている問題は、コードを実行するたびに文字列インデックスが範囲外であることがわかります。問題がライン上にあることを知っていますHashMapsを使用して文字列の頻度を調べる
str = line.substring(idx, idx + 2);
しかし、それを修正する方法はわかりません。また、周波数を正確にカウントしているかどうかはわかりません。何度も見られるすべてのキーの値を増やす必要がありました。
public static void findgene(String line){
int idx, pos;
int[] freq = new int[100];
String str;
//pos is the position to start at
pos = 0;
idx = pos;
for(int i = 0; i < line.length(); i++){
if(idx >= 0){
//makes every three characters into a codon
str = line.substring(idx, idx + 2);
//checks if the codon was previously seen
if(genes.containsKey(str)){
genes.put(str, freq[i]++);
}
idx = idx + 2;
}
}
}