fnames=QtWidgets.QFileDialog.getOpenFileNames(self,'Select TrueMatch result file',dsetpath,'text file (*.txt)')[0]
iflen(fnames)>1:
QtWidgets.QMessageBox.about(self,'Info','The following order of files was loaded. If incorrect, please call a coder!\n{}'.format('\n'.join([fnameforfnameinfnames])))
defgetImportFiles(self):
dsetpath=self.analysisParent.dataset.path
self.fnames=QtWidgets.QFileDialog.getOpenFileNames(self,'Select TrueMatch result file',dsetpath,'text file (*.txt)')[0]
self.trueMatchResults=[]
forfileindex,fnameinenumerate(fnames):
iflen(self.fnames)>1:
self.sortWindow=SortImportFiles(self,self.fnames)
else:
self.runCalculations()
defrunCalculations(self):
allResults=[]
numSpectra=0
forfileindex,fnameinenumerate(self.fnames):
withopen(fname)asfile:
iffileindex==0:
forlineinfile:
self.trueMatchResults.append(line)
else:##for additional files skip first line (header..)
forlineindex,lineinenumerate(file):
iflineindex>0:
self.trueMatchResults.append(line)
self.runCalculations()
currentResults=[]
forlineIndex,lineinenumerate(file):
iflineIndex==0:
line=line.strip().split(';')[:-1]#disregard the last entry of each line, as each line ends with ; <- that produces an empty entry...
assertline[0]=='Search Spectrum Name','Assertion Error in loadTrueMatchResults'
#detect, whether one- or multicomponent-search was done
ifline[-1]=='IsMarked':
numhits=np.int(line[-2].split(' ')[-1])
numcomps=1
else:
numhits=np.int(line[-1].split(' ')[-1])
numcomps=np.int(line[-1].split(' ')[-3])
else:
currentResults.append(line)
numSpectra+=1
allResults.append(currentResults)
ifnumSpectra>0:
print('{} components, {} hits per sample, {} spectra'.format(numcomps,numhits,numSpectra))
defformatResults(self,rawResults):#get rid of header line, first data interpretation
results=[]
forindex,lineinenumerate(rawResults):
ifindex==0:
line=line.strip().split(';')[:-1]#disregard the last entry of each line, as each line ends with ; <- that produces an empty entry...
assertline[0]=='Search Spectrum Name','Assertion Error in loadTrueMatchResults'
#detect, whether one- or multicomponent-search was done
ifline[-1]=='IsMarked':
numhits=np.int(line[-2].split(' ')[-1])
numcomps=1
else:
numhits=np.int(line[-1].split(' ')[-1])
numcomps=np.int(line[-1].split(' ')[-3])
else:
results.append(line)
assertsorted(addedIndices)==list(range(numSpectra)),f'mismatch in sorted indices in loadResults\bAdded {len(addedIndices)} assignments to {numSpectra} spectra'
assertnotNoneinself.polymertypes,'wrong assignments in loadResults'
assertnotNoneinself.hqis,'wrong assignments in loadResults'
polymertype,ok=QtWidgets.QInputDialog.getText(self,'Name of main component','Spectrum at index {} of result file {} is:'.format(curSpecIndex,resBatchIndex+1))