Half-Life JS code or api call

Is there some Javascipt code or an api call to compute the half-life metric used in the latest Covid-19 lab? I’d like to make a mutations booster and it would be helpful to have that to help evaluate/rank mutated designs. Thanks.

As it happens, that constraint was written as an EternaScript, which you can find here: https://eternagame.org/scripts/10863429

1 Like

Thanks. I adapted that code for the half-life. I see the GC content appears tp be a simple (count(G)+count(C))/len(seq). What about the other metrics used in the leaderboard? K1? BT? P-unpaired? RibonanzaNet-Deg? Is there javascript code for those as well? It looks like the leaderboard script does remote https calls for those and I’d rather do it locally if possible. Thanks.

Unfortunately, K1, BT, and RibonanzaNet-Deg we do not have compiled in a way that works in a browser (RibonanzaNet-Deg in particular requires more memory than is possible in a browser, and more than even I have on my higher-end desktop, for the length of sequences we’re dealing with - >100GB of RAM and ~20m on 32 cores at a length of ~5k). If you want to run these “offline”, K1 and BT are available on GitHub and RibonanzaNet-Deg can be found on Kaggle (the RibonanzaNet code on github can be extended accordingly) - I can provide guidance if desired.

P-Unpaired is 1 minus the sum of all base pairing probabilities (which I know you’ve been able to work with before).

I would like to request avoiding making ad-hoc requests to our remote services (at least, for now). While this is something I’ve intended to support, there are some current limitations which would make that problematic (namely, limited cache size means that it’s possible that a high enough volume of non-leaderboard requests can cause the leaderboard calculations to become unavailable and need to be recomputed; also RibonanzaNet-Deg we are only able to handle a very limited amount of computations for because of the cost, and this could significantly delay the computations for the leaderboards).

Clarification/correction: The per base punp is represented by the numpy expression 1-np.sum(bpps, axis=0) - so it’s the sum across the first axis of the matrix, then inverted at each base. Those numbers are then summed to get the final value.

I figured the RibonanzaNet-Deg at least was going to be big and slow. I am trying to avoid real-time calls to the background servers. Does LinearFoldE support bpp and if so, what’s the api call for that? Is it applet.pairing_probabilities(seq,secstruct) and/or await appelt.pairing_probabilities_async(seq,secstruct)? Thanks.

…and that is the symmetric pair matrix. To see how the Eterna code handles this with it’s “COOrdinate” format as exposed via the booster API, see EternaJS/src/eterna/folding/FoldUtil.ts at 178bdb0dbffe00bae58503084aa8ebb413e9cd81 · eternagame/EternaJS · GitHub

Yes, LFE supports BPPs via LinearPartition, using pairing_probabilities or pairing_probabilities_async, as long as LFE is the selected engine

1 Like