how to count number of letters with std.algorithm.count / std.algorithm.reduce / std.algorithm.map ?
bioinfornatics
bioinfornatics at gmail.com
Sat Nov 17 18:15:24 PST 2012
thanks to all, then something as:
-----------------------------------
Tuple!(size_t[char],size_t) baseCounter( const ref string[]
sequences ){
alias Tuple!(size_t[char], size_t) Result;
Result result;
size_t length = 0;
size_t[char][] baseNumbers = new
size_t[char][](sequences.length);
foreach(index, ref seq; parallel(sequences)){
foreach(ref letter; seq ){
if( letter in baseNumbers[index])
baseNumbers[index][letter]++;
else baseNumbers[index][letter] = 1;
}
length += seq.length;
}
foreach(baseNumber; baseNumbers){
foreach( key, value; baseNumber ){
if( key in result[0] ) result[0][key] += value;
else result[0][key] = value;
}
}
result[1] = length;
return result;
}
-----------------------------------
same code with highlight http://pastebin.com/pVEuWwgr
should be faster, no ?
This code is generic and should be able to count for any letter
the frequencies
More information about the Digitalmars-d-learn
mailing list