Some enjoyable historic papers

The Royal Society celebrated its 350th anniversary last year. Trailblazing is a collection of historic papers, which the society published in her Philosophical Transactions. Here some favourites. Each is a very early paper of its field, so everything has to be explored, new things need to be named, nobody knows which are the relevant parameters.

  • … New Theory about Light and Colours… (1672) Isaac Newton at his best: buys a prism, uses the sun, his window curtains and a ruler to deduce the corpuscle theory of light, a theory of the nature of colours, of mixture of colours, of white light, the mechanism of colour vision, the inner workings of rainbows, and the limitation of refractive telescopes due to colour dispersion. He also invents the reflective telescope to overcome the problem. He does not waste time with a splendid introduction: To perform my late promise to you, I shall without further ceremony acquaint you, that in the beginning of the year 1666 I procured me a Triangular glass-Prisme to try herewith the celebrated phenomena of colours. and comes to his experiments right away. A very enjoyable reading. Continue reading

FASTA and FASTQ reader

Finite state machines for fun & profit. A python snippet which extracts titles and sequences from FASTQ files and discards the rest.

reader = open("humanrna.fastq", "rb")
title=""
buffer=""

while 1:
    line = reader.readline()
    if not line:
        break
    line = line.strip()

    if line == "":
        continue

    if line.startswith("@"):
        #this is a title -- starts a new fastq block
        title=line[1:]
        #read seq
        buffer = reader.readline().strip()
        #dump quality control
        dummy = reader.readline()
        dummy = reader.readline()

       #some use of title and buffer...
       # ...

A snippet for reading FASTA files.

reader = open("humanrna.fasta", "rb")
title=""
buffer=""

def useBuffer(title, buffer):
    #use the buffer somehow...
    #...
    pass

while 1:
    line = reader.readline()
    if not line:
        #This is the end
        if title:
            #use the last title and buffer...
            useBuffer(title, buffer)
        break
    
    line = line.strip()

    if line == "":
        continue

    if line.startswith(">"):
        #this is a title -- starts a new fasta block         
        if buffer:
            #use the last title and buffer somehow...
            useBuffer(title, buffer)

        buffer=""
        title=line[1:]
        continue                    

    if title:
        buffer += line

 

 

How many mutants do I need for characterising an enhancer?

A little toy tool that shows which logic functions are compatible with the observed behaviour of a logic gate, e.g. when making a boolean model of an enhancer out of loss-of-function data. Created for fun during a summer school on genetic networks in Woods Hole.

In each row:

  • input field: response of gate (1/0)
  • grey coloumns: state of input variables
  • remaining orange coloumns: compatible logic functions.