LocusWithAlleles :: LocusWithAlleles (const RGString& inputLine) : RGPersistent (), mLineNumber (0), mMaxRFU (0) { RGStringArray tokens; RGStringArray delimiters; RGString locusString (inputLine); locusString.FindAndReplaceAllSubstrings ("\t\t", "\t"); RGStringTokenizer tokenizer (locusString); tokenizer.AddDelimiter ("\t"); tokenizer.Split (tokens, delimiters); int size = tokens.Length (); int rfu; double fit; double residual; LocusAllele* newAllele; int i; if (size >= 8) { for (i=0; i<8; i++) { if ((tokens [i].Length () == 0) || (tokens [i] == "\t")) return; } mLineNumber = tokens [0].ConvertToInteger (); mLocusName = tokens [1]; rfu = tokens [2].ConvertToInteger (); residual = tokens [3].ConvertToDouble (); fit = tokens [4].ConvertToDouble (); newAllele = new LocusAllele (rfu, residual, fit); InsertAllele (newAllele); rfu = tokens [5].ConvertToInteger (); residual = tokens [6].ConvertToDouble (); fit = tokens [7].ConvertToDouble (); newAllele = new LocusAllele (rfu, residual, fit); InsertAllele (newAllele); } }
RGString LocusData :: FormXMLString () { RGString Result; if (AlleleStringIsEmpty ()) return Result; RGTPtrDList<RGString> temp; RGString sixTabs = "\t\t\t\t\t\t"; RGString sevenTabs = "\t\t\t\t\t\t\t"; RGString eightTabs = "\t\t\t\t\t\t\t\t"; Result << sixTabs << "<Locus>\n"; Result << sevenTabs << "<Name>" << (char*)mLocusName.GetData () << "</Name>\n"; RGString* nextAllele; while (mAlleleList.entries () > 0) { nextAllele = mAlleleList.RemoveFirst (); nextAllele->FindAndReplaceAllSubstrings ("\"", ""); temp.append (nextAllele); Result << sevenTabs << "<Allele>\n"; Result << eightTabs << "<Name>" << (char*)nextAllele->GetData () << "</Name>\n"; Result << eightTabs << "<BioID>0</BioID>\n"; Result << sevenTabs << "</Allele>\n"; } Result << sixTabs << "</Locus>\n"; //cout << (char*) Result.GetData (); while (temp.entries () > 0) { nextAllele = temp.RemoveFirst (); mAlleleList.append (nextAllele); } return Result; }
void CoreBioComponent :: ReportXMLSmartSampleTableRowWithLinks (RGTextOutput& text, RGTextOutput& tempText) { RGString type; if (mIsNegativeControl) type = "-Control"; else if (mIsPositiveControl) type = "+Control"; else type = "Sample"; RGString pResult; RGString SimpleFileName (mName); size_t startPos = 0; size_t endPos; size_t length = SimpleFileName.Length (); if (SimpleFileName.FindLastSubstringCaseIndependent (DirectoryManager::GetDataFileType (), startPos, endPos)) { if (endPos == length - 1) SimpleFileName.ExtractAndRemoveLastCharacters (4); } SimpleFileName.FindAndReplaceAllSubstrings ("\\", "/"); startPos = endPos = 0; if (SimpleFileName.FindLastSubstring ("/", startPos, endPos)) { SimpleFileName.ExtractAndRemoveSubstring (0, startPos); } text << CLevel (1) << "\t\t<Sample>\n"; text << "\t\t\t<Name>" << xmlwriter::EscAscii (SimpleFileName, &pResult) << "</Name>\n"; text << "\t\t\t<SampleName>" << xmlwriter::EscAscii (mSampleName, &pResult) << "</SampleName>\n"; text << "\t\t\t<RunStart>" << mRunStart.GetData () << "</RunStart>\n"; text << "\t\t\t<Type>" << type.GetData () << "</Type>\n" << PLevel (); int trigger = Notice::GetMessageTrigger (); // int channelHighestLevel; // bool channelAlerts = false; int cbcHighestMsgLevel = GetHighestMessageLevelWithRestrictionSM (); RGDListIterator it (*mSmartMessageReporters); SmartMessageReporter* nextNotice; bool includesExportInfo = false; while (nextNotice = (SmartMessageReporter*) it ()) { if (nextNotice->HasViableExportInfo ()) { includesExportInfo = true; break; } } if (((cbcHighestMsgLevel > 0) && (cbcHighestMsgLevel <= trigger)) || includesExportInfo) { // text << CLevel (1) << "\t\t\t<SampleAlerts>\n" << PLevel (); // get message numbers and report ReportXMLSmartNoticeObjects (text, tempText, " "); // text << CLevel (1) << "\t\t\t</SampleAlerts>\n" << PLevel (); } mDataChannels [mLaneStandardChannel]->ReportXMLILSSmartNoticeObjects (text, tempText, " "); int i; //for (i=1; i<=mNumberOfChannels; i++) { // //if (i == mLaneStandardChannel) // // continue; // channelHighestLevel = mDataChannels [i]->GetHighestMessageLevelWithRestrictionSM (); // if ((channelHighestLevel > 0) && (channelHighestLevel <= trigger)) { // channelAlerts = true; // break; // } //} // if (channelAlerts) { text << CLevel (1) << "\t\t\t<ChannelAlerts>\n" << PLevel (); for (i=1; i<=mNumberOfChannels; i++) { if (i == mLaneStandardChannel) continue; mDataChannels [i]->ReportXMLSmartNoticeObjects (text, tempText, " "); } text << CLevel (1) << "\t\t\t</ChannelAlerts>\n" << PLevel (); // } mMarkerSet->ResetLocusList (); Locus* nextLocus; while (nextLocus = mMarkerSet->GetNextLocus ()) { nextLocus->ReportXMLSmartSampleTableRowWithLinks (text, tempText, " "); } if (mIsPositiveControl) text << CLevel (1) << "\t\t\t<PositiveControl>" << mPositiveControlName << "</PositiveControl>\n"; text << CLevel (1) << "\t\t</Sample>\n" << PLevel (); }