Tag Archives: chemlambda

Chemlambda for the people (with context)

UPDATE:Here are  the slides associated. The  context of this is very weird and it still continues as I write this update (Aug 6 2017).

UPDATE 2: With even more details, on Medium: How I became a face model for TED.

In Jan 2017 I was contacted by a curator of the TEDGlobal 2017 and asked if I would like to give a talk. I was very surprised because I had split feelings:

(positive) this could boost even more the interest in my proposal of molecular computers based on chemical reactions which mimic interaction nets rewrites

KeepCalmStudio.com-Shortest-Explanation-Of-Chemlambda-[Knitting-Crown]-Keep-Calm-And-Use-Rna-For-Interaction-Nets

(negative) this is a subject which is fundamental science with possible worrying consequences,

(positive) but maybe I could talk about my personal experience with Open Science?

(negative) definitely not the touchy-feely kind, there’s nothing to be happy about yet, the fight for OS is tough and it continues,

so I agreed.

In May 2017 I was announced that indeed I’ll talk at the TED event. Yay, because since January I realised I could use this talk for several good purposes. Something fishy though, my feelings are complex, you see? there was this question in the back of my head: OK so this is the best public talks organization. We are in 2017. They need 4 months to start organizing? Hm, OK.

And from that point on I felt into a bureaucracy nightmare.

They baptized me BULIGIA for some time, even if my google mail is Marius.Buliga@gmail.com. They sent me official invitations and other stuff… To me? nah, to BULIGIA. I sent them something like 5-6 polite mails until they finally figured out what’s wrong.

I was joking with my friends: maybe they think I’m Italian. Marius Buligia! Somebody said that “buligia” sounds like the name of a disease. So I’m going to spread the buligia disease in the fancy circles of TED. Funny! So be it.

Then they told me that I’ll have 6 min. … right, what can I do with less than 900 words? I can talk about Open Science. I quickly wrote a draft, give it the name ringo.txt  😉 and sent them.

This draft is now available as Open Science is RWX science. A quote from the original:

“I use everything available to turn this project into Open Science. You name it: old form articles, html and javascript articles, research blog, Github repository, Figshare data repository, Google collection, this 🙂 TED talk”

No, they wanted me to talk about chemlambda. Moreover (and this was one expression they kept repeating, Borg like) GitHub, Figshare, micromanagement, etc are “insider words”. Don’t use insider words.

Well, this is strange because one thing which made me very interested into this talk was the audience. You see, apparently the best thing about a main TED event is the audience in the room. I could see that they are in one of these categories: founders of the main web or computers services, rich from less well known but clever businesses  involving computers, representing investment funds, NY or Silicon Valley intellectuals, others in proportion of 10 percents. (And the speakers.)

So maybe a regular editor thinks that it reaches a bigger audience if the talk is made for people using 1500 words, drooling over their keyboard while they look at the talk with empty eyes.

Does not apply here, right?

Moreover the bigger audience is not reached, because presently there are huge audiences for anything interesting. There are so many people on the Net today that you don’t have to go to the barely human level to attract them. No public talks show has a 2 billion audience. If they have several million people interested in a talk, that’s great. Or there are always several million intelligent people interested in a public talk on science, computing, biology, whatever, which are bored to death by the stupidity of the generic shows proposed by the regular media.

OK, so what can I do with less than 900 words to explain chemlambda? Images, of course 🙂

I proposed them a choice between a second version of the script (more chemlambda, less Open Science) and a more bold one based on the Internet of Smells story.

They picked the first choice and after talking with the science editor (who’s a nice guy), after encountering some more “insider words” remarks, I said what the heck and just sent them a script based on the Internet of Smells.

They liked it a lot! It is basically what became “Chemlambda for the people”.

Great! This took them almost 2 months. (The year is 2017.)

I was very flexible concerning their suggestions not because I was forced to, but because I wanted to take all this as a challenge and also to learn from this interaction.

I prepared the slides, sent them and waited for the first rehearsal. At this point they had my script, which they liked, and my slides, html with high res movies and animations included.

They proposed to use for the rehearsal something professional (they said), won’t give the name.

Then I had a first rehearsal with the TED team, where they have not used my slides. They asked me to use screencapture from my laptop, I couldn’t see what they see. I could barely hear them (and see them) but I imagined that they know what they do.

For those quick to point out that maybe the connection was bad because I was in Romania, think again. Romania, and especially Bucharest, is one of those little places in the world with one of the top speed web connections. Moreover, many people whom I talk to by video know that we can have a decent and alive exchange even if I’m based in Romania. So leave your stupid racism at the door please and continue.

I was very worried inside, something is wrong. I was screaming to them and speaking very rarely, because the conditions I experienced were like wind howling during a storm.

The movies and animations I prepared and they had, but not used them? I didn’t know then, but learned later that the screencast turned into random renderings at the frequency of 1/s.

Anyway, after this professional rehearsal they were not happy to learn that I’ll be away for 2 weeks. People with small kids know that you have to make reservations months before the vacation.

Next day I received the edited  side of the transmission (so I could see what they saw, hear what they heard).

Finally, just before leaving for the vacation I had a (normal, not professional) video talk with the main curator and the scientific editor where they said that there’s not enough time to prepare the talk more and they decided to not let me talk. But I still participate at the event, in the public.

That hurt! For those who don’t know me, I’m a professional mathematician. I gave hundreds of public talks, most of them in English or French, I gave university courses, so I definitely never had a problem with public speaking. My pride is hurt!

Nevermind, is their show I said. I’ll think about coming and announce them. Them I mailed them and refused to come, just to be in the public.

During the vacation I started to have doubts about all this. Wait a moment, that was not a rehearsal, that was a set up, or it looked like that. Or maybe is my pride, again? Hm…

I was still receiving their general announcements and I saw they made public the list of speakers.

I did not wanted to link to their site, for privacy reasons, but I could still use a search engine. Surprise! I appear as a speaker on CNN. What’s this?

I went to the CNN site and I was not there. However, Google caches the page seen by the crawler. I got it and … I was there. For some time, then the page was edited.

I saved the cached page. Photos, like this one

Screenshot from 2017-08-06 14:37:06

are still available see this link. (archived version)

OK, so they made a mistake, right? They just sent to CNN the list of speakers (after they took me off), but they forgot to take me off from that list.

Back home I opened the cached html of the CNN page and look closer. Do you notice something weird here?

Screenshot from 2017-08-05 15:20:05

Yes, I appear twice, haha. At the position 33 and then 44.

OK, mistakes are done all the time, even by the most professional teams. Forget about it. Let’s stop with the thinking about wtf was all this.

Yesterday, Aug 5, more than 2 weeks after they announced the speakers, I visited the Tedglobal2017 site.

Somebody familiar was looking at me. Yeah, that guy, second row in the middle!

Screenshot from 2017-08-05 15:04:05

 

Huh? Naah, my figure again. Is it? Let’s look closer, use a small window like a phone or tablet. Gives this. (for the original image this link and archived version)

Screenshot from 2017-08-05 20:38:40

Yep, that’s me!

Now enjoy the script (slightly modified) and don’t forget to look at the slides.

______

We can program a computer to do anything. What if we had the same power over the molecules of our bodies? Let’s imagine how this could change our lives.

For example… this version of the scenario [3].

Adam and Eve meet at a party. She likes him. Her sniffer ring can sense Adam’s biomolecules floating in the air between them. One of them triggers a warning. Eve forwards the warning to Adam’s phone.

Back home, Adam files a bug report with his internet slash health provider. The bug report contains his biological ID and the DNA code received by the warning message.

The bug report is opened.

The ID and DNA code are converted to a digital chemistry. Technical staff manipulate this chemistry, as hackers about to debug a program in Neuromancer style.

“still he’d see the matrix in his sleep, bright lattices of logic unfolding across that colorless void”
William Gibson, Neuromancer

Things like making lists, just, fold up inside themselves. Come out the other way around. Crazy things.”
Pseudo — William Gibson
https://aphyr.com/posts/340-reversing-the-technical-interview#comment-2763

They find a digital molecule which solves Adam’s problem. A medicine. They convert the solution back to a DNA code which they send to Adam’s router.

The router can turn DNA code back into real biomolecules. Why? It’s a Venter 9000 digital-to-biological converter. Version one looks like this [1].

Is a bit larger than a router, for the moment. But, in few years, the 9000 version will be in everybody’s home.

The router emits these biomolecules into Adam’s bedroom. They enter the body and so the bug report is solved, the medicine is delivered and Adam is in perfect health again.

Can we really do this?

I think so, there are 3 steps to make.

Step 1. Build a digital chemistry which we can program. In a digital chemistry data and programs are all graph like structures, digital molecules which “fold up inside themselves and come out the other way around” only they do it randomly, like in real chemistry.

We would create and manipulate digital molecules as if we write programs made from a very few elementary bricks. Then we could simulate their behaviour on a computer, to be sure they work right.

Step 2. Use Nature to simulate this digital chemistry. There’s no computer as powerful as Nature, let’s use it. Find a digital-to-biological dictionary from the elementary bricks of the digital chemistry to real biomolecular bricks.

Step 3. Build digital-to-biological converters and biological-to-digital sensors. Craig Venter gave us the first generic DBC converter. Sensors as performant as Eve’s sniffer ring, as a part of the Internet of Things, are possible.

OK, so the program is simple. Let’s do it right away!

Well, I’m not a chemist, I’m a mathematician and I built a digital chemistry which does work like real chemistry. It is indeed inspired from stuff related to Lisp and Haskell (but goes in wild directions). Is called chemlambda [6], is an Open Science project and I hope it can be used in reality.

Molecules in chemlambda are graphs made by colored nodes and links between them. The chemical reactions are done by enzymes rewiring small patterns in these graphs.

Chemlambda is Turing universal, meaning that you can translate any computer program into one of these molecules and execute it via random digital chemical reactions.

In my simulations I used things like the Ackermann function or the factorial, but think: any program! You could do anything with the Nature’s computer.

More general, going far outside the small world of computer programs interesting for the neighbourhood programmer, you could design molecules from first principles.

Instead of shooting in the dark by doing many experiments with real world molecules, kind of like a barbarian who finds new uses for the tiny things discovered in a clock workshop, instead of this you could design what you need, then turn it into reality.

Colonize Mars? Deposit all Netflix shows in lichen spores?

Just applications.

Some frightening, of course.

But: understand life at molecular level? What a worthy goal. This may (or may not) help.

If the step 2 is realized, here’s the bottleneck.

I am very willing to try the step 2 of the program. I think this can be done by a combination of clever searches in available chemical databases and collaborative work.

After all, chemlambda it’s an Open Science project. Means that it may scale, with chance.

________

[1] Digital-to-biological converter for on-demand production of biologics, Kent S Boles, Krishna Kannan, John Gill, Martina Felderman, Heather Gouvis, Bolyn Hubby, Kurt I Kamrud, J Craig Venter and Daniel G Gibson
https://www.nature.com/nbt/journal/vaop/ncurrent/full/nbt.3859.html
see also Motherboard article https://motherboard.vice.com/en_us/article/59zj9b/craig-venters-digital-to-biological-converter-is-real

[2] The chemlambda repository README is the entry point to the project.
https://github.com/chorasimilarity/chemlambda-gui/blob/gh-pages/dynamic/README.md

[3] Internet of Smells, http://telegra.ph/Internet-of-Smells-04-26

Advertisements

More experiments with Open Science

I still don’t know which format is better for Open Science. I’m long past the article format for obvious reasons. Validation is a good word and concept because you don’t have to rely absolutely on opinions of others and that’s how the world works. This is not all the story though.

I am very fortunate to be a mathematician, not a biologist or biochemist. Still I long for the good format for Open Science, even if, as a mathematician, I don’t have the problems biologists or chemists have, namely loads and loads of experimental data and empirical approaches. I do have a world of my own to experiment with, where I do have loads of data and empirical constructs. My mind, my brain are real and I could understand myself by using tools of chemists and biologists to explore the outcomes of my research. Funny right? I can look at myself from the outside.

That is why  I chose to not jump directly to make Hydrogen, but instead to treat the chemlambda  world, again, as a guinea pig for Open Science.

There are 427 well written molecules in the chemlambda library of molecules on Github. There are 385 posts in the chemlambda collection on Google+, most of them with animations from simulations of those molecules. It is a world, how big is it?

It is easy to make first a one page direct access to the chemlambda collection. It is funnier to build a phylogenetic tree of the molecules, based on their genes. That’s what I am doing now, based on a work in progress.

Each molecule can be decomposed in “genes” say, by a sequencer program. Then one can use a distance between these genes to estimate first how they cluster and later to make a phylogenetic tree.

Here is the first heatmap (using the edit distance between single occurrences of genes in molecules) of the 427 molecules.

Screenshot-22

Is a screenshot, proving that my custom programs work 🙂 (one understands more by writing some scripts than by taking tools ready made from others, at least at this stage of research).

By using the edit distance I can map the explored chemlambda molecules. In the following image the 427 molecules from the library are represented as nodes and for each pair of molecules at an edit distance at most 20 there is a link. The nodes are in a central gravitational field, each node has the same charge and the links between nodes act as springs.

Screenshot-29_map

This is a screenshot of the result, showing clusters and trees, connecting them. Not very sophisticated, but enough to give a sense of the explored territory. In the curated collection, such a map would be useful to navigate through the molecules, as well as for giving ideas about which parts are not as well explored. I have not yet made clear which parts of the map cover lambda terms, which cover quines, etc.

Moreover, I see structure! The 427 molecules are made of copies of  605 different linear “genes” (i.e. sticks with colored ends)  and 38 ring shaped ones.  (Is easy to prove that lambda terms have no rings, when turned into molecules.) There are some interesting curved features visible in the edit distance of the sticks.

screenshot-23

They don’t look random enough.

Is clear that a phylogenetic tree is in reach, then what else than connecting the G+ collection posts with the molecules used, arranged along the tree…?

Can I discover which molecules are coming from lambda terms?

Can I discover how my mind worked when building these molecules?

Which are the neglected sides, the blind places?

I hope to be able to tell by the numbers.

Which brings me to the main subject of this post: which is a good format for an Open Science piece of research?

Right now I am in between two variants, which may turn out to not be as different as they seem. An OS research vehicle could be:

  • like a viable living organism, literary
  • or like a viable world, literary.

Only the future will tell which is which. Maybe both!

Chemlambda will be curated

Chemlambda appeared out of frustration that nobody understands and see what I do, so I had to write it. The same with the chemlambda collection, I’ll curate it and put it in one easy to figure out place. It’s doable. The only fear I have about this is to be sucked again in this highly hallucinatory universe, which is almost real now and will be really real soon.

So for the moment here’s a page which allows you to go directly to any of the chemlambda collection post.

Maybe this will improve my karma so I’ll be prepared to do pure hydrogen. The initial trials look very promising and despite the apparent simplicity (what? make required mathematics, space, physics and this simple atom, all invoked from abstract nonsense like in a super geometric Lisp) the hydrogen project is more difficult because there is no precedent.

So wish me luck 🙂

Synergistics talks through his chemlambda Haskell version

… in a very nice and clear, 9:30 presentation. I especially enjoyed from 5:32, when he describes what enzymes are and further, but all of the presentation is instructive because it starts from 0.

The video talk is this

His github repository chemlambda-hask is this

https://github.com/synergistics/chemlambda-hask

Thank you J, very nice!

Pharma meets the Internet of Things

Pharma meets the Internet of Things, some commented references for this future trend. Use them to understand

[0] After the IoT comes Gaia
https://chorasimilarity.wordpress.com/2015/10/30/after-the-iot-comes-gaia/

There are two realms of computation, which should and will become one: the IT technology and biochemistry.

General stuff

The notion of computation is now well known, we speak about what is computable and about various models of computation (i.e. how we compute) which always turned out to be equivalent in the sense that they give the same class of computable things (that’s the content of the Church-Turing thesis).

It is interesting though how we compute, not only what is computable.

In IT perhaps the biggest (and socially relevant) problem is decentralized asynchronous computing. Until now there is no really working solution of a model of computation which is:
– local in space (decentralized)
– local in time (asynchronous)
– with no pre-imposed hierarchy or external authority which forces coherence

In biochemistry, people know that we, anything living, are molecular assemblies which work:
– local in space (all chemical interactions are local)
– local in time (there is no external clock which synchronizes the reactions)
– random (everything happens without any external control)

Useful links for an aerial view on molecular computing, seen as the biochemistry side of computation:

[1] https://www.britannica.com/technology/DNA-computing

Some history and details provided. Quote from the end of the section “Biochemistry-based information technology”

“Other experiments have shown that basic computations may be executed using a number of different building blocks (for example, simple molecular “machines” that use a combination of DNA and protein-based enzymes). By harnessing the power of molecules, new forms of information-processing technology are possible that are evolvable, self-replicating, self-repairing, and responsive. The possible applications of this emerging technology will have an impact on many areas, including intelligent medical diagnostics and drug delivery, tissue engineering, energy, and the environment.”

[2] http://www.owlnet.rice.edu/~Cyrus.Mody/MyPubs/Molecular%20Electronics.pdf

A detailed historical view (written in 2000) of the efforts towards “molecular electronics”. Mind that’s not the same subject as [1], because the effort here is to use biochemistry to mimic silicon computers. While [1] also contains such efforts (building logical gates with DNA, etc), DNA computing does propose also a more general view: building structure from structure as nature does.

[3] https://www.extremetech.com/tag/molecular-computer

Two easy to read articles about real applications of molecular computing:
– “Microscopic machine mimics the ribosome, forms molecular assembly line”
– “Biological computer can decrypt images stored in DNA”

[4] https://www.technologyreview.com/s/601842/inside-genomics-pioneer-craig-venters-latest-production/

Article about Craig Venter from 2016, found by looking for “Craig Venter Illumina”. Other informative searches would be “Digital biological converter” or anything “Craig Venter”

[5] https://www.ted.com/talks/lee_cronin_print_your_own_medicine/transcript?language=en

Interesting talk by an interesting researcher Lee Cronin

[6] The Molecular Programming Project http://molecular-programming.org/

Worth to be browsed in detail for seeing the various trends and results

Sitting in the middle, between biochemistry and IT:

[1] Algorithmic Chemistry (Alchemy) of Fontana and Buss
http://fontana.med.harvard.edu/www/Documents/WF/Papers/alchemy.pdf

Walter Fontana today: http://fontana.med.harvard.edu/www/index.htm

[2] The Chemical Abstract Machine by Berry and Boudol

http://www.lix.polytechnique.fr/~fvalenci/papers/cham.pdf

[3] Molecular Computers (by me, part of an Open Science project, see also my homepage http://imar.ro/~mbuliga/ and the chemlambda github page https://github.com/chorasimilarity/chemlambda-gui/blob/gh-pages/dynamic/README.md )

http://chorasimilarity.github.io/chemlambda-gui/dynamic/molecular.html

On the IT side there’s a beautiful research field, starting of course with lambda calculus by Church. Later on this evolved in the direction of rewriting systems, then graph rewriting systems. I can’t even start to write all that’s done in this direction, other than:

[1] Y. Lafont, Interaction Combinators
http://iml.univ-mrs.fr/~lafont/pub/combinators.ps

but see as well the Alchemy, which uses lambda calculus!

However, it would be misleading to reduce everything to lambda calculus. I came to the conclusion that lambda calculus or Turing machines are only two among the vast possibilities, and not very important. My experience with chemlambda shows that the most relevant mechanism turns around the triple of nodes FI, FO, FOE and their rewrites. Lambda calculus is obtained by the addition of a pair of A (application) and L (lambda) nodes, along with standard compatible moves. One might use as well nodes related to a  Turing Machine instead, as explained in

http://chorasimilarity.github.io/chemlambda-gui/dynamic/turingchem.html

Everything works just the same. The center, what makes things work, is not related to Logic or Computation as they are usually considered. More later.

How to use the chemlambda collection of simulations

The chemlambda_casting folder (1GB) of simulations is now available on Figshare [1].

How to use the chemlambda collection of simulations? Here’s an example. The synthesis from a tape video [2] is reproduced here with a cheap animated gif. The movie records the simulation file 3_tape_long_5346.html which is available for download at [1].

That simple.

If you want to run it in your computer then all you have to do is to download 3_tape_long_5346.html from [1], download from the same place d3.min.js and jquery.min.js (which are there for your convenience). Put the js libs in the same folder as the html file. Open the html file with a browser, strongly recommend Safari or Chrome (not Firefox which blocks with these d3.js animations, for reasons related to d3). In case your computer has problems with the simulation (I used a macbook pro with safari) then slow it like this: edit the html file (with any editor) and look for the line starting with

return 3000 + (4*(step+(Math.random()*

and replace the “4” by “150”, it should be enough.

Here is a longer explanation. The best would be to read carefully the README [4].
“Advanced”: If you want to make another simulation for the same molecule then follow the steps.

1. The molecule used is 3_tape_long_5346.mol which is available at the library of chemlambda molecules [3].

2. So download the content of the gh-pages branch of the chemlambda repository at github [4] as explained in that link.

3. then follow the steps explained there and you’ll get a shiny new 3_tape_long_5346.html which of course may be different in details than the initial one (it depends on the script used, if you use the random rewrites scripts then of course the order of rewrites may be different).

[1] The Chemlambda collection of simulations
https://doi.org/10.6084/m9.figshare.4747390.v1

[2] Synthesis from a tape
https://plus.google.com/+MariusBuliga/posts/Kv5EUz4Mdyp

[3] The library of chemlambda molecules
https://github.com/chorasimilarity/chemlambda-gui/tree/gh-pages/dynamic/mol

[4] Chemlambda repository (readme) https://github.com/chorasimilarity/chemlambda-gui/blob/gh-pages/dynamic/README.md