Пример #1
0
    def __init__(self, dProject, parent=None):
        QtGui.QWidget.__init__(self, parent)

        ## Region of Interest
        self.fromSpinBox = QtGui.QSpinBox()
        self.fromSpinBox.setRange(0, len(dProject['dData']['RX']))
        self.fromSpinBox.setValue(0)
        self.fromSpinBox.setSingleStep(1)

        self.toSpinBox = QtGui.QSpinBox()
        self.toSpinBox.setRange(0, len(dProject['dData']['RX']))
        self.toSpinBox.setValue(len(dProject['dData']['RX']))
        self.toSpinBox.setSingleStep(1)

        fromLabel = QtGui.QLabel('From')
        toLabel = QtGui.QLabel('To')

        self.groupBox = QtGui.QGroupBox(self.tr('Region of Interest'))
        self.groupBox.setCheckable(True)
        self.groupBox.setChecked(False)
        layoutRoi = myHBoxLayout()
        layoutRoi.addWidget(fromLabel)
        layoutRoi.addWidget(self.fromSpinBox)
        layoutRoi.addWidget(toLabel)
        layoutRoi.addWidget(self.toSpinBox)

        self.groupBox.setLayout(layoutRoi)
Пример #2
0
    def __init__(self, dProject,parent=None):
        QtGui.QWidget.__init__(self, parent)
        
        self.labelTitle = QtGui.QLabel(self.tr("<center><b>SMOOTHING</b></center>"))
        self.name="Smooth"
        self.toolID=2

        
        self.dProject=dProject 
        self.dProjOut=deepcopy(dProject)  
        self.isToolApplied=False   
#Saturation Correction: Analysis of saturated data points by creating a synthetic peak based upon the peak shape before and after saturation.
        self.checkBoxSatd=QtGui.QCheckBox('Saturation Correction')  
        self.checkBoxSatd.setChecked(True)
####  Group  Box Radio
        self.radioButton0 = QtGui.QRadioButton(self.tr("Triangular Moving Aver."))
        self.radioButton1 = QtGui.QRadioButton(self.tr("Rectangular Moving Aver."))
        self.radioButton2 = QtGui.QRadioButton(self.tr("Gaussian"))
        self.radioButton0.setChecked(True)
        
 #### Window Size
        windowSizeLabel = QtGui.QLabel("Window Size:")
        self.spinBox1 = QtGui.QSpinBox()
        self.spinBox1.setRange(1, 10)
        self.spinBox1.setValue(1)
        self.spinBox1.setSingleStep(1)
        
        layout1 = myGridLayout()
        layout1.addWidget(self.radioButton0,0,0,1,2)
        layout1.addWidget(self.radioButton1,1,0,1,2)
        layout1.addWidget(self.radioButton2,2,0,1,2)
        layout1.addWidget(windowSizeLabel,3,0)
        layout1.addWidget(self.spinBox1,3,1)
        
        self.groupBox0 = QtGui.QGroupBox(self.tr("Smoothing"))
        self.groupBox0.setCheckable(True)
        self.groupBox0.setLayout(layout1)
 
### Button Box
 
        self.buttonBox =ToolButton()
        
        self.groupBoxROI=GroupBoxROI(self.dProject)
        self.applyChannel=ApplyChannel(self.dProject)
        
        mainLayout=QtGui.QVBoxLayout()
        mainLayout.addWidget(self.labelTitle)
        mainLayout.addWidget(self.checkBoxSatd)
        mainLayout.addWidget(self.groupBox0)       
        mainLayout.addWidget(self.groupBoxROI.groupBox)
        mainLayout.addWidget(self.applyChannel.groupBox)
        mainLayout.addStretch()
        mainLayout.addWidget(self.buttonBox)
      
        self.setLayout(mainLayout)
Пример #3
0
    def __init__(self, dProject,parent=None):
        QtGui.QWidget.__init__(self, parent)
        
        self.labelTitle = QtGui.QLabel(self.tr("<center><b>BASELINE ADJUSTMENT</b></center>"))
        self.name="Baseline Adjustment"
        self.toolID=3
        
        self.dProject=dProject
        self.isToolApplied=False
#### Window Size
        windowLabel = QtGui.QLabel("Baseline Window:")
        self.spinBox0 = QtGui.QSpinBox()
        self.spinBox0.setRange(0,200)
        self.spinBox0.setValue(60)
        self.spinBox0.setSingleStep(1)
        
        self.smoothCheckBox = QtGui.QCheckBox("Smooth the Baseline Drift")
        #self.smoothCheckBox.setChecked(True)
          
        layout2=myGridLayout()
        layout2.addWidget(windowLabel,0,0)
        layout2.addWidget(self.spinBox0,0,1)
        layout2.addWidget(self.smoothCheckBox,1,0)
        groupBoxParameter = QtGui.QGroupBox()
        groupBoxParameter.setLayout(layout2)

### Button Box
        self.buttonBox = ToolButton() 
  
        self.groupBoxROI=GroupBoxROI(self.dProject)
        self.applyChannel=ApplyChannel(self.dProject)
        
        mainLayout=QtGui.QVBoxLayout()
        mainLayout.addWidget(self.labelTitle)
        mainLayout.addWidget(groupBoxParameter)
        mainLayout.addWidget(self.groupBoxROI.groupBox) 
        mainLayout.addWidget(self.applyChannel.groupBox)
        mainLayout.addStretch()
        mainLayout.addWidget(self.buttonBox)
        self.setLayout(mainLayout)
Пример #4
0
    def __init__(self, dVar, chKeyRS, parent=None):
        super(DlgFigureSet, self).__init__(parent)
        self.setAttribute(QtCore.Qt.WA_DeleteOnClose)
        self.setModal(False)

        self.labelTitle = QtGui.QLabel(
            self.tr("<center><b>FIGURE SETTING</b></center>"))
        self.name = "Figure Setting"
        self.toolID = 3

        self.dVar = dVar.copy()
        self.chKeyRS = chKeyRS

        # Size, width, height, resolution,

        labelT = QtGui.QLabel('Size style')
        self.comboBox0 = QtGui.QComboBox()
        self.comboBox0.addItems(['Percentage', 'Inches'])

        labelW = QtGui.QLabel("Width")
        self.spinBoxWidth = QtGui.QSpinBox()
        self.spinBoxWidth.setRange(10, 200)
        self.spinBoxWidth.setValue(100)
        self.spinBoxWidth.setSingleStep(10)
        self.spinBoxWidth.setSuffix(" %")

        labelH = QtGui.QLabel("Height")
        self.spinBoxHeight = QtGui.QSpinBox()
        self.spinBoxHeight.setRange(10, 200)
        self.spinBoxHeight.setValue(100)
        self.spinBoxHeight.setSingleStep(10)
        self.spinBoxHeight.setSuffix(" %")

        self.checkBoxFitWindow = QtGui.QCheckBox("Fit into Window")

        labelR = QtGui.QLabel("Zoom")
        self.spinBoxR = QtGui.QSpinBox()
        self.spinBoxR.setRange(10, 1000)
        self.spinBoxR.setValue(100)
        self.spinBoxR.setSingleStep(50)

        layout0 = myGridLayout()
        layout0.addWidget(self.checkBoxFitWindow, 0, 0, 1, 2)
        layout0.addWidget(labelT, 1, 0)
        layout0.addWidget(self.comboBox0, 1, 1)
        layout0.addWidget(labelW, 2, 0)
        layout0.addWidget(self.spinBoxWidth, 2, 1)
        layout0.addWidget(labelH, 3, 0)
        layout0.addWidget(self.spinBoxHeight, 3, 1)
        layout0.addWidget(labelR, 4, 0)
        layout0.addWidget(self.spinBoxR, 4, 1)

        groupBox0 = QtGui.QGroupBox(self.tr('Figure Options'))
        groupBox0.setLayout(layout0)

        labelSubs = {}
        self.spinBoxSubs = {}
        self.keySubs = ['top', 'bottom', 'left', 'right']  #,'wspace','hspace']
        for key in self.keySubs:
            labelSubs[key] = QtGui.QLabel(key)
            self.spinBoxSubs[key] = QtGui.QDoubleSpinBox()
            self.spinBoxSubs[key].setRange(0, 1)
            self.spinBoxSubs[key].setValue(self.dVar[key])
            self.spinBoxSubs[key].setSingleStep(0.01)

        layout1 = myGridLayout()
        i = 0
        while i < len(self.keySubs):
            key = self.keySubs[i]
            layout1.addWidget(labelSubs[key], i, 0)
            layout1.addWidget(self.spinBoxSubs[key], i, 1)
            i += 1
            key = self.keySubs[i]
            layout1.addWidget(labelSubs[key], i - 1, 2)
            layout1.addWidget(self.spinBoxSubs[key], i - 1, 3)
            i += 1

        groupBox1 = QtGui.QGroupBox(self.tr('Subplot Configuration'))
        groupBox1.setLayout(layout1)

        self.checkBoxSatd = QtGui.QCheckBox('Draw Saturated Points')
        self.lanelXLim = QtGui.QLabel('Set Xlim')
        self.fromSpinBox = QtGui.QSpinBox()
        self.toSpinBox = QtGui.QSpinBox()
        fromLabel = QtGui.QLabel('From')
        toLabel = QtGui.QLabel('To')

        self.buttonBox = QtGui.QDialogButtonBox(QtGui.QDialogButtonBox.Apply
                                                | QtGui.QDialogButtonBox.Close)

        mainLayout = QtGui.QVBoxLayout()
        mainLayout.addWidget(groupBox0)
        mainLayout.addWidget(groupBox1)
        mainLayout.addWidget(self.buttonBox)
        self.setLayout(mainLayout)

        self.title = "Channel Attributes"
        self.setWindowTitle(self.title)
Пример #5
0
    def __init__(self,dProject,dProjRef,parent=None):
        QtGui.QWidget.__init__(self, parent)
        
        self.labelTitle = QtGui.QLabel(self.tr("<center><b>APPLY ALL TOOLS</b></center>"))
        self.name="Apply All Tools"
        self.toolID=1
        
        self.dProject=dProject
        self.dProjOut=deepcopy(dProject)
        self.dProjRef=deepcopy(dProjRef)
        
        label0 = QtGui.QLabel("Start Point")
        label1 = QtGui.QLabel("End Point")
        start,end=0,len(self.dProject['dData']['RX']) # findRoi(self.dCurData['RXS'])
        
        self.spinBox0 = QtGui.QSpinBox()
        self.spinBox0.setRange(0, len(self.dProject['dData']['RX']))
        self.spinBox0.setValue(start)
        self.spinBox0.setSingleStep(1)
        
        self.spinBox1 = QtGui.QSpinBox()
        self.spinBox1.setRange(0, len(self.dProject['dData']['RX']))
        self.spinBox1.setValue(end)
        self.spinBox1.setSingleStep(1)
        
        layout0=QtGui.QHBoxLayout()
        layout0.addWidget(label0)
        layout0.addWidget(self.spinBox0)
        layout0.addWidget(label1)
        layout0.addWidget(self.spinBox1)
        
        groupBox0=QtGui.QGroupBox('Select Region of Interest')
        groupBox0.setLayout(layout0)
        
        self.checkBox01=QtGui.QCheckBox("Saturation Correction") 
        self.checkBox0=QtGui.QCheckBox("Smoothing Windows Size")
        self.checkBox1=QtGui.QCheckBox("Mobility Shift")
        self.checkBox2=QtGui.QCheckBox("Baseline Adjustment Window")
        self.checkBox3=QtGui.QCheckBox("Signal Decay Correction")
        self.checkBox4=QtGui.QCheckBox("Signal Alignment")
        
        self.checkBox01.setChecked(True)
        self.checkBox0.setChecked(True)
        self.checkBox1.setChecked(True)
        self.checkBox2.setChecked(True)
        self.checkBox3.setChecked(True)
        self.checkBox4.setChecked(True)
         
        self.spinBox2 = QtGui.QSpinBox()
        self.spinBox2.setRange(0, 10)
        self.spinBox2.setValue(1)
        self.spinBox2.setSingleStep(1)
        
        self.spinBox4 = QtGui.QSpinBox()
        self.spinBox4.setRange(0, 500)
        self.spinBox4.setValue(60)
        self.spinBox4.setSingleStep(1)  
        
        layout1=QtGui.QGridLayout()
        layout1.addWidget(self.checkBox01,0,0)
        layout1.addWidget(self.checkBox0,1,0)
        layout1.addWidget(self.spinBox2,1,1)
        layout1.addWidget(self.checkBox1,2,0)
        layout1.addWidget(self.checkBox2,3,0)
        layout1.addWidget(self.spinBox4,3,1)
        layout1.addWidget(self.checkBox3,4,0)
        layout1.addWidget(self.checkBox4,5,0)
        groupBox1=QtGui.QGroupBox('Select Tools')
        groupBox1.setLayout(layout1)
        
 ### Button Box
        self.buttonBox = ToolButton() 
        
        mainLayout = QtGui.QVBoxLayout()
        mainLayout.addWidget(self.labelTitle)
        mainLayout.addWidget(groupBox0)
        mainLayout.addWidget(groupBox1)
        mainLayout.addStretch()
        mainLayout.addWidget(self.buttonBox)
        self.setLayout(mainLayout)
        self.isToolApplied=False 
Пример #6
0
    def __init__(self, dProject,dProjRef,parent=None):
        QtGui.QWidget.__init__(self, parent)
        
        self.labelTitle = QtGui.QLabel(self.tr("<center><b>REGION OF INTEREST</b></center>"))
        self.name="Region of Interest"
        self.toolID=1
        self.hint = QtGui.QLabel(self.tr("HINT: Press Key 'F' button and click the axes to set From. "
                                         "Press Key 'T' button and click the axes  to set To" 
                                                                    ))
        self.hint.setWordWrap(True)
        self.font = QtGui.QFont() 
        self.font.setPointSize(10)
        self.hint.setFont(self.font)
        self.dProject=dProject
        self.dProjRef=dProjRef 
        self.dProjOut=deepcopy(dProject) 
        self.isToolApplied=False
        
        self.roi={}
        for key in self.dProject['chKeyRS']:
            self.roi[key]=[0,len(self.dProject['dData'][key])]
         
        labelFrom = QtGui.QLabel("From ")
        labelTo = QtGui.QLabel("To   ")
        
        labelPlus=QtGui.QLabel('(+) Reaction')
        self.spinBoxPlusFrom=QtGui.QSpinBox()
        self.spinBoxPlusTo=QtGui.QSpinBox()
        self.spinBoxPlusFrom.setRange(0,len(self.dProject['dData']['RX']))
        self.spinBoxPlusTo.setRange(0,len(self.dProject['dData']['RX']))
        self.spinBoxPlusTo.setValue(len(self.dProject['dData']['RX']))
        
        labelMinus=QtGui.QLabel('(-) Reaction')
        self.spinBoxMinusFrom=QtGui.QSpinBox()
        self.spinBoxMinusTo=QtGui.QSpinBox()
        self.spinBoxMinusFrom.setRange(0,len(self.dProject['dData']['BG']))
        self.spinBoxMinusTo.setRange(0,len(self.dProject['dData']['BG']))
        self.spinBoxMinusTo.setValue(len(self.dProject['dData']['BG']))

        layout0=myGridLayout()
        layout0.addWidget(labelFrom,0,1)
        layout0.addWidget(labelTo,0,2)
        layout0.addWidget(labelPlus,1,0)
        layout0.addWidget( self.spinBoxPlusFrom,1,1)
        layout0.addWidget( self.spinBoxPlusTo,1,2)
        layout0.addWidget(labelMinus,2,0)
        layout0.addWidget( self.spinBoxMinusFrom,2,1)
        layout0.addWidget( self.spinBoxMinusTo,2,2)
        
        self.groupBox0=QtGui.QGroupBox()
        self.groupBox0.setLayout(layout0)
        
        self.buttunAuto=QtGui.QPushButton('Auto ROI by Reference')
        self.connect(self.buttunAuto,QtCore.SIGNAL("clicked()"),self.autoFindROI)
        
        if not self.dProject['isRef']:
            self.buttunAuto.setEnabled(False)
        self.buttonBox = ToolButton()
        
        mainLayout=QtGui.QVBoxLayout()
        mainLayout.addWidget(self.labelTitle)
        mainLayout.addWidget(self.groupBox0)
        mainLayout.addWidget(self.buttunAuto)
        
        mainLayout.addWidget(self.hint)
        mainLayout.addStretch()
        mainLayout.addWidget(self.buttonBox)
        self.setLayout(mainLayout)
Пример #7
0
    def __init__(self, dProject, parent=None):
        QtGui.QWidget.__init__(self, parent)

        self.title = QtGui.QLabel(
            self.tr("<center><b>SEQUENCE ALIGNMENT</b></center>"))
        self.name = "Sequence Alignment"
        self.toolID = 1

        self.dProject = dProject
        self.dProjOut = deepcopy(dProject)

        self.fileReadSeq = DlgSelectFile(
            'Seq. File', "Base Files (*.txt *.fasta *.gbk *.seq )",
            self.dProject['dir'])
        self.fileReadSeq.lineEdit0.setText(self.dProject['fNameSeq'])
        self.seqRNA3to5 = self.dProjOut['RNA'][::-1]
        self.seqRNA3to5N = changeNucToN(self.seqRNA3to5, self.dProjOut)
        self.NSeqRNA = len(self.dProjOut['RNA'])

        ###  SEQUENCE FIND
        label0 = QtGui.QLabel("Channel")
        label1 = QtGui.QLabel("ddNTP")
        label2 = QtGui.QLabel('Thres')

        self.comboBox0 = QtGui.QComboBox()
        self.comboBox1 = QtGui.QComboBox()
        self.comboBox2 = QtGui.QComboBox()
        self.comboBox3 = QtGui.QComboBox()

        self.spinBox0 = QtGui.QDoubleSpinBox()
        self.spinBox0.setRange(-3, 3)
        self.spinBox0.setValue(0.5)
        self.spinBox0.setSingleStep(0.1)

        choices0 = ['BGS1', 'RXS1']
        self.choicesNuc = ['ddC', 'ddG', 'ddA', 'ddT']
        self.nucNames = ['G', 'C', 'U', 'A']

        self.comboBox0.addItems(choices0)
        self.comboBox1.addItems(self.choicesNuc)
        self.comboBox1.setCurrentIndex(
            self.nucNames.index(self.dProject['nuc1']))

        self.radioSeqFind0 = QtGui.QRadioButton('Histogram')
        self.radioSeqFind1 = QtGui.QRadioButton('Background')

        layoutMethod = myHBoxLayout()
        layoutMethod.addWidget(self.radioSeqFind0)
        layoutMethod.addWidget(self.radioSeqFind1)

        gridLayout = myGridLayout()

        gridLayout.addWidget(label0, 0, 0)
        gridLayout.addWidget(label1, 0, 1)
        #      gridLayout.addWidget(label2, 0, 2)
        gridLayout.addWidget(self.comboBox0, 1, 0)
        gridLayout.addWidget(self.comboBox1, 1, 1)
        #     gridLayout.addWidget(self.spinBox0, 1, 2)

        if self.dProject[
                'isSeq2']:  #('RXS2' in self.dInput.keys()) and ('BGS2' in self.dInput.keys()):
            choices2 = ['BGS2', 'RXS2']
            self.comboBox2.addItems(choices2)
            self.comboBox3.addItems(self.choicesNuc)
            self.comboBox3.setCurrentIndex(
                self.nucNames.index(self.dProject['nuc2']))
            self.spinBox1 = QtGui.QDoubleSpinBox()
            self.spinBox1.setRange(-3, 3)
            self.spinBox1.setValue(0.5)
            self.spinBox1.setSingleStep(0.1)
            gridLayout.addWidget(self.comboBox2, 2, 0)
            gridLayout.addWidget(self.comboBox3, 2, 1)

    #    gridLayout.addWidget(self.spinBox1, 2, 2)

        self.checkBox0 = QtGui.QCheckBox('Check for high BG peaks')

        self.groupBoxBaseCall = QtGui.QGroupBox('Base Calling')
        self.groupBoxBaseCall.setLayout(gridLayout)
        self.groupBoxBaseCall.setCheckable(True)

        ##  LAYOUTS
        labelSetting2 = QtGui.QLabel("Seq Range: From")
        labelSetting3 = QtGui.QLabel("To:")
        labelSetting4 = QtGui.QLabel("Seq Start: ")

        self.spinBoxSeqRangeFrom = QtGui.QSpinBox()
        self.spinBoxSeqRangeTo = QtGui.QSpinBox()
        try:
            self.setSpinBoxSeq()
        except:
            pass
        self.spinBoxSeqOffset = QtGui.QSpinBox()
        self.spinBoxSeqOffset.setRange(0, len(self.dProject['RNA']))

        self.checkBoxLineDraw = QtGui.QCheckBox('Draw peak match lines')
        self.checkBoxLineDraw.setChecked(True)
        layoutSetting = myGridLayout()
        layoutSetting.addWidget(labelSetting2, 0, 0)
        layoutSetting.addWidget(self.spinBoxSeqRangeFrom, 0, 1)
        layoutSetting.addWidget(labelSetting3, 0, 2)
        layoutSetting.addWidget(self.spinBoxSeqRangeTo, 0, 3)
        #       layoutSetting.addWidget(self.checkBoxLineDraw,1,0,1,2)

        self.groupBoxSettings = QtGui.QGroupBox('Settings')
        self.groupBoxSettings.setLayout(layoutSetting)

        text = "HINT: Click a Nuc to change the type. \
                Press Key 'A' button and click to add a Nuc.\
                Press Key 'D' button and click to delete a Nuc. \
                Press Key 'Shift' button and select a peak to change position. "

        self.hint = hintLabel(text)

        self.connect(self.fileReadSeq.pushButton0, QtCore.SIGNAL("clicked()"),
                     self.changeSeqFile)

        self.buttonBox = ToolButton()

        mainLayout = QtGui.QVBoxLayout()
        mainLayout.addWidget(self.title)
        mainLayout.addWidget(self.fileReadSeq)
        mainLayout.addWidget(self.groupBoxBaseCall)
        mainLayout.addWidget(self.groupBoxSettings)
        mainLayout.addWidget(self.hint)
        mainLayout.addStretch()
        mainLayout.addWidget(self.buttonBox)
        self.setLayout(mainLayout)
        self.isToolApplied = False