Task::ReportResult GTest_DNAcompareSequencesInTwoObjects::report() { Document* doc = getContext<Document>(this, docContextName); if (doc == NULL) { stateInfo.setError(QString("document not found %1").arg(docContextName)); return ReportResult_Finished; } Document* doc2 = getContext<Document>(this, secondDocContextName); if (doc2 == NULL) { stateInfo.setError(QString("document not found %1").arg(secondDocContextName)); return ReportResult_Finished; } const QList<GObject*>& objs = doc->getObjects(); const QList<GObject*>& objs2 = doc2->getObjects(); GObject*obj=NULL; GObject*obj2=NULL; U2SequenceObject * mySequence; U2SequenceObject * mySequence2; for(int i=0;(i!=objs.size())&&(i!=objs2.size());i++){ obj = objs.at(i); obj2 = objs2.at(i); if((obj->getGObjectType()== GObjectTypes::SEQUENCE)&&(obj2->getGObjectType()== GObjectTypes::SEQUENCE)){ mySequence = qobject_cast<U2SequenceObject*>(obj); if(mySequence==NULL){ stateInfo.setError(QString("can't cast to sequence from: %1 in position %2").arg(obj->getGObjectName()).arg(i)); return ReportResult_Finished; } mySequence2 = qobject_cast<U2SequenceObject*>(obj2); if(mySequence2==NULL){ stateInfo.setError(QString("can't cast to sequence from: %1 in position %2").arg(obj2->getGObjectName()).arg(i)); return ReportResult_Finished; } if(mySequence->getWholeSequenceData(stateInfo) != mySequence2->getWholeSequenceData(stateInfo)){ CHECK_OP(stateInfo, ReportResult_Finished); stateInfo.setError(QString("Sequences of object in position %1 not matched").arg(i)); return ReportResult_Finished; } CHECK_OP(stateInfo, ReportResult_Finished); } } if (objs.size() != objs2.size()) { QString error("Number of objects in doc mismatches: [%1=%2] vs [%3=%4]"); error = error.arg(docContextName).arg(objs.size()) .arg(secondDocContextName).arg(objs2.size()); if (obj) { error += QString("\nLast good object: %1").arg(obj->getGObjectName()); } stateInfo.setError(error); } return ReportResult_Finished; }
void GTest_SecStructPredictTask::prepare() { U2SequenceObject * mySequence = getContext<U2SequenceObject>(this, seqName); if(mySequence==NULL){ stateInfo.setError( QString("error can't cast to sequence from GObject")); return; } SecStructPredictAlgRegistry* sspr = AppContext::getSecStructPredictAlgRegistry(); if (!sspr->hadRegistered(algName)) { stateInfo.setError( QString(tr("Algorithm named %1 not found")).arg(algName)); return; } SecStructPredictTaskFactory* factory = sspr->getAlgorithm(algName); QByteArray seqData = mySequence->getWholeSequenceData(stateInfo); task = factory->createTaskInstance(seqData); CHECK_OP(stateInfo, ); addSubTask(task); }
MAlignment Kalign_Load_Align_Compare_Task::dna_to_ma(QList<GObject*> dnaSeqs) { int seqCount = dnaSeqs.count(); U2SequenceObject *seq = qobject_cast<U2SequenceObject *>(dnaSeqs[0]); MAlignment ma("Alignment",seq->getAlphabet()); for(int i=0; i<seqCount; i++) { seq = qobject_cast<U2SequenceObject *>(dnaSeqs[i]); if(seq == NULL) { stateInfo.setError( QString("Can't cast GObject to U2SequenceObject") ); return ma; } QByteArray seqData = seq->getWholeSequenceData(stateInfo); SAFE_POINT_OP(stateInfo, MAlignment()); ma.addRow(seq->getSequenceName(), seqData, stateInfo); SAFE_POINT_OP(stateInfo, MAlignment()); } return ma; }