c.SetSequences().SetSet().SetSeq_set().push_back(seq);
89 for(
unsigned int i=((bma->
NRows() > 1) ? 1 : 0); i<bma->NRows(); ++
i) {
92c.SetSequences().SetSet().SetSeq_set().push_back(seq);
94c.SetSeqannot().front()->SetData().SetAlign().push_back(seqAlign);
98cd_utils::PssmMaker pm(&c,
true,
true);
99cd_utils::PssmMakerOptions options;
100options.requestFrequencyRatios =
true;
102pm.setOptions(options);
106 if(!
pssm->GetPssm().IsSetQuery() || !
pssm->GetPssm().GetQuery().IsSeq())
107 PTHROW(
"PssmWithParameters from cd_utils::PssmMaker() doesn't contain the master/query sequence");
109 id->SetLocal().SetStr(
"consensus");
110 pssm->SetPssm().SetQuery().SetSeq().SetId().push_front(
id);
205}
catch(exception& e) {
206 ERRORMSG(
"PSSMWrapper::PSSMWrapper() failed with exception: "<< e.what());
208 ERRORMSG(
"PSSMWrapper::PSSMWrapper() failed with unknown exception");
214 if(!
pssm->GetPssm().IsSetFinalData())
215 PTHROW(
"UnpackMatrix() - pssm must have finalData");
216 unsigned intnScores =
pssm->GetPssm().GetNumRows() *
pssm->GetPssm().GetNumColumns();
217 if(
pssm->GetPssm().GetNumRows() != 28 ||
pssm->GetPssm().GetFinalData().GetScores().size() != nScores)
218 PTHROW(
"UnpackMatrix() - bad matrix size");
225 for(
i=0; (
int)i<pssm->GetPssm().GetNumColumns(); ++
i)
229 unsigned int r= 0, c = 0;
230CPssmFinalData::TScores::const_iterator s =
pssm->GetPssm().GetFinalData().GetScores().begin();
231 for(
i=0;
i<nScores; ++
i, ++s) {
236 if(
pssm->GetPssm().GetByRow()) {
238 if((
int)c ==
pssm->GetPssm().GetNumColumns()) {
244 if((
int)
r==
pssm->GetPssm().GetNumRows()) {
252 if((
int)pm.getConsensus().size() !=
pssm->GetPssm().GetNumColumns())
253 PTHROW(
"Consensus sequence does not match PSSM size");
255cd_utils::BlockModelPair
bmp(pm.getGuideAlignment());
257 for(
i=0;
i<pm.getConsensus().
size(); ++
i)
270 if(!
copy.GetPssm().IsSetQuery() || !
copy.GetPssm().GetQuery().IsSeq()) {
271 ERRORMSG(
"PssmWithParameters from cd_utils::PssmMaker() doesn't contain the master/query sequence");
276CBioseq::TId::iterator
i, ie =
copy.SetPssm().SetQuery().SetSeq().SetId().end();
277 for(
i=
copy.SetPssm().SetQuery().SetSeq().SetId().begin();
i!=ie; ++
i) {
278 if((*i)->IsLocal() && (*i)->GetLocal().IsStr())
279(*i)->SetLocal().SetStr(title);
280 if(!(*i)->IsGeneral() || (*i)->GetGeneral().GetDb() !=
"Cdd")
281keep.push_back(*
i);
283 copy.SetPssm().SetQuery().SetSeq().SetId() = keep;
285CSeq_descr::Tdata::iterator d, de =
copy.SetPssm().SetQuery().SetSeq().SetDescr().Set().end();
286 for(d=
copy.SetPssm().SetQuery().SetSeq().SetDescr().Set().begin(); d!=de; ++d) {
287 if((*d)->IsTitle()) {
288(*d)->SetTitle(title);
295 copy.SetPssm().SetQuery().SetSeq().SetDescr().Set().push_front(descr);
299 copy.SetPssm().ResetFinalData();
300 if(!
copy.GetPssm().IsSetIntermediateData() || !
copy.GetPssm().GetIntermediateData().IsSetFreqRatios())
301 ERRORMSG(
"PSSM is missing frequency ratios");
307 static inline int Round(
doubleNum)
310 return((
int)(Num + 0.5));
312 return((
int)(Num - 0.5));
318 ERRORMSG(
"PSSMWrapper::GetPSSMScore() - invalid parameters");
324 if(consensusIndex >= 0) {
const Sequence * GetMaster(void) const
std::vector< const UngappedAlignedBlock * > UngappedAlignedBlockList
const Sequence * GetSequenceOfRow(unsigned int row) const
void GetUngappedAlignedBlocks(UngappedAlignedBlockList *blocks) const
unsigned int NRows(void) const
std::vector< Column > scaledMatrix
std::vector< int > master2consensus
ncbi::CRef< ncbi::objects::CPssmWithParameters > pssm
PSSMWrapper(const BlockMultipleAlignment *bma)
void UnpackMatrix(ncbi::cd_utils::PssmMaker &pm)
std::vector< int > consensus2master
int GetPSSMScore(unsigned char ncbistdaa, unsigned int realMasterIndex) const
const BlockMultipleAlignment * multiple
void OutputPSSM(ncbi::CNcbiOstream &os, const std::string &title) const
unsigned int Length(void) const
CConstRef< objects::CBioseq > bioseqASN
static int Round(double Num)
Include a standard set of the NCBI C++ Toolkit most basic headers.
std::ofstream out("events_result.xml")
main entry point for tests
thread_local unique_ptr< FtaMsgPost > bmp
virtual void Assign(const CSerialObject &source, ESerialRecursionMode how=eRecursive)
Set object to copy of another one.
void Reset(void)
Reset reference object.
TObjectType & GetObject(void) const
Get object.
#define END_SCOPE(ns)
End the previously defined scope.
#define BEGIN_SCOPE(ns)
Define a new scope.
IO_PREFIX::ofstream CNcbiOfstream
Portable alias for ofstream.
IO_PREFIX::ostream CNcbiOstream
Portable alias for ostream.
TSeq & SetSeq(void)
Select the variant.
TTitle & SetTitle(void)
Select the variant.
list< CRef< CSeq_id > > TId
unsigned int
A callback function used to compare two keys in a database.
const struct ncbi::grid::netcache::search::fields::SIZE size
void resize(vector< SMethodDef > &container)
NCBI C++ stream class wrappers for triggering between "new" and "old" C++ stream libraries.
double r(size_t dimension_, const Int4 *score_, const double *prob_, double theta_)
void copy(Njn::Matrix< S > *matrix_, const Njn::Matrix< T > &matrix0_)
static DP_BlockInfo * blocks
static int GetBLOSUM62Score(char a, char b)
ncbi::objects::CSeq_align * CreatePairwiseSeqAlignFromMultipleRow(const BlockMultipleAlignment *multiple, const BlockMultipleAlignment::UngappedAlignedBlockList &blocks, unsigned int slaveRow)
char LookupCharacterFromNCBIStdaaNumber(unsigned char n)
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4