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