smith-chem-wisc / Spritz

Software for RNA-Seq analysis to create sample-specific proteoform databases from RNA-Seq data
https://smith-chem-wisc.github.io/Spritz/
MIT License
7 stars 11 forks source link

Error in rule setup_transfer_mods #240

Open trom2 opened 4 months ago

trom2 commented 4 months ago

I was trying to run Spritz for isoforms and variants using the most recent Spritz version (0.3.10) on 12 paired end fastq files but the program gives an error in rule setup_transfer_mods. I'm running this using the command line version on WSL on Windows 10. Error logs are attached, including the setup_transfer_mods.log. I pasted the error message below. Any help is appreciated.

[Wed Apr  3 09:36:30 2024]
rule setup_transfer_mods:
    input: ../SpritzModifications/bin/x64/Release/net6.0/SpritzModifications.dll
    output: ../resources/ptmlist.txt, ../resources/PSI-MOD.obo.xml
    log: ../resources/setup_transfer_mods.log
    jobid: 4
    benchmark: ../resources/setup_transfer_mods.benchmark

Activating conda environment: /home/msf/Programs/Spritz/Spritz/workflow/.snakemake/conda/e91e4b1e
[Wed Apr  3 09:36:35 2024]
Error in rule setup_transfer_mods:
    jobid: 4
    output: ../resources/ptmlist.txt, ../resources/PSI-MOD.obo.xml
    log: ../resources/setup_transfer_mods.log (check log file(s) for error message)
    conda-env: /home/msf/Programs/Spritz/Spritz/workflow/.snakemake/conda/e91e4b1e
    shell:
        cd ../resources/ && dotnet ../SpritzModifications/bin/x64/Release/net6.0/SpritzModifications.dll --setup &> ../resources/setup_transfer_mods.log
        (one of the commands exited with non-zero exit code; note that snakemake uses bash strict mode!)

[Wed Apr  3 09:36:53 2024]
Finished job 9.
16 of 64 steps (25%) done
[Wed Apr  3 09:41:05 2024]
Finished job 16.
17 of 64 steps (27%) done
Shutting down, this might take some time.
Exiting because a job execution failed. Look above for error message
Complete log: /home/msf/Programs/Spritz/Spritz/workflow/.snakemake/log/2024-04-03T081557.520730.snakemake.log

20240403_logs.zip

acesnik commented 4 months ago

Thanks for reporting the issue. It looks like this failed trying to download PSI-MOD. Maybe there's an issue with their database today. @trishorts, have you seen any issues like this today?

Welcome to SpritzModifications!
Downloading files for SpritzModifications.
Unhandled exception. System.AggregateException: One or more errors occurred. (The SSL connection could not be established, see inner exception.)
 ---> System.Net.Http.HttpRequestException: The SSL connection could not be established, see inner exception.
 ---> System.Security.Authentication.AuthenticationException: The remote certificate is invalid because of errors in the certificate chain: UntrustedRoot
   at System.Net.Security.SslStream.SendAuthResetSignal(ProtocolToken message, ExceptionDispatchInfo exception)
   at System.Net.Security.SslStream.CompleteHandshake(SslAuthenticationOptions sslAuthenticationOptions)
   at System.Net.Security.SslStream.ForceAuthenticationAsync[TIOAdapter](TIOAdapter adapter, Boolean receiveFirst, Byte[] reAuthenticationData, Boolean isApm)
   at System.Net.Http.ConnectHelper.EstablishSslConnectionAsync(SslClientAuthenticationOptions sslOptions, HttpRequestMessage request, Boolean async, Stream stream, CancellationToken cancellationToken)
   --- End of inner exception stack trace ---
   at System.Net.Http.ConnectHelper.EstablishSslConnectionAsync(SslClientAuthenticationOptions sslOptions, HttpRequestMessage request, Boolean async, Stream stream, CancellationToken cancellationToken)
   at System.Net.Http.HttpConnectionPool.ConnectAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
   at System.Net.Http.HttpConnectionPool.CreateHttp11ConnectionAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
   at System.Net.Http.HttpConnectionPool.AddHttp11ConnectionAsync(HttpRequestMessage request)
   at System.Threading.Tasks.TaskCompletionSourceWithCancellation`1.WaitWithCancellationAsync(CancellationToken cancellationToken)
   at System.Net.Http.HttpConnectionPool.GetHttp11ConnectionAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
   at System.Net.Http.HttpConnectionPool.SendWithVersionDetectionAndRetryAsync(HttpRequestMessage request, Boolean async, Boolean doRequestAuth, CancellationToken cancellationToken)
   at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
   at System.Net.Http.HttpClient.<SendAsync>g__Core|83_0(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationTokenSource cts, Boolean disposeCts, CancellationTokenSource pendingRequestsCts, CancellationToken originalCancellationToken)
   at UsefulProteomicsDatabases.Loaders.AwaitAsync_GetSomeData(String url)
   --- End of inner exception stack trace ---
   at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
   at System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification)
   at System.Threading.Tasks.Task`1.get_Result()
   at UsefulProteomicsDatabases.Loaders.DownloadContent(String url, String outputFile)
   at UsefulProteomicsDatabases.Loaders.DownloadPsiMod(String psimodLocation)
   at UsefulProteomicsDatabases.Loaders.UpdatePsiMod(String psimodLocation)
   at UsefulProteomicsDatabases.Loaders.LoadPsiMod(String psimodLocation)
   at SpritzModifications.ProteinAnnotation.GetUniProtMods(String spritzDirectory) in /home/msf/Programs/Spritz/Spritz/SpritzModifications/ProteinAnnotation.cs:line 21
   at SpritzModifications.SpritzModifications.Main(String[] args) in /home/msf/Programs/Spritz/Spritz/SpritzModifications/SpritzModifications.cs:line 65
acesnik commented 4 months ago

I just tested this, and it completes with Github Actions (https://github.com/smith-chem-wisc/Spritz/actions/runs/8321106038/job/23415590102#step:7:113). Was there a momentary issue with your internet or a firewall that blocked the connection to PSI-MOD somehow?

trom2 commented 4 months ago

I don't think so, but I can check again tomorrow and let you know.

trom2 commented 4 months ago

I'm able to ping https://bioportal.bioontology.org/ontologies/PSIMOD though the time is ~500-600 ms which seems high to me. I'm wondering if Spritz is timing out? I tried changing the firewall settings to allow WSL, bash and ubuntu through the firewall but that didn't change anything. I get the same error and the ping is still 500-600 ms. Any suggestions?

I suppose I could manually download PSI-MOD and try to see if that could bypass it.

acesnik commented 4 months ago

I was just looking at the error again, and it looks like a certificate error rather than a timeout error; I haven't seen that one before.

To skip the step, you will need to download both the OBO-XML file and the ptmlist from uniprot into ../resources/. Here's the link to the ptmlist.txt file: https://ftp.uniprot.org/pub/databases/uniprot/current_release/knowledgebase/complete/docs/ptmlist.txt. The filenames would need to be exactly ptmlist.txt and PSI-MOD.obo.xml

trom2 commented 4 months ago

Looks like Spritz went through when I added the PSI-MOD and ptmlist. All good other than why the certificate error popped up in the first place. It might be my university's IT restrictions, but that would be odd if they were blocking PSI-MOD.

acesnik commented 4 months ago

Sounds great, thanks for the update! I'll keep an eye on this.