Thursday, June 25, 2015

Recap: PyDataUK 2015

This weekend, ~200 delegates trudged through typical London weather (rain) to the Bloomberg offices in London to attend PyDataUK 2015.
While it’s not your typical nerds in T-shirts meet-up; if you use Python to hack data, this conference is probably definitely for you.

Attendance

Curiously, for a ‘data science’ conference the attendance list (which I would have crawled LinkedIn with…heh), was not available. Bases on my (biased) observations, the attendance was roughly as follows…
Type Sub-type Percentage (%)
Industry 70
Self-employed 20
SME 40
Sponsors 10
Large <1
Academia 30
Ugrad <1
Masters <1
PhD 15
Postdoc 5
Professor 10
Government <1
A few highlights…
* Self-employed contractors and consultants were very well represented.

Conference feel

A your data conference, not a ‘big data’ conference

Hadoop has delivered value for <10% of the companies that have installed it
- Paraphrase, anon
This conference is data focused, i.e. focused on using the Python ecosystem to solve your data challenges. The focus is on practice, and practical tools, not theory.
Type Approx Size Appropriate tools
Micro-data <1Gb Ipython
Small-data (Memory-limited) ~10Gb Pandas
Medium-data (Disk-limited) <1Tb Ad-hoc databases
Big-data Tb - Pb Consider enterprise solutions, or grep
The fact is, ‘big data tools’ would be wildly inappropriate for the vast majority of attendees. The problem seems particularly acute in the life sciences. In his war story talk, Paul Agapow covered the herculean efforts required to re-purpose an ill-advised ‘big data’ solution to recover data from a an ongoing clinical trial.
His message was very clear. Life sciences tends to have very detailed, very heterogeneous data in hundreds to thousands of rows (small/medium data): let the data guide the solutions: you probably don’t need enterprise software, so just don’t waste your money.

A Python is useful conference, not a “Python is deity” conference

All tools are shyte, but some tools (Python!) are useful.
- Paraphrase, anon
Speakers like Russel Winder and his talk on the lack of computation efficiency in Python, even using libraries like numpy set a memento mori undertone to some of the more blatant Python triumphalism.

An interpersonal conference, not a Cloister

The very high-level of interpersonal interaction is yet another way in which the conference betrays the nerds in T-shirts. This is very much a conference that one goes to seek guidance and solve problems.
While there are always the stragglers that don’t head down the pub, a good 2/3s of the conference went for fruitful discussion and drink on Saturday. Unsurprisingly, pub attendance was lower on Sunday, but still fruitful.

A place to get hired/take action, not heavy on theory

Folks were hiring like crazy, and it was very much a sellers market.
If you’re a job seeker anywhere on the Python+data spectrum, I’d strongly recommend attending. Companies were recruiting along the entire spectrum, everywhere from AWS-ineering to user-focused commercial data analysis with IPython notebooks (or re-dash, see Arik’s talk for more details on this user-friendly database interaction framework).
In-line with the action oriented nature of the conference, the Pivigo Recruitment founds were there, doing resume/CV screens and offering advice, both to students and established professionals.
If you are a PhD/Postdoc looking to make the transition, I highty recommend taking a look at their Science to Data Science training program.
Continuum may also be prototyping a training programme of their own through its Client Facing Consultant position. Not entirely sure, but 6-months of training via a 3rd-party consultuncy followed by an intentional poach (Continuum –> 3rd party) could be an interesting model.

Talks

I found the spread of talks fantastic. At least amongst the talks I attended…
Type Percentage (%)
Tools 40
War story 30
Skills 20
Under the hood 10

Tools

Tools talks were the most common. They covered ‘non-brand name’ and upcoming tools with emerging communities.
Attend/watch if:
(i) You want to learn about specific tools that may be applicable to your problem.
(ii) You want to collaborate on extending / adopting new tools.

War story

These talks gave the horrifying and nitty-grity details of a specific problem the speaker faced, and how they went about solving it (including gotcha’s and failures). The focus isn’t ‘wow, look at me’; but rather, this was some B.S., and I want no one to go through what I went through ever again.
  • Paul Agapow: Don’t use ‘big data’ tools when simpler solutions will do, particularly in the life sciences.
Attend/watch if:
(i) You want help with the problems you are immediately facing
(ii) You want exposure to problems you’ve never thought-of.

Skills

These were high-level talks that focused more on skills and knowledge than specific tools.
  • Ian Ozdvald: Writing code for you is only the begining, lets see what it takes to push a Bloomberg model to production.
Attend/watch if:
(i) You want to learn what you need to know in a new area.
(ii) You want an overview of a topic you’ve never heard of.
(iii) You want to chat with the speaker about specific War Stories, after the talk.

Under the hood

These talks focused on low-level implementation details of numpy, pandas, Cython, Numba, etc with a particular focus on performance and appropriateness. Personally, I found these talks the most useful. Where else can one gather such concentrated information from the mouth of the open-source contributors.
  • Russel Winder: If you want performance, use Python as a glue-language, and write your computationally intensive functions in a ‘real’ language.
  • Jeff Reback: In pandas, think about idioms and built-in vectorization to get the most out of your code (then write in a ‘real’ language if you still need to go faster).
  • James Powell: Why does writing good numpy feel so different than writing good Python: because the styles have diverged, and will probably continue to do so.
Attend/watch if:
(i) You want a fire-hose of information about low-level topics.
(ii) You want to know how the ‘magic’ happens.

Take-home

This is very much a conference focused on solutions. If you have a problem, don’t be shy!. Ask around, and there will be people there that have faced similar problems, eager to help.
As for me, I look forward to attending next year!

Thursday, March 12, 2015

Book Review: How to lie with statistics


A data analysts bible for communicating stats to non-experts. A recommended re-read as annual absolution for your statistical sins.

There is no surprise it's a classic: the book has aged remarkably well, the (humourus) anticdoes being as pertinent today as 60 years ago.

The premise is quite straight-forward. When presented with stats, keep in mind:
1) Tools of the trade,
2) Lies, and
3) Fallacies.
Then do a "sniff-test."

Tools are the trade include bias, sample size and significance tests.

Lies are (often graphical) ways of misleading the reader (intentionally for the data scientist; plausibly unintentionally for those with less of a background): changing the scale bars, 'cleverly' chosen percentages, dishonest before/after and my personal favorite, semi-attached figures (what the medical profession now calls 'surrogate end points').

Fallacies include the ever present correlation is of course causation, and 'proving' the null hypothesis.

If a breezy 124 pages is too much, cut straight to the end. At a 'lengthy' (by this books standards) 15 pages, the 10th and final chapter enumerates a 5-step 'sniff test' that can stop a good many lie in its tracks:
1) Who says so?
2) How does he know?
3) What's missing?
4) Did somebody change the subject?
5) Does it make sense (particularly for extrapolations)

If pointy haired boss ever read this book, it'd make the data analysts job -- appease power by bending truth -- 456.7% more challenging!

PS. Speaking truth to power will get you fired 654.3% faster than appeasement. Exercise minimally bent truth with caution. You've been warned!

Sunday, January 18, 2015

The cross-functional team: Separation of concerns

Working on a cross-functional team is hard!

As specialists, be that specialization in software development, bioinformatics, or molecular biology, we are domain experts; yet, projects still fail to come to fruition on time, on budget and with the expected impact. This is as frustrating and demotivating to the non-technical manager as it is to the specialist team members.

Lets look at a case study…

Kate (software developer) and Darnell (biologist) are hustled into a meeting room by Xue (non-technical manager). In good faith, Darnell (biologist) lays bare his frustrations with the existing software. Kate (developer) records these as a list of requirements. After rubber-stamp approval by Xue (non-technical manager) and two weeks of furious coding, the revised software is ready. Unfortunately for Darnell (biologist), the software is even worse than before.

There is another meeting, with more senior developers and biologists in attendance Kate steps-through the changes she made, and how the changes address the requirements gathered from Darnell. The biologist and developers don’t understand much of each-others technical jargon, but do their best to provide input into Kate’s new requirements. The developers insist that ABI Instruments are used by the biologists because their output format is standardized, and therefore easier to import. The biologist demand that ‘big data’ capabilities are implemented by the developers. All Xue can think about is justifying the expense and deadline slippage to her annoyed higher-ups, along with the sickly feeling of having her neck being breathed down.

Sound familiar?

The organizational problem is that our specialists, Kate and Darnell, are trained to deliver ‘locally’ optimal solutions within their area of expertise; unfortunately, real-world problems are usually ‘global’. The challenge to the cross-functional team is to approximate a reasonable ‘global’ solution with a set of ‘local’ solutions contributed by each specialist. Put another way…”software problems” are few; “problems benefiting from software” are many.

Separation of concerns to the rescue

Separation of concerns (SoC) is a precept of modern software engineering. Focusing on the ‘what’, and abstracting the ‘how’, enables collaborative development on large code-bases, easing maintenance, extension and debugging.

The concept is simple: disparate modules of code must communicate through a common interface. As long as the interface remains intact, the internal workings of each individual module may be modified independently. Importantly, each developer need only know the details of their own module, and the interfaces of the modules they interact with. The concerns (implementation level details) of each module, are thus separated (self-contained, and preferably free-standing).

At first glance, this might not seem particularly relevant to Kate and Darnell, but managing separation of concerns should be a cross-functional team’s #1 tactical priority, second-only to sharing a common vision (#1 strategic priority). Separation of concerns forces our cross-functional team to focus on ‘what’, instead of ‘how’.

For the software engineer, separation of concerns means crafting sensible code modules, with a thoughtful API. For the cross-functional team member, it means understanding the high-level problem (what), coming to a common understanding (interface) with ones peers, making that understanding explicit (‘human API’), and sharing a common language to discuss solutions.

To successfully implement, each team member requires:1

Mutual ownership of the ‘global’ solution.
Gradient awareness of team member capabilities.
Commitment to communication, which includes trust, honesty and good faith.

Re-examining the case study…

Kate (software developer) and Darnell (biologist) are hustled into a meeting room by Xue (non-technical manager). In good faith, Darnell (biologist) lays bare his frusterations with the existing software. Kate (developer) politely stops Darnell (biologist), and asks Darnell and Xue about the actual ‘problem’ they’re trying to solve (mutual ownership). Putting aside specific frustrations with the software, the three discuss each others overall-process and ‘pain-points’, both biological and software (gradient awareness). The three state and adjust their understanding, and break to assess (communication):

Kate (developer): Problems that can be solved with software, pro/con for various options?
Darnell (biologist): ditto for molecular biology.
Xue (non-technical manager): Context. What are other teams doing?

After a few days of assessment, there is another meeting. Xue outlines the high-level overview discussed previously to make sure everyone is on the same-page about the problem. Kate (developer) presents the pros/cons of a few software options. Darnell (biologist) follows suit for molecular biology (communication). The group discusses the various options (mutual ownership); in consultation, Xue chooses the set of options to be implemented, and leaves the implementation details to Kate and Darnell. As the week progresses, software and biology changes are applied. Kate and Darnell touching base to reassess their understanding if an interface becomes unclear, or additional dependencies arise (gradient awareness). Their ‘local’ solutions each contribute to solving the ‘global’ problem. Concerns have been separated such that developers aren’t telling biologists how to do their jobs, and vice-versa.

Applying separation of concerns is an art

There are no right answers. The central challenge lies with each specialist coming to a common understanding of their interfaces with peers, walking the tight-rope of openness (about what) and abstraction (about how). Thus, applying separation of concerns simultaneously requires teams to understand more of the overall problem (what), so as to define sensible interfaces between team members, yet less of each-others implementation-level details (how).2.

If the proper balance of openness and abstraction is not achieved, then interfaces are either drawn too broadly (you’ll be stepping on each others toes and exposed to unnecessary implementation-level details), or too narrowly (the ‘local’ solutions of each team-member won’t work together to address the ‘global’ problem).

Done well, separation of concerns enables specialists to work together in harmony: delivering a reasonable set of ‘local’ solutions to the ‘global’ problem at hand.
Done poorly, separation of concerns stifles innovation by imposing artificial barriers: ‘local’ solutions which are ‘globally’ ineffective (and sad panda for all parties).

Cross-functional teams of the world, try giving the principle of separation of concerns a try on your next project.


  1. As corollaries, “not my problem”, dismissal of your peers capabilities and inter-specialty rivalry are unacceptable.
  2. An added-benefit is that less field-specific jargon tends to be used because implementation-level details (how) are abstracted into higher-level problems (what). For example, everyone can understand that a software application is slow (what), but the biologist could (usually) care-less that it’s due to excessive network traffic (why), or that the developer resolved the problem by local caching (how).

Sunday, December 14, 2014

Expat Travel Insurance (Part 2)

If you’ve settled upon travel insurance to cover illness/accident on your visit back to your country of citizenship (queue USA chant), it’s decision time on the exact policy.

There is a staggering array of choice, divided into three main product types:

  • Single-trip
  • Multi-trip
  • Backpacker

While there are tools to narrow the search, I am not aware of any that will take the unique concerns of expats (e.g. cover in country of citizenship) into consideration. This means reading terms and conditions: you cannot take for granted that the policy will be right for you, since the screens available are designed for vanilla residence==citizenship types.

For the UK-based among us, this means using a comparison engine like Money Super Market or Confused.

Comparison engine evilness

  • For underwriting purposes, your age is fair game, but not personal identifying information such as Name, email or phone number. I used the traditional ‘abc xyz’ and abc.xyz@yahoo.com as work arounds.
  • Check the insurance agent directly. You will almost certainly find price discrepancies between going direct with the agent and going through the comparison engine.
  • For visits longer than ~7days, check both single-trip and annual multi-trip rates. I found the break-even point is between the two types of products 7-10 days.

Debenhams evilness

After reading through 1/2 dozen terms and conditions, I settled upon an annual multi-trip policy fronted by Debenhams. Cheaper than many single-trip policies for my length-of-stay.

There is much evilness to be had here, but some of their competitors were even worse…
* £30.60 for the Gold policy from Confused versus the (as far as I can tell identical) £61.51 Superior policy ‘direct’ from Debenhams.
* ‘Direct’ is a bit of a misnomer since Debenhams is a front. The policies are actually underwritten by Rock Insurance, which is itself the UK-front for a Swedish firm named SOLID Försäkringar. If it’s any consolation, both firms are registered with the Financial Services Authority [1, 2]. Though, if anything goes amiss, I have more faith in Debenhams attempting to salvage the reputation of its personal finance business than the FSA.
* The 3-star Defaqto rating is sufficient. Self-insure against luggage loss and cancellation, so the extra coverage that the 4/5 star policies cover in these areas is irrelevant. Given that the legal coverage for ‘high street’ policies is a joke (£15k), all they’re worth is the medical (£10M) and personal liability (£2M) cover.
* If you’re an expat considering travel insurance, be aware that you aren’t really protected against a very serious illness/accident, see Part 1.

Debenhams BEYOND evil

Saving the most evil for last…
* Buried in the terms and conditions there is an automatic renewal clause, BEYOND evil IMHO. Opt-out can be performed online: http://ww2.rockinsurance.com/autorenew/
* Making Melkor look like Wayne Brady, some companies have a written-only or phone-only (invariably an 0845 or other premium rate number) opt-out. Unspeakably evil.

As with all things, YMMV.

Written with StackEdit.

Expat Travel Insurance (Part 1)

At times, US policy seems designed to make life difficult for expats. Look no-farther than the catch 22 of insurance for trips back to the good ol’ US of A, where the protections of European-style socialized medicine do not apply.

At first glance, there are three alternatives:

  • US health insurance
  • Expat health insurance
  • Travel insurance

Each with their own unique pros/cons…

Type Eligibility US treatment Price
US Min 6mo US residence + $$
Expat Min 6mo foreign residence + $$$
Travel Min 6mo residence - $

US Health Insurance

Long-time foreign resident are wholly ineligible for US-based health insurance due to residency requirements.

For those returning stateside, good luck finding an affordable short-term PPACA compliant policy to cover the 6 month gap before eligibility in US plans.

On the upside, bless the wonks, there is an Obama-care exemption for those US citizens which pass either the bona fide resident or physical presence test under USC 26 §5000A(f)(4). Not that most non-executives could afford the premiums demanded by reasonable individual plan.

Expat health insurance

These plans generally cover treatment in either your country of citizenship or country of residence. In a perfect world, this would be the plan-type of choice for expats. Country of citizenship treatment for serious accident/illness; country of residence for more minor issues.

Unfortunately, expat health plans are often even more expensive than equivalent US-based health insurance plans. If you’re a non-exec, it’s doubtful that your company will offer this perk, so good luck affording a policy.

Travel insurance

These come in two flavors, US-based plans and foreign-based plans. Generally, there is a 6 month residence requirement, which will determine whether whether you are eligible for the US-based (min 6mo US residence) or foreign-based (min 6mo foreign residence) plans.

The biggest down-side of travel insurance is that they only cover emergency treatment, i.e. to minimize their cost, they will repatriate you ASAP to your country of residence (usually where the plan is acquired).

For relatively minor injuries (e.g. a broken leg) this level of coverage should be sufficient. However, in the event of a serious accident/illness, this money-saving tactic could kill you. For example, say you were involved in a serious car accident while visiting family in your country of citizenship. Travel insurance would cover your stabilization and medical repatriation to your country of residence (expat home). You’d then be left to the state system (e.g. NHS) with limited social/family support during recovery. Moreover, if you’re unable to work, or otherwise violate your visa conditions due to your illness/accident, you very well may face deported back to your country of citizenship, where you’d be uninsured, and more or less left to die without adequate treatment.

Seriously, it’s that dire. In a place like the US, the best an uninsured former expat could hope for is medical bankruptcy (certainty) and surviving without treatment long enough to become eligible for Medicaid (highly uncertain).

Additionally, some plans have additional restrictions on travel to the ‘home country.’ For example, if you’re an Indian national, resident in the US, your US-based plan may not cover you in India. As of yet, I’ve found no way to screen for these exceptions, other than to (attempt) to read through the 20-100 page terms and conditions for each policy.

Conclusion

None of the above is professional advice…far from it. If you’re in the same unfortunate boat, thrust into the complex tax and compliance situation that US policy imposes on its expat community, but can’t afford appropriate advice, good luck!

“There is no hint that help will come from elsewhere to save you.”
- R.I.P. Sagan.

PS. Given my income constraints, I’ve decided to opt for travel insurance, i.e. adequate cover for a minor illness/accident; wholly screwed in the event of a major problem.

Written with StackEdit.

Tuesday, December 2, 2014

Building blast+ databases with taxonomy ID (taxid_map)

Building NCBI BLAST+ databases with linked taxonomy is far more difficult than it should be.
For example, in taxonomy-based tools such as Kraken, mapping
1) taxonomy id to sequence id (gi or accession) and
2) taxonomy id to a human-readable taxonomy tree,
are built-in and transparent to the user.
Unfortunately, with BLAST+ these steps must be completed manually and are included in two separate programs, makeblastdb for (1) and blastn/blastp/blastx for (2).

(1) Taxonomy id <–> sequence id

In BLAST+, a taxid_map file file must be created and passed to makeblastdb
makeblastdb -in <FASTA file> -dbtype nucl -parse_seqids -taxid_map taxid_map.txt 
where taxid_map.txt is a space or tab separated list of sequence ids (either gi or accession) and taxonomy ids.
For example, with gi:
taxid_map.txt
556927176 4570
556926995 4573
501594995 3914
Alternatively with accession:
taxid_map.txt
NC_022714.1 4570
NC_022666.1 4573
NC_021092.1 3914
There is no turn-key way to generate this mapping taxid to sequence_id for a moderately large set of sequencing.
Fortunately, there is always a hack work-around. NCBI allows export of both the FASTA and GenBank files. The former are used as the default input for makeblastdb, and the latter contain both the sequence_id and taxid. They can both be obtained from the NCBI, searching and exporting with Send to:
enter image description here
This simple Python code snippet will do the trick for small and moderately large datasets.
from Bio import SeqIO
genbankfile = "DNA.gb"
f = open('taxid_map.txt','w')
for gb in SeqIO.parse(genbankfile,"gb"):
    try:
        annotations = gb.annotations['gi']
        taxid = gb.features[0].qualifiers['db_xref'][0].split(':')[1]
        f.write("{} {}\n".format(annotations, taxid))
    except:
        pass
f.close()
For large datasets, the bandwidth cost of of downloading the GenBank from NCBI becomes prohibitive, and the dictionary approach would probably be warranted.
Download both the FASTA and GenBank, alternatively extract the FASTA from GenBank, e.g. with BioPython.

(2) Taxonomy id <–> Taxonomy tree

Simply include this NCBI database in the same directory as your database for the look-up to work with blastn/blastp/blastx: ftp://ftp.ncbi.nlm.nih.gov/blast/db/taxdb.tar.gz

Eating your cake

blastn -db <DATABASE> -query <QUERY> -outfmt "10 qseqid sseqid pident staxids sscinames scomnames sblastnames sskingdoms"
1,gi|312233363|ref|NC_014692.1|,86.26,310261,Sus scrofa taiwanensis,Sus scrofa taiwanensis,even-toed ungulates,Eukaryota
1,gi|223976078|ref|NC_012095.1|,86.26,9825,Sus scrofa domesticus,domestic pig,even-toed ungulates,Eukaryota
1,gi|5835862|ref|NC_000845.1|,86.26,9823,Sus scrofa,pig,even-toed ungulates,Eukaryota
Your comma separated file (-outfmt) showing human-readable taxonomy info.

Tuesday, May 20, 2014

Due Diligence: Seven Bridges Genomics (Part 3)


Drawing
At last, following a genomics industry overview (Part 1) and cloud-based genomics analysis platform macro-view (Part 2), we arrive at the micro-level market landscape surrounding Seven Bridges Genomics.

In Part 2, I mentioned that the cloud-based genomics analysis space is crowded.

To give you a sense of just how crowded (read: very crowded), I’ve enumerated the companies in Seven Bridges Genomics’ competitive sphere. I used my best judgement with respect to direct competitors.

Suffice to say, even when restricted to direct competitors, it really is crowded. There is no clear market leader as of yet, so the next few years are going to very exciting/scary for many of these folks. So many ways to die.

Speaking of ways to be disintermediated before wide-spread platform acceptance, I want to give a special shout-out the Next-gen sequencing companies directly building cloud application to plug-into their own systems: GenapSys, Ion Torrent Systems, Oxford Nanopore.

Oxford Nanopore, still in quasi-shadow-mode as they are, like to be secretive; however, they mention AWS cloud applications in their Early Access Documentation. That, along with the very end-to-end nature and slow-to-market release, leads me to believe it’s in the pipe. I’ll be exploring these guys a bit more, later.

In Part 4, we’ll take a deep-dive into Seven Bridges Genomics, assessing positioning and key risks. Until then, enjoy (aside: sorry about the side-scroll, until I find a better solution for narrow blogger page widths)…
Company 1,2 Location Founding Tags 3,4 Products Cloud Direct Competitor
Agile Genomics* Mt Pleasant, SC 2007? Consulting AlignShop, MiST Database X
Aridhia Informatics* Edinburgh, UK 2008 Healthcare/Clinical AnalytiXagility X
Appistry* St. Louis, MO 2001 Consulting Ayrris X
Ayasdi* San Francisco Bay Area, CA 2008 General Machine Learning Ayasdi Cure/Topological Data Analysis (TDA) X
BGI EasyGenomics* Greater Boston, MA 1999/2010 Nonprofit, Core Facility, Open Source Various X
Bina Technologies* San Francisco Bay Area, CA 2011 Hardware/IT Bina Applications X X
BioDatomics* Greater Washington, DC 2012 Open Source SaaS, Pro, Community5 X X
Congenica* Cambridge, UK 2013 Healthcare/Clinical, Healthcare/Diagnostic Sapienta ? ? (Not Released)
Cypher Genomics Greater San Diego Area, CA 2011 Mantis X X (Early Access)
DNAnexus* San Francisco Bay Area, CA 2009 DNAnexus Platform X X
Eagle Genomics* Cambridge, UK 2008 Consulting ElasticAP X
Era7 Bioinformatics* Granada, Spain; Greater Boston, MA 2004 Consulting, Open Source, Bacterial N/A
Fios Genomics* Edinburgh, UK 2008 Consulting N/A
GenapSys6 San Francisco Bay Area, CA 2010 Hardware/Sequencing Genius X ?
Genestack* Cambridge, UK; St. Petersburg, Russia 2012 Genestack Platform X X (Beta)
Genome Cloud Seoul, Korea ? g-Insight X X
Genomics Limited Oxford, UK 2014 Shadow-mode N/A
GenoSpace Greater Boston, MA 2011 Shadow-mode ? X
Geospiza PerkinElmer* Seattle, WA 1997 Desktop GeneSifter
Globus Genomics Chicago, IL ? Globus Platform X ?
Ion Torrent Systems by Life Technolgies 7* San Francisco Bay Area, CA 2007 Hardware/Sequencing Ion Reporter X ?
Maverixbio* San Francisco Bay Area, CA 2012 Desktop Maverix Analytic Platform
NextBio by Illumina* San Francisco Bay Area, CA 2004 Desktop? NextBio Platform
NZGL Dunedin, New Zealand ? Consulting
Omicia Biocomputing* San Francisco Bay Area, CA 2009 Healthcare/Clinical Opal X
Oxford Gene Technology* Oxford, UK 1995 Desktop, Sequencing Service CytoSure Interpret
Oxford Nanopore 8* Oxford, UK 2005 Hardware/Sequencing X ?
Personalis* San Francisco Bay Area, CA 2011 Consulting, CRO, Sequencing Service N/A
Seven Bridges Genomics* Greater Boston, MA; Belgrade, Serbia (IT) 2009 Igor X X
Spiral Genetics* Seattle, WA 2012? Consulting, Desktop N/A / Anchored Assembly Method
Station X* San Francisco Bay Area, CA 2010 Desktop Gene Pool
Syapse* San Francisco Bay Area, CA 2009 Healthcare/Clinical Synapse Platform X
The Genome Analysis Centre (TGAC)* Norwich, UK 2009 Nonprofit, Core Facility Various X
Tute Genomics* Salt Lake City, UT 2012 Tute Platform/ANNOVAR X ?
Technical Notes:
After a misguided regression/sojourn into typing Part 2 in Google docs then copying to Blogger, which resulted in ultra-crap formating, I’m back to using stacked.io, which I explored here. If there is demand/interest, I’m willing to update/convert this listing to a more dynamic format. Just give a shout in the comments.

  1. To the best of my knowledge, these companies form a closed set under the LinkedIn feature ‘People Also Viewed’, omitting spurious hits.
  2. * Direct link to company LinkedIn Page
  3. Companies are for-profit unless otherwise stated, e.g. Nonprofit
  4. Core facility implies Sequencing Service.
  5. BioDT Community is free to use
  6. Special shout-out for Hardware/Sequencing companies with cloud applications.
  7. Special shout-out for Hardware/Sequencing companies with cloud applications.
  8. Special shout-out for Hardware/Sequencing companies with cloud applications.