def main():
    def on_main_window_close():
        window._updater.stop()
        window._updater.wait(100)
        app.processEvents()
        window._updater.quit()
        try:
            logger.info("Deleting main window ...")
            window.deleteLater()
        except RuntimeError:
            logger.info("Window has already been deleted")

    app = QtWidgets.QApplication(sys.argv)

    logger.debug("Assembling pipeline")
    pipeline = assemble_pipeline(None, None, inverse_method="beamformer")
    # pipeline = load_pipeline("/home/dmalt/my_pipeline.json")
    logger.debug("Finished assembling pipeline")
    # Create window
    window = GUIWindow(app, pipeline=pipeline)
    # window.init_ui()
    window.show()

    pipeline._children[0].loop_the_file = True
    app.aboutToQuit.connect(on_main_window_close)
    app.exec_()
pipeline.add_processor(inverse_model)

envelope_extractor = processors.EnvelopeExtractor(0.99)
pipeline.add_processor(envelope_extractor)


# Outputs
signal_viewer = outputs.SignalViewer()
pipeline.add_output(signal_viewer, parent=linear_filter)

global_mode = outputs.BrainViewer.LIMITS_MODES.GLOBAL
three_dee_brain = outputs.BrainViewer(limits_mode=global_mode,
                                      buffer_length=6)
pipeline.add_output(three_dee_brain)

window = GUIWindow(pipeline=pipeline)
window.init_ui()
window.setWindowFlags(QtCore.Qt.WindowStaysOnTopHint)
window.show()


# base_controls = window._controls._base_controls
# processors_controls = base_controls.processors_controls

window.initialize()

bad_channel_labels = ['Fp2', 'F5', 'C5', 'F2', 'PPO10h', 'POO1', 'FCC2h']
preprocessing.mne_info['bads'] = bad_channel_labels
preprocessing._samples_to_be_collected = 0
preprocessing._enough_collected = True
Beispiel #3
0
def main():
    def on_main_window_close():
        thread.stop()
        thread.wait(100)
        app.processEvents()
        thread.quit()
        try:
            logger.info('Deleting main window ...')
            window.deleteLater()
        except RuntimeError:
            logger.info('Window has already been deleted')

    app = QtWidgets.QApplication(sys.argv)

    logger.debug('Assembling pipeline')
    pipeline = assemble_pipeline(None, None, inverse_method='beamformer')
    logger.debug('Finished assembling pipeline')
    # Create window
    window = GUIWindow(pipeline=pipeline)
    window.init_ui()
    window.show()

    if not args.data:
        try:
            file_tuple = QtWidgets.QFileDialog.getOpenFileName(
                caption="Select Data",
                filter="Brainvision (*.eeg *.vhdr *.vmrk);;"
                "MNE-python (*.fif);;"
                "European Data Format (*.edf)")
            file_path = file_tuple[0]
        except Exception:
            logger.error("DATA FILE IS MANDATORY!")
    else:
        file_path = args.data.name

    if not file_path:
        raise Exception("DATA PATH IS MANDATORY!")

    if not args.forward:
        dialog = FwdSetupDialog()
        dialog.exec()
        fwd_path = dialog.fwd_path
        subject = dialog.subject
        subjects_dir = dialog.subjects_dir
    else:
        fwd_path = args.forward.name

    if not fwd_path:
        raise Exception("FORWARD SOLUTION IS MANDATORY!")
        logger.info('Exiting ...')

    pipeline.all_nodes[0].file_path = file_path
    pipeline.all_nodes[3]._user_provided_forward_model_file_path = fwd_path
    pipeline.all_nodes[5].surfaces_dir = op.join(subjects_dir, subject)

    QTimer.singleShot(0, window.initialize)  # initializes all pipeline nodes

    thread = AsyncUpdater(app, pipeline)
    window.run_toggle_action.triggered.connect(thread.toggle)

    # Show window and exit on close
    app.aboutToQuit.connect(on_main_window_close)
    sys.exit(app.exec_())