phetsims / gene-expression-essentials

An educational simulation about how genes work to create proteins.
GNU General Public License v3.0
4 stars 6 forks source link

mRNA screen can have both transcription factors bonded simultaneously #39

Closed BryceAG closed 7 years ago

BryceAG commented 7 years ago

The mRNA screen can have both transcription factors applied at the same time, although it appears that the positive has to stick first. The polymerase will not create mRNA while like this, meaning the negative factor that is overlapping is considered the active factor.

image

related to phetsims/tasks#776

phet-steele commented 7 years ago

@BryceAG is there a procedure for this bug? Can we have the platform/troubleshooting info?

BryceAG commented 7 years ago

It seems that they have to both be moving in to connect at around the same time. If one is well connected before the other comes by then it will bounce of correctly. This was tested on Bates Windows 7.

Troubleshooting information (do not edit): Name: ‪Gene Expression Essentials‬ URL: http://www.colorado.edu/physics/phet/dev/html/gene-expression-essentials/1.0.0-dev.2/gene-expression-essentials_en.html Version: 1.0.0-dev.2 2017-01-30 19:21:44 UTC Features missing: touch User Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36 Language: en-US Window: 1366x662 Pixel Ratio: 1/1 WebGL: WebGL 1.0 (OpenGL ES 2.0 Chromium) GLSL: WebGL GLSL ES 1.0 (OpenGL ES GLSL ES 1.0 Chromium) Vendor: WebKit (WebKit WebGL) Vertex: attribs: 16 varying: 10 uniform: 253 Texture: size: 8192 imageUnits: 16 (vertex: 16, combined: 32) Max viewport: 4096x4096 OES_texture_float: true Dependencies JSON: {"assert":{"sha":"a707328c","branch":"master"},"axon":{"sha":"1cf10281","branch":"master"},"babel":{"sha":"10f77fec","branch":"master"},"brand":{"sha":"0be722ee","branch":"master"},"chipper":{"sha":"f4cd39bf","branch":"master"},"dot":{"sha":"75380061","branch":"master"},"gene-expression-essentials":{"sha":"9e5baa27","branch":"master"},"joist":{"sha":"d15e6fab","branch":"master"},"kite":{"sha":"6059ebb0","branch":"master"},"phet-core":{"sha":"84747dff","branch":"master"},"phetcommon":{"sha":"1cb33196","branch":"master"},"query-string-machine":{"sha":"d8a4ff18","branch":"master"},"scenery":{"sha":"550df01a","branch":"master"},"scenery-phet":{"sha":"b04d8086","branch":"master"},"sherpa":{"sha":"785a536c","branch":"master"},"sun":{"sha":"d0708aa5","branch":"master"},"tandem":{"sha":"d9c124e5","branch":"master"}}

phet-steele commented 7 years ago

Reproduced on macOS 10.12.3 Chrome, mostly with just good timing. In my case, the negative tf was below. The RNAP would still not transcribe, though:

screen shot 2017-02-20 at 1 56 47 pm
jbphet commented 7 years ago

This is a problem in the Java sim as well. Here is a screen shot:

gee-tf-issue-java

jbphet commented 7 years ago

This can be most easily reproduced by making the concentrations of both factors high, then setting the affinities to about halfway and waiting until it looks like both a positive and negative are headed towards the DNA, then cranking up the affinities.

jbphet commented 7 years ago

The root cause of this issue is that both positive and negative transcription factors were making "proposals" to the DNA when neither was attached, and since the space was available on the DNA strand, the proposals was being accepted. I've modified the code to check for potential overlap with incoming molecules as well as attached molecules, and this seems to have done the trick.

This changes to fix this were quite complicated and pervasive, and I'd like to get QA to test it soon so that I can feel confident that it has been addressed while things are still fresh in my mind. Assigning to @phet-steele for this.

phet-steele commented 7 years ago

@jbphet this is a pain in the neck to try to reproduce. I think I've seen a couple of occurrences where the old code would have demonstrated a problem, but it's hard to tell. All of those occurrences did not break with the new changes, so yay! 🤞