私のコードは、ユーザー定義の文字列を入力し、それをDNA、RNA、またはODDとして分類します。出力はHashMap nucleotide_hmapのキーと値を出力するはずですが、コードは現在ありません。それが動作するように私のコードで何を変更すべきですか?ここ Javaコードが印刷されないHashMapのキーと値
が何であるかをコードすべき出力:- ATGC
- 1(ユーザ入力シーケンスATGC場合):0.25
- T 1:0.25
- C 1:0.25
- G 1:0.25
- 配列長:4
- 逆配列:C GTA
- 逆相補:GCAT
そして、これが私のサブクラスのいずれかです。
package sequenceclasses;
public class DNASequence extends MainSequence {
public DNASequence(String dna_sequence){
the_sequence = dna_sequence;
complement_hmap.put('A', 'T');
complement_hmap.put('T', 'A');
complement_hmap.put('C', 'G');
complement_hmap.put('G', 'C');
}
public void nuc_content(String dna_sequence){
the_sequence = dna_sequence;
double[] counts_ratios = new double[8];
for (int i = 0; i < dna_sequence.length(); i++){
if (dna_sequence.charAt(i) == 'A'){
counts_ratios[0] += 1;}
if (dna_sequence.charAt(i) == 'T'){
counts_ratios[1] += 1;}
if (dna_sequence.charAt(i) == 'C'){
counts_ratios[2] += 1;}
if (dna_sequence.charAt(i) == 'G'){
counts_ratios[3] += 1;}
}
if (dna_sequence.length() > 0){
counts_ratios[4] = counts_ratios[0]/dna_sequence.length();
counts_ratios[5] = counts_ratios[1]/dna_sequence.length();
counts_ratios[6] = counts_ratios[2]/dna_sequence.length();
counts_ratios[7] = counts_ratios[3]/dna_sequence.length();
}
String A_content = Double.toString(counts_ratios[0]) + " , " + Double.toString(counts_ratios[4]);
String T_content = Double.toString(counts_ratios[1]) + " , " + Double.toString(counts_ratios[5]);
String C_content = Double.toString(counts_ratios[2]) + " , " + Double.toString(counts_ratios[6]);
String G_content = Double.toString(counts_ratios[3]) + " , " + Double.toString(counts_ratios[7]);
nucleotide_hmap.put('A', A_content);
nucleotide_hmap.put('T', T_content);
nucleotide_hmap.put('C', C_content);
nucleotide_hmap.put('G', G_content);
}
}
質問を示す_minimal_サブセットを指定してください。 –
あなたがマップに何かを置く唯一の場所は、nuc_content()メソッドです。しかし、このメソッドはどこにも呼び出されません。 –
スタックオーバーフローへようこそ!デバッガの使い方を学ぶ必要があるようです。 [補完的なデバッグ手法](https://ericlippert.com/2014/03/05/how-to-debug-small-programs/)にご協力ください。その後も問題が残っている場合は、もう少し詳しくお聞かせください。 –