本文整理汇总了C++中boom::String类的典型用法代码示例。如果您正苦于以下问题:C++ String类的具体用法?C++ String怎么用?C++ String使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了String类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: counts
double BOOM::SequenceEntropy::entropy(const BOOM::String &str,
double &maxEntropy)
{
int len=str.length();
BOOM::StringMap<int> counts(hashTableSize(0));
const char *p=str.c_str();
int total=0;
for(int i=0 ; i<len ; ++i, ++p)
{
if(counts.isDefined(p,1))
++counts.lookup(p,1);
else
counts.lookup(p,1)=1;
++total;
}
double entropy=0;
StringMapIterator<int> cur=counts.begin(), end=counts.end();
for(; cur!=end ; ++cur)
{
int count=(*cur).second;
double p=count/double(total);
entropy-=p*lg(p);
}
maxEntropy=-lg(1.0/counts.size());
if(entropy>maxEntropy) entropy=maxEntropy;
return entropy;
}
开发者ID:bmajoros,项目名称:BOOM,代码行数:27,代码来源:SequenceEntropy.C
示例2: String
double BOOM::SequenceEntropy::jointEntropy(const BOOM::String &str,
int order,
double &maxEntropy)
{
int len=str.length();
int gramSize=order+1;
if(gramSize>=len)
throw BOOM::String("Order ")+order+
" is too large for sequence of length "+len;
int numWindows=len-gramSize+1;
BOOM::StringMap<int> counts(hashTableSize(order));
const char *p=str.c_str();
int total=0;
for(int i=0 ; i<numWindows ; ++i, ++p)
{
if(counts.isDefined(p,gramSize))
++counts.lookup(p,gramSize);
else
counts.lookup(p,gramSize)=1;
++total;
}
double entropy=0;
StringMapIterator<int> cur=counts.begin(), end=counts.end();
for(; cur!=end ; ++cur)
{
int count=(*cur).second;
double p=count/double(total);
entropy-=p*lg(p);
}
maxEntropy=-lg(1.0/counts.size());
if(entropy>maxEntropy) entropy=maxEntropy;
return entropy;
}
开发者ID:bmajoros,项目名称:BOOM,代码行数:33,代码来源:SequenceEntropy.C
示例3: os
void BOOM::FastaWriter::writeFasta(const BOOM::String &defline,
const BOOM::String &sequence,
const BOOM::String &filename)
{
ofstream os(filename.c_str());
addToFasta(defline,sequence.c_str(),os);
}
开发者ID:bmajoros,项目名称:BOOM,代码行数:7,代码来源:FastaWriter.C
示例4: load
void BranchAcceptor::load(istream &is)
{
double cutoff;
Strand strand;
SignalType signalType;
BOOM::String p;
int consensusOffset;
is >> signalType;
is >> p;
cutoff=p.asDouble();
is >> strand;
is >> consensusOffset;
setSignalType(signalType);
setStrand(strand);
setCutoff(cutoff);
BOOM::String dummy;
is>>dummy; // will always be "WWAM"
branchPoint=new WWAM(getGC(),is);
is>>dummy; // will always be "WAM"
acceptor=new WAM(getGC(),is);
int contextWindowLength=branchPoint->getContextWindowLength()+
acceptor->getContextWindowLength();
setSizes(2,consensusOffset,contextWindowLength);
}
开发者ID:bmajoros,项目名称:EGGS,代码行数:26,代码来源:BranchAcceptor.C
示例5: getSequence
BOOM::String SignalPeptide::getSequence()
{
BOOM::String sequence;
int n=exons.size();
for(int i=0 ; i<n ; ++i)
sequence+=exons[i].getSequence();
if(sequence[0]=='M')
sequence=sequence.substring(1,sequence.length()-1);
return sequence;
}
开发者ID:bmajoros,项目名称:EGGS,代码行数:10,代码来源:train-signal-peptide-model.C
示例6: processForwardFeature
void Application::processForwardFeature(int featureEnd,
const BOOM::String &seq)
{
int begin=featureEnd;
int end=begin+margin;
int len=seq.length();
if(end>=len) end=len-1;
BOOM::String subseq=seq.substr(begin,end-begin);
margins.push_back(subseq);
}
开发者ID:ReddyLab,项目名称:FBI,代码行数:10,代码来源:refine-polya.C
示例7: addConsensus
void SignalSensor::addConsensus(const BOOM::String &s)
{
int len=s.length();
if(consensusLength>0 && consensusLength!=len)
throw BOOM::String(
"Consensus lengths differ in SignalSensor::addConsensus");
consensusLength=len;
consensuses.lookup(s.c_str(),len)=char(1);
}
开发者ID:ReddyLab,项目名称:FBI,代码行数:10,代码来源:SignalSensor.C
示例8: generateModel
void Application::generateModel(const BOOM::String &filename,
const BOOM::String &startCodonModelFile)
{
// Create output file
ofstream os(filename.c_str());
os<<"SignalPeptide"<<endl;
// Copy the start codon model into the file
ifstream is(startCodonModelFile.c_str());
BOOM::String line;
while(!is.eof())
{
line.getline(is);
if(is.eof()) break;
os<<line<<endl;
}
// Write out each field separately
os<<numFields<<endl;
for(int fieldNum=0 ; fieldNum<numFields ; ++fieldNum)
{
Field &field=*fields[fieldNum];
// Count the number of codons (you just never know...)
BOOM::Map<char,float>::iterator aCur=field.aminoAcidFreqs.begin(),
aEnd=field.aminoAcidFreqs.end();
numCodons=0;
for(; aCur!=aEnd ; ++aCur)
{
char acid=(*aCur).first;
float &acidP=(*aCur).second;
BOOM::Map<BOOM::String,float> codons=codonFreqs[acid];
numCodons+=codons.size();
}
os<<field.fieldLength<<endl;
os<<numCodons<<endl;
aCur=field.aminoAcidFreqs.begin(); aEnd=field.aminoAcidFreqs.end();
for(; aCur!=aEnd ; ++aCur)
{
char acid=(*aCur).first;
float &acidP=(*aCur).second;
BOOM::Map<BOOM::String,float> codons=codonFreqs[acid];
BOOM::Map<BOOM::String,float>::iterator cur=codons.begin(),
end=codons.end();
for(; cur!=end ; ++cur)
{
BOOM::String codon=(*cur).first;
float codonP=(*cur).second;
float logP=log(acidP*codonP);
os<<codon<<" "<<logP<<endl;
}
}
}
}
开发者ID:bmajoros,项目名称:EGGS,代码行数:55,代码来源:train-signal-peptide-model.C
示例9: updateCodonFreqs
void Application::updateCodonFreqs(const BOOM::String &transcript)
{
const char *str=transcript.c_str();
int len=transcript.length();
const char *p=str;
for(int i=0 ; i<len ; i+=3, p+=3)
{
BOOM::String codon(p,3);
char acid=BOOM::ProteinTrans::mapCodon(codon.c_str());
BOOM::Map<BOOM::String,float> &counts=codonFreqs[acid];
if(!counts.isDefined(codon)) counts[codon]=1;
else ++counts[codon];
}
}
开发者ID:bmajoros,项目名称:EGGS,代码行数:14,代码来源:train-signal-peptide-model.C
示例10: save
bool IMM::save(const BOOM::String &filename)
{
ofstream os(filename.c_str());
if(!os.good()) throw BOOM::String("Error creating file ")+filename+
"in IMM::save()";
return save(os);
}
开发者ID:bmajoros,项目名称:EGGS,代码行数:7,代码来源:IMM.C
示例11: while
bool BOOM::FastaReader::nextSequence(BOOM::String &defline,
BOOM::String &sequence)
{
if(file.eof()) return false;
if(cache.length()>0)
{
defline=cache;
cache="";
}
else defline=file.readLine();
if(file.eof()) return false;
sequence="";
while(!file.eof())
{
BOOM::String line=file.readLine();
if(line[0]=='>')
{
cache=line;
break;
}
line.trimWhitespace();
sequence+=line;
}
sequence.toupper();
maskStrangeChars(sequence);
return true;
}
开发者ID:bmajoros,项目名称:BOOM,代码行数:30,代码来源:FastaReader.C
示例12: save
bool ThreePeriodicMarkovChain::save(const BOOM::String &filename)
{
ofstream os(filename.c_str());
if(!os.good()) throw BOOM::String("Error creating file ")+filename+
"in ThreePeriodicMarkovChain::save()";
return save(os);
}
开发者ID:ReddyLab,项目名称:FBI,代码行数:7,代码来源:ThreePeriodicMarkovChain.C
示例13: writeHistogramFile
void Application::writeHistogramFile(BOOM::Vector<double> &scores,
const BOOM::String &filename)
{
ofstream os(filename.c_str());
BOOM::Vector<double>::iterator cur=scores.begin(), end=scores.end();
for(; cur!=end ; ++cur)
os<<*cur<<endl;
}
开发者ID:bmajoros,项目名称:GeneZilla,代码行数:8,代码来源:compute-signal-likelihoods.C
示例14: save
bool BranchAcceptor::save(const BOOM::String &filename)
{
ofstream os(filename.c_str());
if(!os.good())
throw BOOM::String("Error creating file ")+filename+
"in BranchPoint::save()";
return save(os);
}
开发者ID:bmajoros,项目名称:EGGS,代码行数:8,代码来源:BranchAcceptor.C
示例15: scoreSingleBase
double IMM::scoreSingleBase(const Sequence &seq,const BOOM::String &str,
int index,Symbol s,char c)
{
const char *p=str.c_str();
switch(getStrand())
{
case PLUS_STRAND:
{
int maxOrder=(index>N ? N : index);
for(int order=maxOrder ; order>=0 ; --order)
{
BOOM::StringMap<double> &model=*(*models)[order];
if(model.isDefined(p,index-order,order+1))
return model.lookup(p,index-order,order+1);
}
throw BOOM::String("IMM::scoreSingleBase('+',")+
index+",strlen="+strlen(p)+",str="+
str.substring(index,maxOrder)+")";
}
case MINUS_STRAND:
{
/*
On the minus strand we have to take our contexts from the
right (but only because we trained the model that way)
*/
int seqLen=str.length();
int maxOrder=seqLen-index-1;
if(maxOrder>N) maxOrder=N;
for(int order=maxOrder ; order>=0 ; --order)
{
BOOM::StringMap<double> &model=*(*models)[order];
if(model.isDefined(p,index,order+1))
return model.lookup(p,index,order+1);
}
throw BOOM::Stacktrace(
BOOM::String("IMM::scoreSingleBase('-',")+
index+",strlen="+strlen(p)+",str="+
str.substring(index,maxOrder)+")");
}
default: throw BOOM::String(__FILE__)+__LINE__;
}
}
开发者ID:bmajoros,项目名称:EGGS,代码行数:44,代码来源:IMM.C
示例16: processReverseFeature
void Application::processReverseFeature(int featureBegin,
const BOOM::String &seq)
{
int end=featureBegin;
int begin=featureBegin-margin;
if(begin<0) begin=0;
BOOM::String subseq=
BOOM::ProteinTrans::reverseComplement(seq.substr(begin,end-begin));
margins.push_back(subseq);
}
开发者ID:ReddyLab,项目名称:FBI,代码行数:10,代码来源:refine-polya.C
示例17: is
ThreePeriodicMarkovChain::ThreePeriodicMarkovChain(const BOOM::String &
filename)
{
ifstream is(filename.c_str());
if(!is.good()) throw BOOM::String("Error opening file ")+filename
+" in ThreePeriodicMarkovChain()";
BOOM::String modelType;
is >> modelType;
if(modelType!="3P")
throw BOOM::String("Attempt to load an object of type ")+modelType+
" into a ThreePeriodicMarkovChain (3P)";
load(is);
}
开发者ID:ReddyLab,项目名称:FBI,代码行数:13,代码来源:ThreePeriodicMarkovChain.C
示例18: is
IMM::IMM(const BOOM::String &filename)
: revComp(NULL), models(new BOOM::Vector<BOOM::StringMap<double>*>)
{
ifstream is(filename.c_str());
if(!is.good()) throw BOOM::String("Error opening file ")+filename
+" in IMM::IMM()";
BOOM::String modelType;
is >> modelType;
if(modelType!="IMM")
throw BOOM::String("Attempt to load an object of type ")+modelType+
" into an IMM";
load(is);
}
开发者ID:bmajoros,项目名称:EGGS,代码行数:13,代码来源:IMM.C
示例19: while
BOOM::String BOOM::String::substitute(const BOOM::String &from,
const BOOM::String &to) const
{
BOOM::String rval;
const char *pattern=from.c_str();
int patternLen=from.length();
const char *ptr=c_str();
const char *last=ptr+length()-patternLen;
while(ptr<=last) {
if(localMatch(ptr,pattern,patternLen)) {
ptr+=patternLen;
rval+=to;
}
else {
rval+=*ptr;
ptr++;
}
}
//int extra=patternLen-1;
//for(int i=0 ; i<extra ; ++i) rval+=*ptr++;
for(; *ptr ; ++ptr) rval+=*ptr;
return rval;
}
开发者ID:bmajoros,项目名称:BOOM,代码行数:23,代码来源:String.C
示例20: load
void EmpiricalDistribution::load(const BOOM::String &filename)
{
ifstream is(filename.c_str());
if(!is.good()) throw BOOM::String("Error opening file ")+filename+
" in EmpiricalDistribution::load()";
while(!is.eof())
{
unsigned x;
double y;
is >> x;
if(is.eof()) break;
is >> y;
v.push_back(new EmpiricalDistributionElement(x,y));
}
binSize=v[1]->first-v[0]->first;
}
开发者ID:bmajoros,项目名称:EGGS,代码行数:16,代码来源:EmpiricalDistribution.C
注:本文中的boom::String类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论