def __init__(self):
        # paths
        self.front_video_path = r"\front_video.avi"
        self.front_counter_path = r"\front_counter.csv"
        self.top_video_path = r"\top_video.avi"
        self.adc_path = r"\adc.bin"
        self.sync_path = r"\sync.bin"
        self.analysis_folder = "Analysis"
        self.analysis_file_name = r"\session.hdf5"

        # session.hdf5 structure
        self.fronttime_key = 'video/front/time'
        self.fronttrials_key = 'video/front/trials'
        self.toptime_key = 'video/top/time'
        self.paw_events_key = 'task/events/paws'
        self.good_trials_key = 'task/events/trials'
        self.trajectories_key = 'task/trajectories'

        # colums of trial_start_stop_info in session.hdf5
        self.trials_info_start_frame = "start frame"
        self.trials_info_stop_frame = "stop frame"
        self.trials_info_start_frame_time = "start frame time"
        self.trials_info_end_frame_time = "end frame time"
        self.trials_info_trial_duration = "trial duration"

        # colums of paw_events in session.hdf5
        self.blpaw = 'back left paw'
        self.brpaw = 'back right paw'
        self.flpaw = 'front left paw'
        self.frpaw = 'front right paw'
        self.trial_paw_event = 'trial of event'
        self.time_paw_event = 'time of event'

        # columns of trajectories in session.hdf5
        self.name_traj_point = 'name of trajectory point'
        self.trial_traj_point = 'trial of trajectory point'
        self.frame_traj_point = 'frame of trajectory point'
        self.time_traj_point = 'time of trajectory point'
        self.x_traj_point = 'X of trajectory point'
        self.y_traj_point = 'Y of trajectory point'

        # instance variables
        app = QtWidgets.QApplication(sys.argv)
        window = QtWidgets.QMainWindow()
        self.ui = Ui_RatShuttlingPawEventsGenerator()
        self.ui.setupUi(window)
        self.rec_freq = 8000
        self.ss_freq = 100
        self.session = ""
        self.front_video = ""
        self.top_video = ""
        self.corrected_frame_numbers = []
        self.cam_shutter_closing_samples = []
        self.analysis_exists = False
        self.data_loaded = False
        self.t = RunVideoThread(self.ui)
        self.trajectory_lines = []
        self.annotation = mpt.Annotation("", xy=(-1, -1))

        self.connect_slots()

        window.show()
        app.exec_()