Blog Post #4

February 23, 2023

Assigned Project: Training a Convolutional Neural Net to Detect Epileptic Spikes in EEG

Previously, I discussed how I was working with visualizing EEG waveforms, but trying to manually open them one by one and trying to find a specific EEG signals turns out to be very time consuming. Although it works, I knew there had to be a way that I code automate the process, and automate the process I did! I created a python script that gathers the annotation and EDF, the format in which EEG’s are stored, files and then plots a specific annotation based on a series of prompts, and here is where I ran into an issue. All of the code that we create runs on a remote server that has no graphical user interface – it’s all on a terminal window. This meant that I wouldn’t be able to visualize any plots. In order to resolve this issue, I used I added a line of code that would save the file as a .png under a specified name that corresponds to the patient name, time, and signal annotation. I could then use the secure copy command (scp) to copy from the server to my local computer for viewing.

In terms of programming on a server, this meant that I couldn’t easily use Visual Studio Code as my IDE. I hear that there exists a way, but I decided that I’d take on an old acquaintance, VIM.

Figure 1: See, I’m not the only one that has battled with Vim

I tried to use Vim for one of my courses here at OSU, but found myself much more at home using Visual Studio Code. There exists the age old debate that developers should learn how to use Vim because unlike other IDEs that come and go, Vim has been around for ages and is here to stay. So I decided to get back into it and get back to the basics and build my way up. I am by no means an expert, or even an intermediate user yet, but I’m working my way there.

Speaking of technologies, I’ve also gotten to use Github a lot more now. The git pull, git checkout, git add, git status, git commit, and git push –set-upstream origin [branch name] are all starting to become second nature. I’m really glad this course allowed me the opportunity to collaborate with classmates and a project sponsor all for one common goal – to train our machine learning model. We each have our strengths and I believe that we are contributing to each other’s talents as a software engineer and we all work well together. Furthermore, our project sponsor is always more than ready to share best practices with us. I started this paragraph talking about Github so I’ll share how our sponsor/client guided us through the code review process. Although I’m unsure if I myself started this conversation, but we all eventually got to talking about what it a code review should include. Once a peer makes a pull request, what should we be looking out for? How should we go about providing the best advice that would result in promoting good coding practice. From looking for syntax errors, to seeing where code can be simplified, and adding the appropriate amount of comments and docStrings. We also delved into the practice of getting to pull requests in a timely manner and trying to not let them pile up.

I’ve learned a great deal so far in this course, and the best part is that we still have a few more weeks to go. There’s still time to continue to explore more and become a better developer who builds upon newly acquired best practices.

Git Stash allows you to store the current state of your files and reapply them later when you’re ready to go back to them. I learned about this through one of my classmates in my group.