How to interpret output from nilearn.glm.first_level.run_glm?

Hello! I’m trying to perform GLM on the parcel level (my data is already preprocessed and averaged across voxels). I’ve found the run_glm function from nilearn, but I don’t understand how to interpret my output and how I can get betas from this :frowning:

Thank you very much for your time

labels, results = run_glm(data_for_glm, design_matrix)

labels

array(['0.73', '0.51', '0.46', '0.67', '0.76', '0.74', '0.47', '0.41',
       '0.45', '0.55', '0.52', '0.53', '0.7', '0.28', '0.66', '0.45',
       '0.71', '0.45', '0.66', '0.58', '0.62', '0.5', '0.59', '0.05',
       '0.62', '0.53', '0.41', '0.47', '0.51', '0.33', '0.49', '0.25',
       '0.4', '0.2', '0.24', '0.02', '0.25', '0.18', '0.29', '0.14',
       '0.06', '0.32', '0.45', '0.53', '0.38', '0.6', '0.45', '0.57',
       '0.28', '0.71', '0.53', '0.49', '0.3', '0.38', '0.28', '0.46',
       '0.26', '-0.07', '0.05', '0.3', '0.17', '0.18', '0.33', '0.43',
       '0.35', '0.3', '0.56', '0.46', '0.52', '0.6', '0.59', '0.47',
       '0.38', '0.39', '0.38', '0.38', '0.49', '0.54', '0.49', '0.3',
       '0.46', '0.56', '0.55', '0.63', '0.43', '0.45', '0.41', '0.7',
       '0.47', '0.12', '0.48', '0.1', '0.34', '0.11', '0.62', '0.36',
       '0.45', '0.2', '0.2', '0.36', '0.18', '0.0', '0.18', '0.09',
       '0.29', '0.13', '0.23', '0.22', '0.24', '0.01', '0.1', '0.01',
       '0.19', '-0.04', '0.02', '0.65', '0.72', '0.15', '0.1', '0.14',
       '0.28', '0.11', '0.05', '0.22', '0.24', '0.03', '0.03', '0.19',
       '0.26', '0.53', '0.26', '0.42', '0.69', '0.5', '0.05', '0.33',
       '0.64', '0.49', '0.54', '0.66', '0.42', '0.58', '0.73', '0.8',
       '0.83', '0.7', '0.47', '0.75', '0.83', '0.66', '0.76', '0.53',
       '0.11', '0.34', '0.23', '0.68', '0.55', '0.69', '0.49', '0.18',
       '0.23', '0.19', '0.23', '0.09', '0.14', '0.0', '0.08', '-0.08',
       '0.42', '0.46', '0.28', '0.21', '0.06', '0.22', '0.41', '0.46',
       '0.32', '0.1', '0.16', '0.13', '0.77', '0.45', '0.5', '0.7',
       '0.67', '0.81', '0.49', '0.32', '0.51', '0.47', '0.22', '0.32',
       '0.77', '0.21', '0.7', '0.44', '0.59', '0.56', '0.46', '0.43',
       '0.52', '0.54', '0.4', '0.0', '0.44', '0.34', '0.23', '0.34',
       '0.11', '0.39', '0.6', '0.09', '0.32', '0.34', '0.16', '0.12',
       '0.14', '0.21', '0.07', '0.19', '0.04', '0.19', '0.38', '0.37',
       '0.33', '0.41', '0.41', '0.61', '0.46', '0.58', '0.4', '0.48',
       '0.41', '0.25', '0.13', '0.11', '0.01', '0.2', '0.13', '0.2',
       '0.38', '0.34', '0.31', '0.39', '0.47', '0.28', '0.48', '0.61',
       '0.6', '0.48', '0.62', '0.67', '0.41', '0.45', '0.46', '0.63',
       '0.5', '0.5', '0.48', '0.46', '0.1', '0.53', '0.66', '0.48',
       '0.52', '0.54', '0.55', '0.55', '0.4', '0.21', '0.44', '0.1',
       '-0.02', '0.03', '0.47', '0.43', '0.49', '0.4', '0.22', '0.27',
       '0.17', '0.13', '0.15', '0.16', '0.08', '0.18', '0.22', '0.34',
       '0.31', '0.08', '0.23', '0.11', '0.15', '0.03', '0.11', '0.46',
       '0.65', '0.0', '0.1', '0.06', '0.01', '0.0', '0.31', '0.09',
       '0.27', '0.01', '0.26', '0.23', '0.3', '0.47', '0.35', '0.34',
       '0.4', '-0.08', '0.14', '0.14', '0.6', '0.7', '0.22', '0.3', '0.4',
       '0.38', '0.47', '0.66', '0.36', '0.22', '0.38', '0.6', '0.67',
       '0.32', '0.81', '0.24', '0.13', '0.24', '0.0', '0.66', '0.6',
       '0.62', '0.36', '0.16', '0.04', '0.21', '0.13', '0.1', '0.42',
       '-0.01', '0.01', '0.09', '0.28', '0.53', '0.61', '0.09', '0.07',
       '0.09', '0.11', '0.28', '0.08', '0.24', '0.21', '0.19'],
      dtype='<U5')

results

{np.str_('-0.01'): <nilearn.glm.regression.RegressionResults at 0x7d523efcaa80>,
 np.str_('-0.02'): <nilearn.glm.regression.RegressionResults at 0x7d523f143a10>,
 np.str_('-0.04'): <nilearn.glm.regression.RegressionResults at 0x7d52457aeba0>,
 np.str_('-0.07'): <nilearn.glm.regression.RegressionResults at 0x7d52478fc290>,
 np.str_('-0.08'): <nilearn.glm.regression.RegressionResults at 0x7d523efc1f70>,
 np.str_('0.0'): <nilearn.glm.regression.RegressionResults at 0x7d523efc20c0>,
 np.str_('0.01'): <nilearn.glm.regression.RegressionResults at 0x7d523efc1b80>,
 np.str_('0.02'): <nilearn.glm.regression.RegressionResults at 0x7d5249a106b0>,
 np.str_('0.03'): <nilearn.glm.regression.RegressionResults at 0x7d5249a11cd0>,
 np.str_('0.04'): <nilearn.glm.regression.RegressionResults at 0x7d523f0a56d0>,
 np.str_('0.05'): <nilearn.glm.regression.RegressionResults at 0x7d523f0a40e0>,
 np.str_('0.06'): <nilearn.glm.regression.RegressionResults at 0x7d523f0a43e0>,
 np.str_('0.07'): <nilearn.glm.regression.RegressionResults at 0x7d523f0a6c30>,
 np.str_('0.08'): <nilearn.glm.regression.RegressionResults at 0x7d523f0a56a0>,
 np.str_('0.09'): <nilearn.glm.regression.RegressionResults at 0x7d523f0a4470>,
 np.str_('0.1'): <nilearn.glm.regression.RegressionResults at 0x7d523f0a4080>,
 np.str_('0.11'): <nilearn.glm.regression.RegressionResults at 0x7d523efd6360>,
 np.str_('0.12'): <nilearn.glm.regression.RegressionResults at 0x7d523efd5e20>,
 np.str_('0.13'): <nilearn.glm.regression.RegressionResults at 0x7d523efd67b0>,
 np.str_('0.14'): <nilearn.glm.regression.RegressionResults at 0x7d523efd4cb0>,
 np.str_('0.15'): <nilearn.glm.regression.RegressionResults at 0x7d523efd69f0>,
 np.str_('0.16'): <nilearn.glm.regression.RegressionResults at 0x7d523efd5ee0>,
 np.str_('0.17'): <nilearn.glm.regression.RegressionResults at 0x7d523efd4f20>,
 np.str_('0.18'): <nilearn.glm.regression.RegressionResults at 0x7d523efb9cd0>,
 np.str_('0.19'): <nilearn.glm.regression.RegressionResults at 0x7d523efb8650>,
 np.str_('0.2'): <nilearn.glm.regression.RegressionResults at 0x7d523f1f4770>,
 np.str_('0.21'): <nilearn.glm.regression.RegressionResults at 0x7d523f1f4e60>,
 np.str_('0.22'): <nilearn.glm.regression.RegressionResults at 0x7d523f1f51c0>,
 np.str_('0.23'): <nilearn.glm.regression.RegressionResults at 0x7d523f1f4d70>,
 np.str_('0.24'): <nilearn.glm.regression.RegressionResults at 0x7d523f1f4ef0>,
 np.str_('0.25'): <nilearn.glm.regression.RegressionResults at 0x7d523f1f6900>,
 np.str_('0.26'): <nilearn.glm.regression.RegressionResults at 0x7d523f1f51f0>,
 np.str_('0.27'): <nilearn.glm.regression.RegressionResults at 0x7d523f1f78f0>,
 np.str_('0.28'): <nilearn.glm.regression.RegressionResults at 0x7d523f20aa80>,
 np.str_('0.29'): <nilearn.glm.regression.RegressionResults at 0x7d523f20ad50>,
 np.str_('0.3'): <nilearn.glm.regression.RegressionResults at 0x7d523f376780>,
 np.str_('0.31'): <nilearn.glm.regression.RegressionResults at 0x7d523f375670>,
 np.str_('0.32'): <nilearn.glm.regression.RegressionResults at 0x7d523f375eb0>,
 np.str_('0.33'): <nilearn.glm.regression.RegressionResults at 0x7d52478c5910>,
 np.str_('0.34'): <nilearn.glm.regression.RegressionResults at 0x7d52478c6db0>,
 np.str_('0.35'): <nilearn.glm.regression.RegressionResults at 0x7d52478c67e0>,
 np.str_('0.36'): <nilearn.glm.regression.RegressionResults at 0x7d52478c67b0>,
 np.str_('0.37'): <nilearn.glm.regression.RegressionResults at 0x7d52478c4f50>,
 np.str_('0.38'): <nilearn.glm.regression.RegressionResults at 0x7d52478c5340>,
 np.str_('0.39'): <nilearn.glm.regression.RegressionResults at 0x7d52478c7020>,
 np.str_('0.4'): <nilearn.glm.regression.RegressionResults at 0x7d52478c7b60>,
 np.str_('0.41'): <nilearn.glm.regression.RegressionResults at 0x7d524ca17470>,
 np.str_('0.42'): <nilearn.glm.regression.RegressionResults at 0x7d523f2517f0>,
 np.str_('0.43'): <nilearn.glm.regression.RegressionResults at 0x7d523f2514f0>,
 np.str_('0.44'): <nilearn.glm.regression.RegressionResults at 0x7d52457b8e00>,
 np.str_('0.45'): <nilearn.glm.regression.RegressionResults at 0x7d524792c3b0>,
 np.str_('0.46'): <nilearn.glm.regression.RegressionResults at 0x7d524792fc20>,
 np.str_('0.47'): <nilearn.glm.regression.RegressionResults at 0x7d523efc6720>,
 np.str_('0.48'): <nilearn.glm.regression.RegressionResults at 0x7d523efc5be0>,
 np.str_('0.49'): <nilearn.glm.regression.RegressionResults at 0x7d523c35e810>,
 np.str_('0.5'): <nilearn.glm.regression.RegressionResults at 0x7d523c35c140>,
 np.str_('0.51'): <nilearn.glm.regression.RegressionResults at 0x7d523c35f3e0>,
 np.str_('0.52'): <nilearn.glm.regression.RegressionResults at 0x7d523c35c3b0>,
 np.str_('0.53'): <nilearn.glm.regression.RegressionResults at 0x7d523c35da60>,
 np.str_('0.54'): <nilearn.glm.regression.RegressionResults at 0x7d523c35f740>,
 np.str_('0.55'): <nilearn.glm.regression.RegressionResults at 0x7d523c35c380>,
 np.str_('0.56'): <nilearn.glm.regression.RegressionResults at 0x7d523c35c410>,
 np.str_('0.57'): <nilearn.glm.regression.RegressionResults at 0x7d523c35fb30>,
 np.str_('0.58'): <nilearn.glm.regression.RegressionResults at 0x7d523c35f620>,
 np.str_('0.59'): <nilearn.glm.regression.RegressionResults at 0x7d523c35fe30>,
 np.str_('0.6'): <nilearn.glm.regression.RegressionResults at 0x7d523c35c320>,
 np.str_('0.61'): <nilearn.glm.regression.RegressionResults at 0x7d523c35db20>,
 np.str_('0.62'): <nilearn.glm.regression.RegressionResults at 0x7d523c35fdd0>,
 np.str_('0.63'): <nilearn.glm.regression.RegressionResults at 0x7d523c35f6b0>,
 np.str_('0.64'): <nilearn.glm.regression.RegressionResults at 0x7d523c35da30>,
 np.str_('0.65'): <nilearn.glm.regression.RegressionResults at 0x7d523c35fb90>,
 np.str_('0.66'): <nilearn.glm.regression.RegressionResults at 0x7d523c35fce0>,
 np.str_('0.67'): <nilearn.glm.regression.RegressionResults at 0x7d523c35da90>,
 np.str_('0.68'): <nilearn.glm.regression.RegressionResults at 0x7d523c35fcb0>,
 np.str_('0.69'): <nilearn.glm.regression.RegressionResults at 0x7d523c35e930>,
 np.str_('0.7'): <nilearn.glm.regression.RegressionResults at 0x7d523c35e5a0>,
 np.str_('0.71'): <nilearn.glm.regression.RegressionResults at 0x7d523c35ff80>,
 np.str_('0.72'): <nilearn.glm.regression.RegressionResults at 0x7d523c370bf0>,
 np.str_('0.73'): <nilearn.glm.regression.RegressionResults at 0x7d523c373440>,
 np.str_('0.74'): <nilearn.glm.regression.RegressionResults at 0x7d523c3731d0>,
 np.str_('0.75'): <nilearn.glm.regression.RegressionResults at 0x7d523c372720>,
 np.str_('0.76'): <nilearn.glm.regression.RegressionResults at 0x7d523c373110>,
 np.str_('0.77'): <nilearn.glm.regression.RegressionResults at 0x7d523c370c20>,
 np.str_('0.8'): <nilearn.glm.regression.RegressionResults at 0x7d523c3736b0>,
 np.str_('0.81'): <nilearn.glm.regression.RegressionResults at 0x7d523c3724e0>,
 np.str_('0.83'): <nilearn.glm.regression.RegressionResults at 0x7d523c372570>}

Hi @Anna_Plieva and welcome to neurostars!

run_glm to my understanding is a low-level function that is typically not meant to be run by the user, but rather as part of the modeling workflows established by Nilearn.

You may benefit from borrowing from this example, taking specific note of the model.fit execution: First level analysis of a complete BIDS dataset from openneuro - Nilearn or Simple example of two-runs fMRI model fitting - Nilearn.

Best,

Steven

2 Likes