Jump to content

Drawing parallels between Genetic Biology as a Software Engineering Problem


Recommended Posts

First posted in biology, but I dont know how to cross-post, so I will copy paste it here too.

I came across this perspective when I realize using the CRISPR gene editing technology in the context of synthetic biology is basically doing code/DLL injection. In another way of seeing it, it is akin to installing chrome extensions (though this isn't really accurate because chrome extensions requires explicit permission, but this will be an easier example to use than a computer virus) to add or modify functionality of chrome. Chrome extensions are able to modify and monitor everything you do in the browser, and with what genes we have designed and inserted into the genetic host, we can do something similar.

This got me thinking if a new perspective can be drawn to solve biology problems. Computer engineers design one of the most resilient and precise systems known to man (This may sound like a joke to you, but you will realize that the reason why your car and airplanes all work as expected with all the programs in them is because of the effort the engineers made to make them secure and resilient). No matter how much you hammer away or abuse your computer, you don't expect all the billions and trillions of electronic parts to just give up on you. Hospital systems, rocket systems, these are all systems resilient to failure. Modern software OS-s has integrity checks, auto-repair and security schemes designed to protect the information in your computer and prevent all the extra programs you install from going on a rampage. Some times there will be failures, but we can expect the program to be better the next time a security patch rolls out. I do not mention UI/UX because this is pretty subjective, but security systems in of itself it something to behold.

There are many parallels that can be drawn from both our human body and computer systems (including the network systems all the way to kernel software). For example, protein networks/reaction chains can be thought of computer ABIs and program flow processes. One can hook onto them by hijacking one part of the flow. In bio systems it would be gene injection as mentioned at the start of this post and in software it can be DLL injection.

Take for example, cancer. I know cancer is a bit too complex to be taken as an example, but it is also one of the easiest, IMO to illustrate this. I will skip a lot of details because being nit-picky will only stifle the discussion. Cancer has two main high-level problems : the cancer genetic mutation and the cancer micro-environment. The cancer genetic mutation by external factors can be thought in terms of software memory corruption, which can be caused by a faulty installed program or accidental memory rewriting by another program. In modern software, this is mitigated by integrity checks and auto-repair systems where the system just copy-pasts working environments. If this doesn't work, software engineers can opt to do in-memory patching of the faulty software. In biological terms, integrity checks are performed by our immune system, who also deletes faulty programs/cells.  The immune system is also capable of killing cancer cells. However, there is another factor in preventing this, which is the cancer micro-environment.

In a summary, the cancer tumor covers itself in a mesh of normal cells, creates an acidic environment and creates interstitial pressure. This is a major design problem that a lot of cancer medicine has to solve in drug delivery. In terms of computer engineering, the corrupted program has barricaded itself behind a locked segment of memory, where high level programs cannot reach (user privileges), where it also faces resistance from the corrupted program which overwrites and shifts its memory footprint dynamically. The easiest way software engineers deal with this is to nuke the memory segment: deleting it from memory. We also do this with cancer tumors by removing the tumour directly. However, the cancer cells / corrupted programs, might still survive within the body. Computers typically have scanning programs that check through all of the memory. These programs are more commonly known as anti-viruses. However, our body does not have a proper full body scan that checks every cell except the over-worked WBCs.

Essentially we have developed a highly scalable solution for our computers, why can't we do the same thing for our body, like developing new antivirus programs for our favourite OS-s.

Having said all this, I would like to extend this perspective by working with people from both biology and computer engineering fields in suggesting new places where this perspective will help, and spark a new discussion about this.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.