-
Notifications
You must be signed in to change notification settings - Fork 101
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Skyline: Improve code for finding Thermo method export DLLs #3352
Conversation
brendanx67
commented
Jan 30, 2025
- Thermo reported this code as failing on an Ascend at Thermo
- This code was written after a full review of 7 machines in the MacCoss lab and the Ascend at Thermo to do a more complete job of finding the necessary DLLs
- More recent machines have added Thermo.TNG.MethodXMLInterface2.dll to support Adaptive RT so it needs to be copied if it is found
- Added a fairly thorough unit test for this more complicated new code to make sure it works as expected and stays working
- Thermo reported this code as failing on an Ascend at Thermo - This code was written after a full review of 7 machines in the MacCoss lab and the Ascend at Thermo to do a more complete job of finding the necessary DLLs - More recent machines have added Thermo.TNG.MethodXMLInterface2.dll to support Adaptive RT so it needs to be copied if it is found - Added a fairly thorough unit test for this more complicated new code to make sure it works as expected and stays working
- but also turn off DLL copying, since Thermo feels this should not be necessary and the variety of DLLs we are seeing is not their intention. - easier to test DLL combinations when this code is turned off
- made it possible to have just "Thermo" as a method type where Skyline auto-detects the instrument form the registry
…t a valid installation
- expanded testing to include command-line
…ProteoWizard/pwiz into Skyline/work/20250130_thermo_dll_finder
…ProteoWizard/pwiz into Skyline/work/20250130_thermo_dll_finder
- added error message testing in the ExportMethodDlg
I think this is ready to go. I will do another round of live testing tomorrow in the lab, but I am not expecting any surprises. It is pretty well tested. Would appreciate at least one code review before merging. |
On my desktop computer my registry looks like this: There was a support request from a user last year who also had a relative path in the registry: They apparently were able to fix their problem by changing the relative path in the registry to an absolute path. Does Skyline have enough information to figure out how to turn the relative path into an absolute path? |
What is the full path in this case? Pretty explicit error message, though.
If it were posted on the support board, we would know what to tell the user
to do.
…On Thu, Mar 6, 2025 at 8:40 PM nickshulman ***@***.***> wrote:
On my desktop computer my registry looks like this:
image.png (view on web)
<https://github.com/user-attachments/assets/f7334c9e-7923-4441-911d-541f6e2fac5b>
The ProgramPath is the relative path "System\Programs\dependencies\tng"
which actually seems to refer to the path "C:\Program Files\Thermo
Scientific\Instruments\Astral\1.1\System\Programs\dependencies\tng".
There was a support request from a user last year who also had a relative
path in the registry:
https://skyline.ms/announcements/home/support/thread.view?rowId=63895
They apparently were able to fix their problem by changing the relative
path in the registry to an absolute path.
The error message I got was:
image.png (view on web)
<https://github.com/user-attachments/assets/b47b76f8-fbf4-4d26-99b2-024cffa6cb68>
Does Skyline have enough information to figure out how to turn the
relative path into an absolute path?
If it were to look in the correct absolute path it would find the dll's
it's looking for.
—
Reply to this email directly, view it on GitHub
<#3352 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ACYBWUGM3I2CLJZW27NGVJD2TEPMTAVCNFSM6AAAAABWGMV7KKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDOMBVGUYTENBSGU>
.
You are receiving this because you authored the thread.Message ID:
***@***.***>
[image: nickshulman]*nickshulman* left a comment (ProteoWizard/pwiz#3352)
<#3352 (comment)>
On my desktop computer my registry looks like this:
image.png (view on web)
<https://github.com/user-attachments/assets/f7334c9e-7923-4441-911d-541f6e2fac5b>
The ProgramPath is the relative path "System\Programs\dependencies\tng"
which actually seems to refer to the path "C:\Program Files\Thermo
Scientific\Instruments\Astral\1.1\System\Programs\dependencies\tng".
There was a support request from a user last year who also had a relative
path in the registry:
https://skyline.ms/announcements/home/support/thread.view?rowId=63895
They apparently were able to fix their problem by changing the relative
path in the registry to an absolute path.
The error message I got was:
image.png (view on web)
<https://github.com/user-attachments/assets/b47b76f8-fbf4-4d26-99b2-024cffa6cb68>
Does Skyline have enough information to figure out how to turn the
relative path into an absolute path?
If it were to look in the correct absolute path it would find the dll's
it's looking for.
—
Reply to this email directly, view it on GitHub
<#3352 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ACYBWUGM3I2CLJZW27NGVJD2TEPMTAVCNFSM6AAAAABWGMV7KKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDOMBVGUYTENBSGU>
.
You are receiving this because you authored the thread.Message ID:
***@***.***>
|
I don't think we are going to fix that problem in this PR. I like that the error message is pretty clear for it. None of the instruments in the MacCoss lab have this issue. If you can reproduce how you ended up with your registry looking like this, we should report it to Thermo, but is may already be fixed on their end. |
Sounds good. I could not find anything in my registry that could be used to figure out that "C:\Program Files\Thermo Scientific\Instruments\Astral\1.1" |
Any other thoughts on this PR before I merge to master? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me.
private class ProgramPath | ||
{ | ||
public string Path; | ||
public bool IsFull; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This probably should be called "IsFullInstall" because otherwise it sure sounds like it means "IsFullPath" given the class it's in.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Okay. Changed to IsFullInstall and added comments.
{ | ||
string selectionType = GetSelectedInstrument(instrumentType); | ||
if (listTypes.Contains(selectionType) && GetInstrumentTypeFromSelection(selectionType, true) != null) | ||
InstrumentType = listTypes.FirstOrDefault(typeName => typeName.Equals(instrumentType)); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This code is a little confusing, because there's "instrumentType", "selectionType" and whatever "GetInstrumentTypeFromSelection(selectionType)" returns.
This particular line is equivalent to:
InstrumentType = listTypes.Contains(instrumentType) ? instrumentType : null;
Is that what you intended? (it probably is)
Just wanted to make sure this code is doing what you expect it to.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Okay. Good point. I could barely understand it myself, and I am not sure it worked correctly. I have added a bunch of comments, and several tests of the initial selection of the Instrument type combo box, and also improved the code to work exactly the way I was expecting it to, after debug stepping through it during the tests.
…nitial selection of Instrument type combo box
…ProteoWizard/pwiz into Skyline/work/20250130_thermo_dll_finder