HNHacker News
TopNewBestAskShowJobs

_ihaque

696 karma · joined January 21, 2013

CTO at Kimia Therapeutics: https://kimiatx.com

https://bsky.app/profile/ihaque.bsky.social

https://twitter.com/imranshaque

https://ihaque.org

submissionscomments
_ihaque··on Periodical cicada Brood X will emerge in 15 states in 2021
(For those who didn't click, note that What-If #120 is "Excerpts from What If articles written in a world which, thankfully, is not the one we live in")
_ihaque··on Decoding the Peloton
(Author here)

And that's why this exists! (Though it's BLE, not ANT+.)

_ihaque··on Decoding the Peloton
(Author here)

There's no built-in mode for constant power. (Nor could there be, on the original Bike that I have, as the resistance control is manual.)

The new one might have it.

At a hardware level I'm not sure how well it would work. Out of the box, the tablet only queries the bike for cadence/power/resistance every 100ms, one query at a time in round robin, so your power reading is only coming every 300ms. However, the bike responds to queries much faster - on the order of 200-300us (https://ihaque.org/posts/2020/12/26/pelomon-part-ii-emulatin...), so an external device could certainly ask for updates faster. I'm not sure how rapidly the micro on the bike itself actually updates its own measurements and what ultimate time resolution is possible.

_ihaque··on Decoding the Peloton
By the way, do you know if anyone in the gymnasticon community has cracked the meaning of the initialization packets sent at bootup? I have a partial decoding of the first two packets: the second includes bike ID and some other stuff, but no idea on the first.
_ihaque··on Decoding the Peloton
Thanks!
_ihaque··on Decoding the Peloton
(Author here)

The Peloton also has power zone training similar to what you mentioned. With the instructors nattering on in the background, occasionally rotating the dial isn't so bad.

I believe the newer version of the bike does have automatic resistance control, though.

_ihaque··on Decoding the Peloton
Author here. This work actually dates back from August-October of last year for the most part, but I didn't get to finish writing it up till the holidays. Happy to take questions here or on Twitter (see my profile).

If anyone is interested in building their own PeloMon, a full BOM is present at the bottom of the third post in the series (https://ihaque.org/posts/2020/12/28/pelomon-part-iii-hardwar...), and the GitHub repo (https://github.com/ihaque/pelomon) has both Fritzing board layout files and the source code for the device.

_ihaque··on Decoding the Peloton
Argh, sorry! Must have typoed the link in the header. Should be fixed now.
_ihaque··on Decoding the Peloton
(Author here)

Power meter pedals are significantly more expensive than the bits that went into this project. (There's a complete BOM in the follow-up post: https://ihaque.org/posts/2020/12/28/pelomon-part-iii-hardwar...).

Also, there's no fun in just buying it ;)

_ihaque··on Decoding the Peloton
It wouldn't be too hard to make a modification to the PeloMon that allowed this. Right now it is a listen-only device, but with an added UART it could just as well control the Bike.
_ihaque··on Decoding the Peloton
Yeah! I saw your blog post about reviving your Flywheel and decided to finally take this project on. Thanks for the inspiration!

(No thanks for writing your code in Node ;) https://ihaque.org/posts/2020/12/28/pelomon-part-iii-hardwar.... The gymnasticon code was helpful to see before I tracked down the XML specs for the BLE characteristics, though!)

_ihaque··on New blood test could detect more than 20 types of cancer
The results Grail presented as a talk at ESMO are fairly similar to those they presented in somewhat less detail at conferences earlier in the year (AACR and ASCO).

For those who are interested in a deeper dive on this technology, its potential limitations, and its potential benefits, I wrote up a three-part series earlier this year breaking down recent advances in liquid-biopsy-based cancer detection:

Part I: regarding tumor fraction (this goes into depth about the stage I limitations noted by other commenters) https://ihaque.org/posts/2019/07/02/early-detection-mid-2019...

Part II: technical advances from Grail (the authors here) and Guardant (one of their main commercial competitors) https://ihaque.org/posts/2019/07/08/early-detection-mid-2019...

Part III: clinical performance and economics - integrating the sensitivity and specificity numbers with a simple model for important clinical parameters like adherence (how many people prescribed to take the test actually do), and cost: https://ihaque.org/posts/2019/08/18/early-detection-mid-2019...

Disclaimer: I'm the former CSO of a competing company, but I no longer work in this space.

_ihaque··on SoundCloud cuts jobs, closes SF and London offices
We're hiring software engineers, machine learning engineers, and ML scientists at Freenome to work on early detection of cancer: https://www.freenome.com/careers.

My email is in my profile; feel free to reach out if you have questions.

_ihaque··on ECC Memory and AMD's Ryzen – A Deep Dive
The folks at Los Alamos have done that one better and actually measured GPUs placed in neutron beamlines:

https://www.cs.utexas.edu/users/skeckler/pubs/SELSE_2014_Rel...

http://users.nccs.gov/~vazhkuda/hpca.pdf (section 6)

_ihaque··on Monte Carlo estimation of Pi
Yes, Vischeck: http://www.vischeck.com/vischeck/.

There's a Python library that's usable at the command line, too: https://github.com/joergdietrich/daltonize.

_ihaque··on The end-to-end refresh of our server hardware fleet
At least some Android keyboards (Gboard) put % and ℅ near each other on the same symbol page, and it's easy to mistake one for the other if you don't look closely.
_ihaque··on Introducing Handle – Boston Dynamics [video]
This was essentially the plot of an original series Star Trek episode, https://en.wikipedia.org/wiki/A_Taste_of_Armageddon:

  In this episode, the crew of the USS Enterprise visits a planet whose people
  fight a computer-simulated war against a neighboring planet. Although the
  war is fought via computer simulation, the citizens of each planet have to
  submit to real executions inside "disintegration booths" to meet the casualty
  counts of the simulated attacks.
_ihaque··on Two Infants Treated with Universal Immune Cells Have Their Cancer Vanish
Standard approach would likely be to choose a population of patients, randomize them between "chemo" and "chemo+immune" treatment groups, and then test for a significant difference in the metric of choice such as response rate or progression-free survival. The graphical analysis of these data is often done using Kaplan-Meier curves (https://en.wikipedia.org/wiki/Kaplan%E2%80%93Meier_estimator)
_ihaque··on Food-grade TiO2 impairs intestinal and systemic immune homeostasis in rats
Note that this paper is from Nature: Scientific Reports, which is also published by Nature Publishing Group, but is not the Nature journal you're thinking of. SRep is not in the same tier as Nature.
_ihaque··on I've been writing ring buffers wrong all these years
libdivide (http://libdivide.com) implements similar logic at runtime
_ihaque··on A tale of an impossible bug: big.LITTLE and caching
That would create a race condition addressed at the bottom of the article: the process can get switched onto another CPU between the invocation of get_current_cpu_cache_line_size() and the invalidation.

  An astute reader might realize that computing the cache line on every
  invocation is not enough for user space code: It can happen that a process
  gets scheduled on a different CPU while executing the __clear_cache
  function with a certain cache line size, where it might not be valid
  anymore.
_ihaque··on New businesses eye the opportunities in managing genome data
Range isn't an issue (any reasonable scheme won't assign codes to scores that never occur), but you're right that qscores are both precise but not necessarily accurate. Quantization of quality scores is a common solution (it is optional in CRAM, mentioned above). There's also recent work on better methods for doing it [1,2].

The problem is that if you have to maintain BAMs for regulatory reasons, lossy q-scores may not be sufficient for compliance, because you 1) have lost part of the original data 2) may not be able to exactly reconstruct your analysis results (unless, of course, you did the analysis on the quantized scores).

Thus, it would still be interesting to see better lossless compression methods.

[1] http://bioinformatics.oxfordjournals.org/content/early/2014/...

[2] http://web.stanford.edu/~iochoa/publishedPublications/2015_q...

_ihaque··on New businesses eye the opportunities in managing genome data
GDC isn't directly relevant for most of the large-scale storage needs in genomics. There are a handful of "most important" file formats in the kind of genomics discussed by the article:

- FASTA: a sequence or set of sequences representing an entire genome. Usually used (in human genomics) to represent the "reference genome", but very rarely individual genomes.

- FASTQ: a set of sequences with associated probabilities at each position (representing the probability that the base at that position is correct). Used to represent the output from a sequencing experiment, where you may get 100s of millions to billions of short reads (order of 100 to 10000 bases in length) from a biological sample.

- BAM: "binary alignment map". Stores the data from the FASTQ (sequence and quality) in a way that "aligns" it to a reference genome -- identifying where the read "came from" (more formally, mapping each base in a read to the most likely corresponding base in the reference genome)

- VCF/gVCF: "variant call format". You can think of this as a diff between the individual sequenced and the reference genome.

In most cases in human genomics you wouldn't construct a full FASTA from the individual (something you would do through a process called assembly). Instead, you would sequence the sample (producing FASTQ), align it to a FASTA reference genome (producing BAM), and call variants (producing VCF). The VCF is much smaller than the other formats, and that size differential is most of where GDC would get its performance: all in all, we're usually not that different from the reference.

The big storage problem usually ends up being storing and manipulating FASTQ and BAM files, because these are the (almost complete) original data from the sequencing run, and occasionally there's a need to keep them around:

- you may want to run a new analysis that wasn't done and so wasn't encompassed in the original VCF - you may want to know the underlying quality of the data that created a variant call. Sequencing is a stochastic process, subject to a variety of types of error. Even though VCF calls typically have an estimate of quality, in many cases there's no substitute for looking at the original underlying data. - you may have a legal or contractual obligation to maintain this data. (e.g., under CLIA regulations laboratories offering clinical sequencing may be required to store the raw data underlying a clinical result for a number of years).

So, how do you store FASTQ or BAM more compactly? BAM is already compressed -- block gzipped, to be specific -- but it still stores all the information explicitly. The obvious first step is reference-based compression (e.g., CRAM: http://www.ebi.ac.uk/ena/software/cram-toolkit), which elides sequence data that is identical to the reference genome, and actually gets rid of almost all of the storage needed to store the sequences.

Other than some easily compressible stuff, like read names, the main thing left over is the quality scores -- the sequence of numbers telling you how "high-quality" each base sequenced was. In raw form, the qscores take an equal number of bytes as the sequence reads, but once we've used reference -based compression to elide the bases, they're by far the dominant component. Unfortunately, compressing quality scores well is a difficult problem. There's been a lot of work done in this area (e.g., http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3832420/), but it's by no means a solved problem.

So if you're into data compression, coming up with a better way to compress FASTQ/BAM files is still a valuable line of work.

_ihaque··on Report: Smart contact lens and other ambitious projects at Verily are floundering
Stat has covered Verily in detail in the past; this article from March argues that the problem stems from the leadership:

https://www.statnews.com/2016/03/28/google-life-sciences-exo...

  Former employees, however, characterized Conrad in less complimentary tones.
  They said he exaggerates what Verily can deliver, launches big projects on a
  whim, and rashly diverts resources from prior commitments to the next hot 
  idea that might bring in revenue. This has led to what they describe as
  difficult meetings with business partners, and resignations by demoralized 
  engineers and scientists in the face of seemingly impossible demands.
_ihaque··on Intel knows it's no longer inside
A humorous take on answering these questions: http://scholar.harvard.edu/files/mickens/files/theslowwinter...
_ihaque··on How fast can we make interpreted Python? (2013)
Stack->register JIT compiler for Python that maintains compatibility with existing C extensions because it runs as an extension within CPython. Average of 25% faster to up to 2.5x on the benchmarks in the paper.

Source link: https://github.com/rjpower/falcon/ (doesn't show up in the paper till the very end!)

_ihaque··on Baby’s Killing Tests India’s Protection of an Aboriginal Culture
Very interesting discussion of an almost-uncontacted tribe (the Jarawa) on the Andaman Islands.

From an excellent discussion by yodatsracist on Reddit (https://www.reddit.com/r/TrueReddit/comments/4adf4x/a_killin...):

> what happens when a Jarawa kills another Jarawa (an innocent, likely half-Jarawa, half-outsider baby), as this story describes? Does the Indian state step in, or do the Indian state leave the Jarawa to themselves?

_ihaque··on Explaining xkcd's “missing 11th of the month”
An interesting exploration of OCR and its interaction with the history of typography.
_ihaque··on Cofactor Genomics (YC S15) Pursues RNA Testing, Offers Better Diagnoses Than DNA
How do circRNA-based biomarkers compare to miRNA-based approaches?
_ihaque··on “I lead a cryonics team and freeze people's brains for a living”

  If somebody’s been pronounced dead and then you start CPR, you don’t want the
  embarrassing situation where they start to wake up again. For older people that
  are really far gone it’s not a concern, but sometimes life can start
  to come back a bit so general anesthetic takes care of that.
That someone is coming back to life is considered "embarrassing", and ought to be stopped with a general anesthetic? That doesn't sound like someone I'd want in the emergency room by my bed...
← PreviousPage 2 of 3Next →