Пример #1
0
class GenericTable(QtCore.QAbstractTableModel): 
  def __init__(self, data, headers, parent=None, *args): 
    QtCore.QAbstractTableModel.__init__(self, parent, *args) 
    self.arraydata = data
    self.headerdata = headers
  
  def rowCount(self, parent): 
    return len(self.arraydata) 
  
  def columnCount(self, parent): 
    if len(self.arraydata) > 0:
      return len(self.arraydata[0]) 
    else:
      return -1
  
  def data(self, index, role): 
    if not index.isValid(): 
        return QtCore.QVariant() 
    elif role != QtCore.Qt.DisplayRole: 
        return QtCore.QVariant() 
    return QtCore.QVariant(self.arraydata[index.row()][index.column()]) 
  
  def headerData(self, col, orientation, role):
    if orientation == QtCore.Qt.Horizontal and role == QtCore.Qt.DisplayRole:
        return QtCore.QVariant(self.headerdata[col])
    return QtCore.QVariant()
  
  def sort(self, Ncol, order):
    '''
    Sort table by given column number.
    '''
    if len(self.arraydata) == 0:
      return
    
    self.emit(QtCore.SIGNAL("layoutAboutToBeChanged()"))
      
    dataIsNumeric = isNumber(self.arraydata[0][Ncol])
    
    if dataIsNumeric:
      self.arraydata = sorted(self.arraydata , key = operator.itemgetter(Ncol))
    else:
      self.arraydata = SortTableStrCol(self.arraydata, Ncol)      
        
    if order == QtCore.Qt.DescendingOrder:
        self.arraydata.reverse()
    self.emit(QtCore.SIGNAL("layoutChanged()"))
    
  def save(self, filename):
    fout = open(filename, 'w')
    for header in self.headerdata:
      fout.write(str(header) + '\t')
    fout.write('\n')
      
    for row in self.arraydata:
      for item in row:
        fout.write(str(item) + '\t')
      fout.write('\n')
      
    fout.close()
Пример #2
0
class GenericTable(QtCore.QAbstractTableModel): 
	def __init__(self, data, headers, parent=None, *args): 
		QtCore.QAbstractTableModel.__init__(self, parent, *args) 
		self.arraydata = data
		self.headerdata = headers
	
	def rowCount(self, parent): 
		return len(self.arraydata) 
	
	def columnCount(self, parent): 
		if len(self.arraydata) > 0:
			return len(self.arraydata[0]) 
		else:
			return -1
	
	def data(self, index, role): 
		if not index.isValid(): 
				return QtCore.QVariant() 
		elif role != QtCore.Qt.DisplayRole: 
				return QtCore.QVariant() 
		return QtCore.QVariant(self.arraydata[index.row()][index.column()]) 
	
	def headerData(self, col, orientation, role):
		if orientation == QtCore.Qt.Horizontal and role == QtCore.Qt.DisplayRole:
				return QtCore.QVariant(self.headerdata[col])
		return QtCore.QVariant()
	
	def sort(self, Ncol, order):
		'''
		Sort table by given column number.
		'''
		if len(self.arraydata) == 0:
			return
		
		self.emit(QtCore.SIGNAL("layoutAboutToBeChanged()"))
			
		dataIsNumeric = isNumber(self.arraydata[0][Ncol])
		
		if dataIsNumeric:
			self.arraydata = SortTableNumericStrCol(self.arraydata, Ncol)
		else:
			self.arraydata = SortTableStrCol(self.arraydata, Ncol)			
				
		if order == QtCore.Qt.DescendingOrder:
				self.arraydata.reverse()
		self.emit(QtCore.SIGNAL("layoutChanged()"))
		
	def save(self, filename):
		fout = open(filename, 'w')
		for header in self.headerdata:
			fout.write(str(header) + '\t')
		fout.write('\n')
			
		for row in self.arraydata:
			for item in row:
				fout.write(str(item) + '\t')
			fout.write('\n')
			
		fout.close()
Пример #3
0
    def saveSummaryTable(self, filename, statsTestResults, sampleName1,
                         sampleName2, coverage):
        tableData = statsTestResults.tableData(True)

        # update table summarizing statistical results
        oneMinAlphaStr = str((1.0 - coverage))
        tableHeadings = list(statsTestResults.profile.hierarchyHeadings)
        tableHeadings += [sampleName1, sampleName2]
        tableHeadings += ['Parent seq. 1', 'Parent seq. 2']
        tableHeadings += ['Rel. freq. 1 (%)', 'Rel. freq. 2 (%)']
        tableHeadings += ['p-values', 'p-values (corrected)']
        tableHeadings += ['Effect size']
        tableHeadings += [str(coverage * 100) + '% lower CI']
        tableHeadings += [str(coverage * 100) + '% upper CI']
        tableHeadings += ['Power (alpha = ' + oneMinAlphaStr + ')']
        tableHeadings += [
            'Equal sample size (alpha = ' + oneMinAlphaStr + '; power = 0.80)'
        ]

        tableData = SortTableStrCol(tableData, 0)

        fout = open(filename, 'w')
        for heading in tableHeadings:
            fout.write(heading + '\t')
        fout.write('\n')

        for row in tableData:
            for entry in row:
                fout.write(str(entry) + '\t')
            fout.write('\n')

        fout.close()
Пример #4
0
 def sort(self, Ncol, order):
   '''
   Sort table by given column number.
   '''
   if len(self.arraydata) == 0:
     return
   
   self.emit(QtCore.SIGNAL("layoutAboutToBeChanged()"))
     
   dataIsNumeric = isNumber(self.arraydata[0][Ncol])
   
   if dataIsNumeric:
     self.arraydata = sorted(self.arraydata , key = operator.itemgetter(Ncol))
   else:
     self.arraydata = SortTableStrCol(self.arraydata, Ncol)      
       
   if order == QtCore.Qt.DescendingOrder:
       self.arraydata.reverse()
   self.emit(QtCore.SIGNAL("layoutChanged()"))
Пример #5
0
	def sort(self, Ncol, order):
		'''
		Sort table by given column number.
		'''
		if len(self.arraydata) == 0:
			return
		
		self.emit(QtCore.SIGNAL("layoutAboutToBeChanged()"))
			
		dataIsNumeric = isNumber(self.arraydata[0][Ncol])
		
		if dataIsNumeric:
			self.arraydata = SortTableNumericStrCol(self.arraydata, Ncol)
		else:
			self.arraydata = SortTableStrCol(self.arraydata, Ncol)
				
		if order == QtCore.Qt.DescendingOrder:
			self.arraydata.reverse()
		self.emit(QtCore.SIGNAL("layoutChanged()"))
Пример #6
0
    def saveSummaryTable(self, filename, statsTestResults):
        tableData, tableHeadings = statsTestResults.tableData(True)

        tableData = SortTableStrCol(tableData, 0)

        fout = open(filename, 'w')
        for heading in tableHeadings:
            fout.write(heading + '\t')
        fout.write('\n')

        for row in tableData:
            for entry in row:
                fout.write(str(entry) + '\t')
            fout.write('\n')

        fout.close()