RGDirectory :: RGDirectory (const RGString& fullName) : direct (NULL) { DWORD dwAttr; #ifdef FILENAME_MAX if (fullName.Length () > FILENAME_MAX) { cout << "Full path name too long: name = " << fullName.GetData () << endl; return; } #endif // Must be a valid name if( (fullName.Length () == 0) || (dwAttr = GetFileAttributes(fullName.GetData ())) == INVALID_FILE_ATTRIBUTES) { errno = ENOENT; } // Must be a directory else if (!(dwAttr & FILE_ATTRIBUTE_DIRECTORY)) { errno = ENOTDIR; } else { direct = new DIR; //(DIR*)malloc(sizeof(DIR)); if (direct == NULL) { errno = ENOMEM; } else { direct->hFind = findfile_directory (fullName.GetData (), &direct->find_data); if (direct->hFind == INVALID_HANDLE_VALUE) { //free(directory); delete direct; direct = NULL; } else { // Save the directory, in case of rewind. lstrcpyA(direct->directory, fullName.GetData ()); lstrcpyA(direct->dirent.d_name, direct->find_data.cFileName); } } } }
LocusData :: LocusData (const RGString& locusName, const RGString& alleleString) : mLocusName (locusName) { RGStringArray alleles; RGStringArray delimiters; if (alleleString.Length () == 0) return; RGString alleleStr = alleleString; RGStringTokenizer alleleJoin (alleleStr); alleleJoin.AddDelimiter (","); alleleJoin.Split (alleles, delimiters); int n = alleles.Length (); if (n == 0) return; int i; RGString* newAllele; cout << "Locus Name = " << (char*)mLocusName.GetData () << " with allele(s) "; for (i=0; i<n; i++) { newAllele = new RGString (alleles [i]); cout << (char*)newAllele->GetData () << " "; mAlleleList.append (newAllele); } cout << endl; }
STRAlleleName :: STRAlleleName (const RGString& name) { size_t position; RGString repeats; RGString variant; size_t len; if (name.FindNextSubstring (0, ".", position)) { repeats = name.ExtractSubstring (0, position - 1); mRepeats = repeats.ConvertToInteger (); len = name.Length () - 1; if (position <= len) { variant = name.ExtractSubstring (position + 1, len); mMicroVariant = variant.ConvertToInteger (); } else mMicroVariant = 0; } else { mRepeats = name.ConvertToInteger (); mMicroVariant = 0; } }
Boolean RGDirectory :: MakeDirectory (const RGString& fullName) { if (fullName.Length () == 0) return FALSE; // Must not already exist if (FileOrDirectoryExists (fullName)) { cout << "File or directory " << fullName << " already exists" << endl; return FALSE; } return CreateDirectory (fullName, NULL); }
bool DirectoryManager :: TestForExtension (const RGString& fileName) { RGString Extension; int length = fileName.Length (); // size_t position; // RGString localFileName (fileName); // localFileName.ToLower (); if (length > 4) Extension = fileName.ExtractSubstring (length-4, length-1); if ((length > 4) && (Extension == DirectoryManager::DataFileTypeWithDot)) return true; return false; }
Boolean DirectoryManager :: TestForPositiveControl (const RGString& fileName) { int length = (int)fileName.Length (); RGString Extension; Boolean FoundPosControl; Boolean FoundLadder; if (length > 4) Extension = fileName.ExtractSubstring (length-4, length-1); FoundPosControl = mPServer->PosControlDoesTargetStringContainASynonymCaseIndep (fileName); FoundLadder = mPServer->LadderDoesTargetStringContainASynonymCaseIndep (fileName); if ((length > 4) && (Extension == DirectoryManager::DataFileTypeWithDot) && FoundPosControl && !FoundLadder) //old = if ((length > 4) && (Extension == ".fsa") && FoundPosControl && !FoundLadder) return TRUE; return FALSE; }
Boolean DirectoryManager :: TestForNonLadder (const RGString& fileName) { int length = (int)fileName.Length (); RGString Extension; Boolean FoundControl; // size_t position; // RGString localFileName (fileName); // localFileName.ToLower (); if (length > 4) Extension = fileName.ExtractSubstring (length-4, length-1); // FoundControl = localFileName.FindSubstring ("ladder", position); FoundControl = mPServer->LadderDoesTargetStringContainASynonymCaseIndep (fileName); if ((length > 4) && (Extension == DirectoryManager::DataFileTypeWithDot) && !FoundControl) //old = if ((length > 4) && (Extension == ".fsa") && !FoundControl) return TRUE; return FALSE; }
void DataSignal :: WriteSmartTableArtifactInfoToXML (RGTextOutput& text, RGTextOutput& tempText, const RGString& indent, const RGString& bracketTag, const RGString& locationTag) { int peak; Endl endLine; RGString suffix; RGString label; SmartMessageReporter* notice; int i; RGString virtualAllele; SmartMessageReporter* nextNotice; text.SetOutputLevel (1); int msgNum; smAcceptedOLLeft acceptedOLLeft; smAcceptedOLRight acceptedOLRight; int reportedMessageLevel = GetHighestMessageLevelWithRestrictionSM (); //bool hasThreeLoci; //bool needLocus0; if ((!DontLook ()) && (NumberOfSmartNoticeObjects () != 0)) { bool firstNotice = true; peak = (int) floor (Peak () + 0.5); virtualAllele = GetVirtualAlleleName (); text << indent << "<" << bracketTag << ">" << endLine; // Should be <Artifact> text << indent << "\t<Id>" << GetSignalID () << "</Id>" << endLine; text << indent << "\t<Level>" << reportedMessageLevel << "</Level>" << endLine; text << indent << "\t<RFU>" << peak << "</RFU>" << endLine; text << indent << "\t<" << locationTag << ">" << GetApproximateBioID () << "</" << locationTag << ">" << endLine; text << indent << "\t<PeakArea>" << TheoreticalArea () << "</PeakArea>" << endLine; text << indent << "\t<Time>" << GetMean () << "</Time>" << endLine; text << indent << "\t<Fit>" << GetCurveFit () << "</Fit>" << endLine; if (!mAllowPeakEdit) text << indent << "\t<AllowPeakEdit>false</AllowPeakEdit>" << endLine; RGDListIterator it (*mSmartMessageReporters); i = 0; while (notice = (SmartMessageReporter*) it ()) { if (!notice->GetDisplayOsirisInfo ()) continue; if (firstNotice) { label = indent + "\t<Label>"; firstNotice = false; } if (i > 0) label << " "; label += notice->GetMessage (); label += notice->GetMessageData (); i++; } if (i > 0) { label << "</Label>"; text << label << endLine; } // Now add list of notices... it.Reset (); while (nextNotice = (SmartMessageReporter*) it ()) { msgNum = Notice::GetNextMessageNumber (); nextNotice->SetMessageCount (msgNum); text << indent << "\t<MessageNumber>" << msgNum << "</MessageNumber>" << endLine; tempText << "\t\t<Message>\n"; tempText << "\t\t\t<MessageNumber>" << msgNum << "</MessageNumber>\n"; tempText << "\t\t\t<Text>" << nextNotice->GetMessage () << nextNotice->GetMessageData () << "</Text>\n"; if (nextNotice->HasViableExportInfo ()) { if (nextNotice->IsEnabled ()) tempText << "\t\t\t<Hidden>false</Hidden>\n"; else tempText << "\t\t\t<Hidden>true</Hidden>\n"; if (!nextNotice->IsCritical ()) tempText << "\t\t\t<Critical>false</Critical>\n"; if (nextNotice->IsEnabled ()) tempText << "\t\t\t<Enabled>true</Enabled>\n"; else tempText << "\t\t\t<Enabled>false</Enabled>\n"; if (!nextNotice->IsEditable ()) tempText << "\t\t\t<Editable>false</Editable>\n"; if (nextNotice->GetDisplayExportInfo ()) tempText << "\t\t\t<DisplayExportInfo>true</DisplayExportInfo>\n"; else tempText << "\t\t\t<DisplayExportInfo>false</DisplayExportInfo>\n"; if (!nextNotice->GetDisplayOsirisInfo ()) tempText << "\t\t\t<DisplayOsirisInfo>false</DisplayOsirisInfo>\n"; tempText << "\t\t\t<MsgName>" << nextNotice->GetMessageName () << "</MsgName>\n"; //tempText << "\t\t\t<ExportProtocolList>"; //tempText << "\t\t\t" << nextNotice->GetExportProtocolInformation (); //tempText << "\t\t\t</ExportProtocolList>\n"; } tempText << "\t\t</Message>\n"; } // Now add list of alleles //hasThreeLoci = (mLocus != NULL) && (mLeftLocus != NULL) && (mRightLocus != NULL); //if (mLocus != NULL) { // if ((mLeftLocus == NULL) && (mRightLocus == NULL)) // needLocus0 = true; // else // needLocus0 = false; //} //else // needLocus0 = false; //needLocus0 = (!hasThreeLoci) && ((mLocus != mLeftLocus) || (mLocus != mRightLocus)); if (mLocus != NULL) { //testing RGString locusName = mLocus->GetLocusName (); suffix = GetAlleleName (0); if ((suffix.Length () > 0) || (virtualAllele.Length () > 0)) { text << indent << "\t<Allele>" << endLine; if (suffix.Length () > 0) text << indent << "\t\t<Name>" << suffix << "</Name>" << endLine; else text << indent << "\t\t<Name>" << virtualAllele << "</Name>" << endLine; if (mOffGrid) suffix = "true"; else if (mAcceptedOffGrid) suffix = "accepted"; else suffix = "false"; text << indent << "\t\t<OffLadder>" << suffix << "</OffLadder>" << endLine; text << indent << "\t\t<BPS>" << GetBioID (0) << "</BPS>" << endLine; text << indent << "\t\t<Locus>" << mLocus->GetLocusName () << "</Locus>" << endLine; text << indent << "\t\t<Location>0</Location>" << endLine; text << indent << "\t</Allele>" << endLine; } } if ((mLeftLocus != NULL) && (mLeftLocus != mLocus)) { if (mAlleleNameLeft.Length () > 0) { text << indent << "\t<Allele>" << endLine; text << indent << "\t\t<Name>" << mAlleleNameLeft << "</Name>" << endLine; if (mIsOffGridLeft) suffix = "true"; else if (GetMessageValue (acceptedOLLeft)) suffix = "accepted"; else suffix = "false"; text << indent << "\t\t<OffLadder>" << suffix << "</OffLadder>" << endLine; text << indent << "\t\t<BPS>" << GetBioID (-1) << "</BPS>" << endLine; text << indent << "\t\t<Locus>" << mLeftLocus->GetLocusName () << "</Locus>" << endLine; text << indent << "\t\t<Location>-1</Location>" << endLine; text << indent << "\t</Allele>" << endLine; } } if ((mRightLocus != NULL) && (mRightLocus != mLocus)) { if (mAlleleNameRight.Length () > 0) { text << indent << "\t<Allele>" << endLine; text << indent << "\t\t<Name>" << mAlleleNameRight << "</Name>" << endLine; if (mIsOffGridRight) suffix = "true"; else if (GetMessageValue (acceptedOLRight)) suffix = "accepted"; else suffix = "false"; text << indent << "\t\t<OffLadder>" << suffix << "</OffLadder>" << endLine; text << indent << "\t\t<BPS>" << GetBioID (1) << "</BPS>" << endLine; text << indent << "\t\t<Locus>" << mRightLocus->GetLocusName () << "</Locus>" << endLine; text << indent << "\t\t<Location>1</Location>" << endLine; text << indent << "\t</Allele>" << endLine; } } text << indent << "</" + bracketTag << ">" << endLine; } text.ResetOutputLevel (); }
void DataSignal :: WriteSmartArtifactInfoToXML (RGTextOutput& text, const RGString& indent, const RGString& bracketTag, const RGString& locationTag) { int peak; Endl endLine; RGString suffix; RGString label; SmartMessageReporter* notice; int i; RGString virtualAllele; int reportedMessageLevel; reportedMessageLevel = GetHighestMessageLevelWithRestrictionSM (); bool thisIsFirstNotice = true; if ((!DontLook ()) && (NumberOfSmartNoticeObjects () != 0)) { peak = (int) floor (Peak () + 0.5); if (mOffGrid) suffix = " OL"; virtualAllele = GetVirtualAlleleName (); RGDListIterator it (*mSmartMessageReporters); i = 0; while (notice = (SmartMessageReporter*) it ()) { if (!notice->GetDisplayOsirisInfo ()) continue; if (thisIsFirstNotice) { text << indent << "<" << bracketTag << ">" << endLine; text << indent << "\t<level>" << reportedMessageLevel << "</level>" << endLine; text << indent << "\t<mean>" << GetMean () << "</mean>" << endLine; text << indent << "\t<height>" << peak << "</height>" << endLine; // text << indent << "\t<" << locationTag << ">" << (int) floor (GetApproximateBioID () + 0.5) << "</" << locationTag << ">" << endLine; text << indent << "\t<" << locationTag << ">" << GetApproximateBioID () << "</" << locationTag << ">" << endLine; text << indent << "\t<PeakArea>" << TheoreticalArea () << "</PeakArea>" << endLine; if (virtualAllele.Length () > 0) text << indent << "\t<equivAllele>" << virtualAllele << suffix << "</equivAllele>" << endLine; text << indent << "\t<width>" << 4.0 * GetStandardDeviation () << "</width>" << endLine; text << indent << "\t<fit>" << GetCurveFit () << "</fit>" << endLine; label = indent + "\t<label>"; thisIsFirstNotice = false; } if (i > 0) label << " "; label += notice->GetMessage (); label += notice->GetMessageData (); i++; } RGString temp = GetVirtualAlleleName () + suffix; if (temp.Length () > 0) { if (i > 0) label << " "; label += "Allele " + temp; } if (i > 0) { label << "</label>"; text << label << endLine; text << indent << "</" + bracketTag << ">" << endLine; } /*if ((signalLink != NULL) && (!signalLink->xmlArtifactInfoWritten)) { signalLink->xmlArtifactInfoWritten = true; peak = signalLink->height; text << indent << "<" << bracketTag << ">" << endLine; text << indent << "\t<mean>" << signalLink->mean << "</mean>" << endLine; text << indent << "\t<height>" << peak << "</height>" << endLine; text << indent << "\t<" << locationTag << ">" << signalLink->bioID << "</" << locationTag << ">" << endLine; text << indent << "\t<fit>" << GetCurveFit () << "</fit>" << endLine; label = indent + "\t<label>"; mNoticeObjectIterator.Reset (); i = 0; while (notice = (Notice*) mNoticeObjectIterator ()) { if (i > 0) label << " "; label += notice->GetLabel (); i++; } if (temp.Length () > 0) { if (i > 0) label << " "; label += "Allele " + temp; } label << "</label>"; text << label << endLine; text << indent << "</" + bracketTag << ">" << endLine; }*/ } }
STRBaseLaneStandard :: STRBaseLaneStandard (const RGString& xmlString) : BaseLaneStandard (xmlString), mCharacteristicArray (NULL), mDifferenceArray (NULL), mUnnormalizedDifferenceArray(0), mNormsLeft (NULL), mNormsRight (NULL), mRelativeSizes (NULL), mSize (0), mDifferenceSize (0), mOmissionSize (0), mOmissionArray (NULL), mNumberOfLargePeaks (0), mLargeCharacteristicArray (NULL), mLargeDifferenceArray (NULL), mNumberOfLargeDifferences (0), mFirstIntervalFraction (-1.0), mSmallestIntervalFraction (-1.0), mMaxRelativeHeight (-1), mCorrelationAcceptanceThreshold (0.993), mCorrelationAutoAcceptanceThreshold (0.9975) // //, mLastHalfSize (0), mLastHalfCharacteristicArray (NULL), mLastHalfUnnormalizedDifferenceArray (NULL), //mLastHalfRelativeSizes (NULL), mLastHalfDifferenceSize (0), mLastHalfNormsLeft (NULL), mLastHalfNormsRight (NULL) { RGString TextInput (xmlString); RGBracketStringSearch CharacteristicsToken ("<Characteristics>", "</Characteristics>", TextInput); RGString CharacteristicsString; RGString HeightString; RGBracketStringSearch HeightToken ("<RelativeHeights>", "</RelativeHeights>", TextInput); RGBracketStringSearch OmissionSearch ("<Omissions>", "</Omissions>", TextInput); RGBracketStringSearch AcceptanceThresholdSearch ("<CorrelationAcceptanceThreshold>", "</CorrelationAcceptanceThreshold>", TextInput); RGBracketStringSearch AutoAcceptanceThresholdSearch ("<CorrelationAutoAcceptanceThreshold>", "</CorrelationAutoAcceptanceThreshold>", TextInput); RGString OmissionString; size_t endPosition; RGString token; RGString delim; RGString numberString; double minChar; double maxChar; RGDList tokens; double value; RGPDouble* valuePtr; double previous; double next; double cumulative; int i = 0; double temp; int k; int j; if (!CharacteristicsToken.FindNextBracketedString (0, endPosition, CharacteristicsString)) { Msg << "Internal Lane Standard named " << Name << " could not find Characteristics token from string\n"; Msg << TextInput << "\n"; Valid = FALSE; } else { RGStringTokenizer data (CharacteristicsString); data.AddDelimiter (' '); data.AddDelimiter (" "); data.AddDelimiter (" "); data.AddDelimiter (" "); data.AddDelimiter (" "); data.AddRemoveItem (','); data.AddDelimiter ('\t'); data.AddDelimiter ('\n'); while (data.NextToken (token, delim)) { if (token.Length () > 0) { value = token.ConvertToDouble (); valuePtr = new RGPDouble (value); if (tokens.Entries () == 0) { minChar = maxChar = value; tokens.Append (valuePtr); } else if (value < minChar) { minChar = value; tokens.Prepend (valuePtr); } else if (value > maxChar) { maxChar = value; tokens.Append (valuePtr); } else tokens.Insert (valuePtr); } } mSize = (int)tokens.Entries (); NCharacteristics = mSize; mCharacteristicArray = new double [mSize]; mDifferenceSize = mSize - 1; mDifferenceArray = new double [mDifferenceSize]; mUnnormalizedDifferenceArray = new double [mDifferenceSize]; mNormsLeft = new double [mDifferenceSize]; mNormsRight = new double [mDifferenceSize]; //mLastHalfSize = mSize / 2; //if (2 * mLastHalfSize < mSize) // mLastHalfSize += 1; //mLastHalfDifferenceSize = mLastHalfSize - 1; //mLastHalfCharacteristicArray = new double [mLastHalfSize]; //mLastHalfUnnormalizedDifferenceArray = new double [mLastHalfDifferenceSize]; //mLastHalfNormsLeft = new double [mLastHalfDifferenceSize]; //mLastHalfNormsRight = new double [mLastHalfDifferenceSize]; while (valuePtr = (RGPDouble*)tokens.GetFirst ()) { mCharacteristicArray [i] = valuePtr->GetDouble (); delete valuePtr; i++; } //int displacement = mSize - mLastHalfSize; // +0, +1, -1????? //for (i=0; i<mLastHalfSize; i++) // mLastHalfCharacteristicArray [i] = mCharacteristicArray [i + displacement]; previous = mCharacteristicArray [0]; for (i=0; i<mDifferenceSize; i++) { next = mCharacteristicArray [i+1]; mUnnormalizedDifferenceArray [i] = mDifferenceArray [i] = next - previous; previous = next; } //for (i=0; i<mLastHalfSize; i++) // mLastHalfUnnormalizedDifferenceArray [i] = mUnnormalizedDifferenceArray [i + displacement]; double norm = 0.0; for (i=0; i<mDifferenceSize; i++) norm += mDifferenceArray [i] * mDifferenceArray [i]; norm = sqrt (norm); if (norm > 0.0) { for (i=0; i<mDifferenceSize; i++) mDifferenceArray [i] /= norm; } cumulative = 0.0; for (i=0; i<mDifferenceSize; i++) { temp = mUnnormalizedDifferenceArray [i]; cumulative += temp * temp; mNormsLeft [i] = cumulative; } cumulative = 0.0; for (i=mDifferenceSize-1; i>=0; i--) { temp = mUnnormalizedDifferenceArray [i]; cumulative += temp * temp; mNormsRight [i] = cumulative; } //cumulative = 0.0; //for (i=0; i<mLastHalfDifferenceSize; i++) { // temp = mLastHalfUnnormalizedDifferenceArray [i]; // cumulative += temp * temp; // mLastHalfNormsLeft [i] = cumulative; //} //cumulative = 0.0; //for (i=mLastHalfDifferenceSize-1; i>=0; i--) { // temp = mLastHalfUnnormalizedDifferenceArray [i]; // cumulative += temp * temp; // mLastHalfNormsRight [i] = cumulative; //} MaxCharacteristic = maxChar; MinCharacteristic = minChar; double width = mCharacteristicArray [mSize - 1] - mCharacteristicArray [0]; if (width > 0.0) mFirstIntervalFraction = mUnnormalizedDifferenceArray [0] / width; else mFirstIntervalFraction = 1.0; double temp = mUnnormalizedDifferenceArray [0]; double value; for (i=0; i<mDifferenceSize; i++) { value = mUnnormalizedDifferenceArray [i]; if (value < temp) temp = value; } if (width > 0.0) mSmallestIntervalFraction = temp / width; else mSmallestIntervalFraction = 1.0; if (!HeightToken.FindNextBracketedString (0, endPosition, HeightString)) { mRelativeSizes = NULL; // mLastHalfRelativeSizes = NULL; } else { RGStringTokenizer data2 (HeightString); data2.AddDelimiter (' '); data2.AddDelimiter (" "); data2.AddDelimiter (" "); data2.AddDelimiter (" "); data2.AddDelimiter (" "); data2.AddRemoveItem (','); data2.AddDelimiter ('\t'); data2.AddDelimiter ('\n'); mRelativeSizes = new int [mSize]; for (k=0; k<mSize; k++) mRelativeSizes [k] = -1; k = 0; while (data2.NextToken (token, delim)) { if (token.Length () > 0) { token.ToUpper (); char first = token.GetFirstCharacter (); switch (first) { case 'H': mRelativeSizes [k] = 5; break; case 'L': mRelativeSizes [k] = 1; break; case 'M': if (token.Length () == 1) mRelativeSizes [k] = 3; else if (token.GetLastCharacter () == 'H') mRelativeSizes [k] = 4; else mRelativeSizes [k] = 2; break; default: mRelativeSizes [k] = -1; } } k++; if (k >= mSize) break; } //mLastHalfRelativeSizes = new int [mLastHalfSize]; //for (i=0; i<mLastHalfSize; i++) // mLastHalfRelativeSizes [i] = mRelativeSizes [i + displacement]; int maxRelativeSize = 0; int relativeSize; for (j=0; j<mSize; j++) { relativeSize = mRelativeSizes [j]; if (relativeSize > maxRelativeSize) maxRelativeSize = relativeSize; } int numberOfHighsInILS = 0; mMaxRelativeHeight = maxRelativeSize; for (j=0; j<mSize; j++) { if (mRelativeSizes [j] == maxRelativeSize) numberOfHighsInILS++; } mNumberOfLargePeaks = numberOfHighsInILS; mNumberOfLargeDifferences = numberOfHighsInILS - 1; mLargeCharacteristicArray = new double [numberOfHighsInILS]; if (mNumberOfLargeDifferences > 0) mLargeDifferenceArray = new double [mNumberOfLargeDifferences]; k = 0; for (j=0; j<mSize; j++) { if (mRelativeSizes [j] == maxRelativeSize) { mLargeCharacteristicArray [k] = mCharacteristicArray [j]; k++; } } if (mLargeDifferenceArray != NULL) { for (j=0; j<mNumberOfLargeDifferences; j++) mLargeDifferenceArray [j] = mLargeCharacteristicArray [j + 1] - mLargeCharacteristicArray [j]; } } if (OmissionSearch.FindNextBracketedString (0, endPosition, OmissionString)) { RGStringTokenizer omissionData (OmissionString); omissionData.AddDelimiter (' '); omissionData.AddDelimiter (" "); omissionData.AddDelimiter (" "); omissionData.AddDelimiter (" "); omissionData.AddDelimiter (" "); omissionData.AddRemoveItem (','); omissionData.AddDelimiter ('\t'); omissionData.AddDelimiter ('\n'); while (omissionData.NextToken (token, delim)) { if (token.Length () > 0) { value = token.ConvertToDouble (); valuePtr = new RGPDouble (value); if (tokens.Entries () == 0) { minChar = maxChar = value; tokens.Append (valuePtr); } else if (value < minChar) { minChar = value; tokens.Prepend (valuePtr); } else if (value > maxChar) { maxChar = value; tokens.Append (valuePtr); } else tokens.Insert (valuePtr); } } mOmissionSize = (int)tokens.Entries (); if (mOmissionSize == 0) return; mOmissionArray = new double [mOmissionSize]; i = 0; while (valuePtr = (RGPDouble*)tokens.GetFirst ()) { mOmissionArray [i] = valuePtr->GetDouble (); delete valuePtr; i++; } } } cout << "ILS Name = " << Name.GetData () << endl; if (!AcceptanceThresholdSearch.FindNextBracketedString (0, endPosition, numberString)) cout << "\tCould not find ILS acceptance threshold...using " << mCorrelationAcceptanceThreshold << endl; else { mCorrelationAcceptanceThreshold = numberString.ConvertToDouble (); cout << "\tFrom ILS settings...ILS acceptance threshold = " << mCorrelationAcceptanceThreshold << endl; } if (!AutoAcceptanceThresholdSearch.FindNextBracketedString (0, endPosition, numberString)) cout << "\tCould not find ILS auto acceptance threshold...using default value = " << mCorrelationAutoAcceptanceThreshold << endl << endl; else { mCorrelationAutoAcceptanceThreshold = numberString.ConvertToDouble (); cout << "\tFrom ILS settings...ILS auto acceptance threshold = " << mCorrelationAutoAcceptanceThreshold << endl << endl; } }
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 (); }
Locus* Bins :: AssembleLocusFromLineStrings () { // uses current values in mLocusLineStrings Locus* newLocus = new Locus (); int nLines = mLocusLineStrings.Length (); SplitLocusLine (mLocusLineStrings [0]); // This should give us the name field RGString name = mLocusLineFieldString [1]; cout << "Locus name = " << name.GetData () << endl; //cout << "Bins locus line 1: "; int i; int len = mLocusLineFieldString.Length (); //for (i=0; i<len; i++) { // cout << mLocusLineFieldString [i].GetData (); // if (i < len - 1) // cout << ", "; //} //cout << endl; RGString firstAlleleName; int firstLocusBP; double firstILSBP; double lastILSBP; RGString firstExtendedAlleleName; RGString lastExtendedAlleleName; int lineForFirstAllele = 0; for (i=1; i<nLines; i++) { SplitLocusLine (mLocusLineStrings [i]); if (mLocusLineFieldString.Length () < 4) { cout << "Could not find first allele for locus " << name.GetData () << endl; delete newLocus; return NULL; } if (mLocusLineFieldString.Length () >= 5) { if (mLocusLineFieldString [4] == "virtual") { if (i == 1) { firstExtendedAlleleName = mLocusLineFieldString [0]; } continue; } } firstAlleleName = mLocusLineFieldString [0]; firstILSBP = mLocusLineFieldString [1].ConvertToDouble (); firstLocusBP = (int) floor (firstILSBP + 0.5); lineForFirstAllele = i; break; } if (firstExtendedAlleleName.Length () == 0) firstExtendedAlleleName = firstAlleleName; bool foundLastExtendedAllele = false; for (i=nLines-1; i>lineForFirstAllele; i--) { SplitLocusLine (mLocusLineStrings [i]); if (mLocusLineFieldString.Length () < 4) continue; if (!foundLastExtendedAllele) { lastExtendedAlleleName = mLocusLineFieldString [0]; foundLastExtendedAllele = true; } if ((mLocusLineFieldString.Length () >= 5) && (mLocusLineFieldString [4] == "virtual")) continue; lastILSBP = mLocusLineFieldString [1].ConvertToDouble (); break; } if (lastExtendedAlleleName.Length () == 0) { cout << "Could not locate last extended allele name for locus: " << name.GetData () << endl; delete newLocus; return NULL; } newLocus->SetFirstCoreAllele (firstAlleleName); newLocus->SetFirstExtendedAllele (firstExtendedAlleleName); newLocus->SetLastExtendedAllele (lastExtendedAlleleName); newLocus->SetMinMaxSearchILSBP (firstILSBP, lastILSBP); // These will have to be adjusted later when core repeat number is known newLocus->SetFirstCoreLocusBP (firstLocusBP); newLocus->SetName (name); // Need to add to Locus ability to compute first and last extended bp return newLocus; }