Sha256: 88e041338238fa9826625ed5162cebe9164b0588139cb6347f3af8c1bf9896a8
Contents?: true
Size: 1.03 KB
Versions: 100
Compression:
Stored size: 1.03 KB
Contents
import java.util.HashMap; import java.util.Map; final class NucleotideCounter { private final String sequence; NucleotideCounter(String sequence) { this.sequence = sequence; } int count(char base) { if (isCountable(base)) throw new IllegalArgumentException(base + " is not a nucleotide"); try { return nucleotideCounts().get(base); } catch (NullPointerException e) { return 0; } } private static boolean isCountable(char base) { final String COUNTABLE_NUCLEOTIDES = "ACGT"; return COUNTABLE_NUCLEOTIDES.indexOf(base) == -1; } Map<Character, Integer> nucleotideCounts() { Map<Character, Integer> counts = emptyCounts(); for (char c : sequence.toCharArray()) { counts.put(c, counts.get(c) + 1); } return counts; } private static Map<Character, Integer> emptyCounts() { Map<Character, Integer> counts = new HashMap<Character, Integer>(); counts.put('A', 0); counts.put('C', 0); counts.put('T', 0); counts.put('G', 0); return counts; } }
Version data entries
100 entries across 100 versions & 1 rubygems