Error saving user configutation file when running Skyline in Apptainer

support
Error saving user configutation file when running Skyline in Apptainer mauraisa  2024-08-26 15:08
 

I am trying to run Skyline from the command line inside of an apptainer container as part of a Nextflow workflow.

There are a couple of steps in the workflow which are failing with the error:

Error: Failed saving to the user configuration file.
Failed to save settings: A configuration file cannot be created for the requested Configuration object.

Specifically, the steps that are causing the error are when I try to run protein parsimony in Skyline and when a new report template is added to a document.

If I set the --verbose-errors flag, this is the stack trace:

Error: Failed saving to the user configuration file.
System.Configuration.ConfigurationErrorsException: Failed to save settings: A configuration file cannot be created for the requested Configuration object. ---> System.Configuration.ConfigurationErrorsException: A configuration file cannot be created for the requested Configuration object.
   at System.Configuration.MgmtConfigurationRecord.SaveAs(String filename, ConfigurationSaveMode saveMode, Boolean forceUpdateAll)
   at System.Configuration.ClientSettingsStore.WriteSettings(String sectionName, Boolean isRoaming, IDictionary newSettings)
   --- End of inner exception stack trace ---
   at System.Configuration.ClientSettingsStore.WriteSettings(String sectionName, Boolean isRoaming, IDictionary newSettings)
   at System.Configuration.LocalFileSettingsProvider.SetPropertyValues(SettingsContext context, SettingsPropertyValueCollection values)
   at System.Configuration.SettingsBase.SaveCore()
   at System.Configuration.SettingsBase.Save()
   at System.Configuration.ApplicationSettingsBase.Save()
   at pwiz.Skyline.CommandLine.<>c__DisplayClass136_0.<HandleExceptions>b__0() in Z:\pwiz\pwiz_tools\Skyline\CommandLine.cs:line 4438
   at pwiz.Skyline.CommandLine.HandleExceptions[T](CommandArgs commandArgs, Func`1 func, Action`1 outputFunc) in Z:\pwiz\pwiz_tools\Skyline\CommandLine.cs:line 4451

It looks like Skyline is trying to save settings to a config file which does not exist or can not be written to because of the user's permissions in apptainer. I understand why saving previously used settings makes sense in the GUI, but I am not sure why this would be useful or desirable when running Skyline from the command line. It is especially pointless in a container where the user settings do not persist.

I have attached a minimal set of files to reproduce the error I am getting with the commands:

unzip minimal_example.zip && cd minimal_example
apptainer exec --no-home -B "$(pwd)" 'docker://quay.io/protio/pwiz-skyline-i-agree-to-the-vendor-licenses:3.0.24172-63d00b1' wine SkylineCmd --in=final_minimized_annotated.sky --report-add=replicate_quality.skyr

Is it possible to modify Skyline so the user settings are not saved when running the command line version of Skyline, or at least print a warning instead of raising an error when the file can not be written to?

Thanks,

Aaron