Knotilus is a database of all prime alternating links with 23 crossings or less (according to their website there are 98,517,495,461 such links). It’s great for browsing pretty pictures of knots and links (with different colors!). Along with pictures of the links, Knotilus provides its own archive number, the Gauss code for the alternating link, other knot tabulation numbers, and information about the symmetry and orientation of the link. The Knotilus archive number is of the form ax-b-c, where a = number of crossings, b = number of link components, and c = the cth link in the archive for a set a,b. For example, 6x-1-1 is a knot with 6 crossings and 1 link component (hence a knot), and is (arbitrarily) the first knot listed in the archive with those properties.
One input method for my SURF project is inputting the Knotilus archive number, so my script needs to download the corresponding plaintext file from the database. Last week, one of my friends showed me how to view network requests on Chromium or Chrome (right-click on page > Inspect Element > Network). After viewing the network request while downloading the plaintext file for a knot, Chromium recorded the URL to directly download the plaintext file. Viewing network requests also gave me the URL for the page that loads the knots. Some knots/links with a higher number of crossings take several seconds (up to 15 or so) to load or “anneal”, and requesting the plaintext file before the knot has loaded produces an empty file. As a result, my program has to keep requesting that different URL to load the knot until the plaintext file is non-empty.
One of the main things I’m working on is adapting the previous code I wrote for Plink to work with the Knotilus downloads, since the information given by Knotilus is different than the information given by Plink. Currently I’m working on minimizing copy-pasted code, and making functions handle input from both Knotilus and Plink correctly.
To prepare to calculate the Heegaard Floer correction terms, knots/links from Knotilus and Plink first need to be loaded, and then shaded according to a convention in a paper by Ozsvath and Szabo. That paper is actually the paper with the theorem for Heegaard Floer correction terms, published recently in 2003. (Heegaard Floer homology is a recent and current area of math research!) For the shading convention, you take the knot, look at an intersection, and shade the knot according to the picture below. While this is pretty easy to do by hand, it’s a bit harder to tell the computer which lines to color inside! The overall method for Knotilus/Plink links looks something like:
Input -> double branched cover of alternating link -> quadratic form (matrix) -> (use algorithm and theorem by Ozsvath and Szabo) -> Heegaard Floer correction terms
Shading convention from the paper by Ozsvath and Szabo
Several links from Knotilus, after downloading and running through my program.
If you're interested in what those links actually look like without the shading and straight edges, you can look them up in the Knotilus database. The Knotilus archive numbers are (top to bottom, left to right), 10x-1-10, 11x-1-1, 14x-1-1, 23x-1-1, 23x-1-2, 23x-2-1, 23x-2-10, 23x-10-3, 23x-11-1. My program draws the links upside down because of the way that Tkinter (GUI package for Python) sets up its coordinate axis; the positive y-axis points down.
Next input method: Seifert fibered rational homology spheres and weighted trees!
With 45 Nobel Laureates on its Faculty Roster, it’s not surprising that research is an integral part of the Caltech undergraduate experience. One of the programs that promotes such research is the Summer Undergraduate Research Fellowship (SURF). There is no minimum knowledge or experience required to participate in a Caltech SURF. In fact, students can participate in a SURF as soon as the summer after their freshman year. It is not difficult to get a SURF. All you need to do is find a mentor who is working in an area of research that interests you and willing to mentor you through a research project. The mentor can work in a Caltech lab, at the NASA Jet Propulsion Laboratory (JPL), or at another participating institution. Once you find a mentor, you work together to write a project proposal that you later send to the SURF office for review and approval. About 98% of the SURF proposals get approved. This fellowship is a great way to explore various fields of research and obtain real, hands-on experience where you get to apply the theoretical knowledge you’ve learned in class. Not only do you get to work and learn alongside your mentor, but you also get compensated for your time. The length of the SURF is ten weeks, and it starts at the beginning of the summer. However, it is not uncommon for many students at Caltech to continue their research project throughout the academic school year.
Like many students at Caltech, I suffer from a slight boba addiction, where side effects may include over caffeination, minor sugar highs, and of course, a large toll on one’s wallet. This addiction is not helped by the fact that there are at least three boba shops within walking distance of campus. So, after an entire term’s worth of boba runs, I came back from winter break with a new year’s epiphany: it was time to get a job. Rather than try to curb my addiction, I decided to find a way to subsidize it.
Research at Caltech looks different for every student, and can often vary term by term. As a chemistry major, my course requirements are on the lighter side for a Caltech major, and many chemistry majors take advantage of the lighter course load to join research groups. This can be whenever the student wants, but many people join labs during their freshman or sophomore years. Some may work in one lab only, and some may switch between labs during the course of their undergraduate studies, depending on if their interests change.
SURF, short for Summer Undergraduate Research Fellowship, is a quintessential experience for any Caltech student. It is a widely accessible research fellowship for Caltech students that funds your proposed research for one summer term. While many of my classmates did their first SURF the summer after their freshman year, I sent in my first application to the program as a sophomore. As a CS major, I was trying to chase meaningful work that intersected computation with the field of neuroscience. I ended up doing a SURF at the Stanford School of Medicine that first year, studying hand gestures in children diagnosed with Autism Spectrum Disorder (ASD). Since then, I’ve been working in the research space of applying computational analyses to ASD.