Looking for a tool to detect and track knots in polymer simulations

Hi everyone,

I’m running some polymer simulations in LAMMPS and I want to analyse topological features — specifically to detect and localise knots in a trajectory.

I’ve seen references to a package called topoly, but I can’t find any maintained or installable version that includes this feature.

Does anyone know:

  • Where I can find a working version of topoly that supports knot localisation?
  • Or any alternative tools to identify and localise knots in polymer chains using LAMMPS output (e.g., .lammpstrj files)?

Thanks in advance!

Something like this https://www.elenipanagiotou.com/about-4-1 or

https://www.elenipanagiotou.com/about-4?

1 Like

The answer to your question heavily depends on what exactly you want to measure. The link of @evoyiatzis looks promising.
Otherwise, maybe the z1+ code is if help.

Hi, thanks a lot. I’ll check it out.
I want to plot the displacement (from let’s say the first monomer) vs time of a knot (for example trefoil) in a polymer chain.

Oh and apparently Z1+ is more about measuring entanglement or Z1 length? What I’m specifically interested in is how to know the exact location of a knot and track it over time.

Thanks a lot. Hmmm have you seen it in Python by any chance?

GitHub - Parallel-Jones-Polynomial/ParallelJones: python package to evaluate Jones polynomial of curves in 3 space is in python

The non - standard lammps compute should be easier to use if you can compile the executable

I am not aware of any python implementation. of the aforementioned codes. You have to read the corresponding papers and see if you can extract the information that you are looking for.
What do you consider a knot? If two molecules are entangled, is this already a “knot”?
Some things to consider

  • TEPPP seems to have a compute, that is calculating sth during runtime. check if that is useful for you or if you can extract what you need.
  • Z1 can do a primitive path analysis and is able to output the primitive path of all molecules. If you analyze this afterwards and two beads of two different molecules are “close” to each other, this is most likely an entanglement. You could try to track these clusters. But it is your task to check and verify if your method works or not. see, e.g. Redirecting

Python packages: no idea if they can do what you are looking for. Check the documentation