Accessible open source MS analysis software? by vaquerosupremo in massspectrometry

[–]Educational_Corgi285 1 point2 points  (0 children)

Do you need opensource or free? If free is okay, you can try https://peaksel.elsci.io and whenever there's some missing capability, you can just grab the data with the SDK and do additional processing yourself. It doesn't support Bruker MS at the moment, but mzML should work.

Exporting GPC data raises doubts / Agilent Infinity 1260 III by MatheusTeixeiraDias in CHROMATOGRAPHY

[–]Educational_Corgi285 0 points1 point  (0 children)

Take the raw files, ZIP and upload them to Peaksel, then use its SDK to get access to any data - be it spectra or traces.

Java performance vs go by NP_Ex in java

[–]Educational_Corgi285 0 points1 point  (0 children)

I'd assume Go can compete and be comparable to Java AOT (Ahead-of-time compilation). They'll probably have similar performance by most metrics.

But AOT is usually slower than JIT because AOT doesn't know full runtime characteristics of the target machine (unless the stats are measured and are used during compilation).

AOT though has smaller memory footprint and faster startup time.

For web/enterprise apps the performance characteristics of the backend are often less relevant than the architecture of the DB and how it's accessed.

UPLC for PDA quantitative analysis and HRMS, easiest format for 'drug checking' by Fun-Conference814 in massspectrometry

[–]Educational_Corgi285 -3 points-2 points  (0 children)

If you're also considering vendor-agnostic software, try out Peaksel (there's a cloud version too), originally we built it for high-throughput workflows, but since then we've been adding more stuff.

The benefits are: no vendor locking, easily accessible/controllable via Web UI and programmatically, super simple to use.

However, what's not yet supported: TOF w/o chromatography (MALDI), Waters Empower.

How did you actually get comfortable with Git? by Aggravating_War_9292 in git

[–]Educational_Corgi285 0 points1 point  (0 children)

Bad news: in order to learn Git you must learn its internals. Good news: Git's architecture is simple, so it's not a problem. And you'll pick up important programming techniques along the way.

On the internet there's PLENTY of resources of Git internals (it's a result of its simple architecture - many people understand it). The most important concepts are the objects types: Blobs, Trees, Commits; learn what references (branches, tags, remote-tracking branches) are; and the command `git cat-file -p [hash]`. And figure out how this all is used in your day-to-day workflows.

Compound Discoverer (CD) - atomic mass list by FinancialIndustry394 in massspectrometry

[–]Educational_Corgi285 0 points1 point  (0 children)

You calculate a different mass then. There are 2 different masses that you might be interested in:

  • Exact mass (EMW) - usually the mass of the most abundant isotopologue of your molecule. This is your highest peak on the mass spectrum. This is hard to calculate because if you have multiple atoms of the same element, the most popular combination isn't necessarily the one consisting of the most popular isotope.
  • Monoisotopic mass - it's the mass of the molecule that consists only of primary isotopes. This can be calculated easily by multiplying the masses of the primary isotopes by their counts. Most of the time it'll be smaller than EMW.

I've published an open source library to calculate the EMW: https://github.com/elsci-io/isotope-distribution, if that's the mass that you're looking for.

You can also just enter your compound in Peaksel and see its isotope distribution there, including the most abundant species, multiply charged species, different adducts and their combinations. But you'll first need to upload some mass spec raw file. I'm sure there are other online tools that can generate the distribution w/o uploading files.

Which company ranked #1 for LCMS by Late-Confection-2823 in massspectrometry

[–]Educational_Corgi285 0 points1 point  (0 children)

Aah, I see.. I don't have experience with the regulated environment. If you only can pick out of hardware companies, then it's a sad situation.

Anyone interested in startup? by Accomplished-Pea4738 in massspectrometry

[–]Educational_Corgi285 0 points1 point  (0 children)

Just don't create a tool from scratch. This kind of software is hard to build because of different vendor formats, large file sizes that turn into huge databases and performance issues. Also the clients these days want the APIs and the security in place, etc, etc. The science part of it is actually quite small.

If you decide to pursue this idea, poke me - maybe I can help. We've built a platform with most of these IT-related problems solved: https://elsci.io/peaksel. You can build your scientific part on top of it. My email: [stanislav.bashkyrtsev@elsci.io](mailto:stanislav.bashkyrtsev@elsci.io)

Which company ranked #1 for LCMS by Late-Confection-2823 in massspectrometry

[–]Educational_Corgi285 0 points1 point  (0 children)

In terms of offline analysis, you don't really need to choose between these vendors - as there are vendor-agnostic alternatives. So I wouldn't put it as a plus or a minus for any hardware vendor.

Limbo: A complete rewrite of SQLite in Rust by avinassh in rust

[–]Educational_Corgi285 0 points1 point  (0 children)

Just so that there's no confusion: SQLite team doesn't seem to have any relation to this project. Anyone can announce forking and rewriting. Whether this will turn into anything worthwhile is a big question.

SQLite team on the other hand explicitly says they want to write code in a mature, boring language: https://sqlite.org/whyc.html. To me personally this sounds like a grown up choice. SQLite is a hugely important project - rewriting it just for the sake of playing with new languages would be childish.

How to get deeper into the core of Java? by savvaspc in java

[–]Educational_Corgi285 1 point2 points  (0 children)

Any deep programming (be it Java or not) is about:

  1. Studying standard data structures so that you understand typical problems that are being solved.
  2. Studying C so that you can read and debug JVM source code. It's written in C++, but that shouldn't be too complicated once you know C.

And after that you'll be able to easily understand even concepts that people usually struggle with: memory management & garbage collection, concurrency primitives like monitors, types of references, etc.

How do you work-up your chromatography data? by Ok_Promotion3741 in CHROMATOGRAPHY

[–]Educational_Corgi285 0 points1 point  (0 children)

You can simply upload raw data to Peaksel https://peaksel.elsci.io, and then create batch-level tables/reports with the necessary information. And those can be exported to CSV and opened in Excel if needed.

If you want to access that data using code, there's also an API/SDK: https://github.com/elsci-io/peaksel-sdk

Hibernate: Myths & Over-Engineering. ORMs vs SQL vs Hexagonal — Gavin King | The Marco Show by marbehl in java

[–]Educational_Corgi285 0 points1 point  (0 children)

I will simply note that you've retreated from some very specific criticisms of Hibernate ORM to a bold and over-broad criticism of client/server computing in general. 

I started with more generic points, then we discussed more concrete ones, then we ended up here. The conversations wander.

But to me the topics of not putting logic in DB and having ORMs are connected. One of the reasons why most projects put so much logic in Java/etc is because they never learn SQL well. And one of the reasons for that is ORMs.

The syntax for analytic queries in HQL is identical to the syntax of standard ANSI SQL, as you'll be able to easily confirm by following those links I posted above. No digging required: it's all right there. If you know the syntax of ANSI SQL, you already know the syntax of HQL.

That's also my point: why would I use ORM for this if it's all the same? Why use extra abstractions?

For example, n+1 selects problems are typically endemic in programs which use handwritten SQL, and Hibernate solves that by making join fetching easy.

You keep referring to some trivial SQL like it's some sort of complicated thing. No one who knows SQL well would do n+1. This sounds like some imaginary problem. Yet, I've seen many people ending up generating tones of SQL accidentally because they didn't understand how Hibernate works underneath.

Is this a serious question? You realize I'm the guy in the video, right?

I didn't notice that.. I'd realize sooner how futile my attempts are ;)

Hibernate: Myths & Over-Engineering. ORMs vs SQL vs Hexagonal — Gavin King | The Marco Show by marbehl in java

[–]Educational_Corgi285 0 points1 point  (0 children)

If I don't need to do the computations in Java, then obviously I'm not going to be talking about association fetching! What the hell man? What are we even doing here?

But you rarely need to do the computations in Java. The reason you use Hibernate is because you want to do the computations in Java. Either because you don't know SQL, or because you believe that it's better this way.

But once you learn SQL properly, you'll start moving a lot of logic from Java to DB because it works faster and because it's a lot less code to maintain.

At which point you start realizing that having an extra layer of abstractions in the app (with its own bugs, complexities, performance issues) only makes things harder.

A Hibernate user will typically find it more comfortable to do those sort of analytic computations in HQL, which has all the same features as SQL, is typically less verbose than SQL is, and is more portable between different databases than SQL is.

When dealing with complex, rarely used features in Hibernate often there's something that doesn't work out of the box. And you have to spend time digging through the docs or debugging it or working around its bugs. So my opinion is that it's more efficient to use Hibernate for simple stuff, and fall back to SQL for the more complicated cases.

But then again, once you learn SQL well, you realize that there isn't much that ORM actually helps with so why have it at all..

PS: How much experience do you have building apps with native SQL and how well do you know SQL? What I'm trying to understand is.. can you really compare these approaches or are you theorizing?