Skip to content

bcrodrigo/bcrodrigo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 

Repository files navigation

Hi, I'm Rodrigo

Data Scientist based in Vancouver, Canada

Current Projects

Using PyTorch, I trained state-of-the-art Computer Vision Models (VGG19 and ResNet18) for image classification of Forest Fires. I was able to reproduce the benchmark accuracy metrics as reported in the scientific literature. See more details here.

Follow this link to see a deployed Streamlit app showcasing the predictions of the models, on images from different datasets. Note it may take a few seconds to wake up the server.

Tools: PyTorch, Pandas, Matplotlib, Streamlit


Performed Sentiment Analysis on an Amazon Reviews dataset, to compare accuracy between simple models (bag-of-words) against pre-trained transformer-based models. You can see the code here.

Tools: Python, SpaCy, Pandas, Scikit-Learn


Developed a command line tool for building and querying vector databases on device, using Retrieval Augmented Generation (RAG) techniques. You can see the code here.

Tools: Python, Ollama, LangChain, Chroma


Previous Projects

Light Scattering from Randomly-Oriented Particles

During my PhD I studied light scattering from randomly oriented particles. You can see my thesis here. Helical shaped particles were of particular interest because their optical properties resemble those of chiral molecules. These kinds of molecules selectively absorb circularly-polarized light according their molecular orbital asymmetry, known as chirality. This chirality assigns a 'handedness' to the molecule, and interpreting whether a molecule is right or left handed is crucial in understanding its properties such as flavour, odour, drug safety, and drug effectiveness. Additionally, the orientation of the molecule will also have an effect on the absorption spectra, so much so, that the optical response of a randomly oriented collection of molecules might look as the opposite of a single oriented molecule, leading to ambiguity in measurement interpretation.

Using numerical simulations I calculated the optical properties of randomly oriented helical particles. I also fabricated nanostructured helical columnar films, and detached the columns to create a suspension of particles in water to try to characterize the optical properties.

The Discrete-Dipole Approximation (DDA) is a numerical method that represents an arbitrarily-shaped particle as electric dipoles on a cubic lattice. There are many implementations, but the one I used was OpenDDA. In particular, I made some modifications to use the parallelized version using the Message-Passing Interface (MPI) for distributed memory clusters. You can see all the modifications I did in the following repository.

Using Python I wrote scripts to generate different kinds of particle shapes: sphere, cylinder, helices, in order to generate input targets for OpenDDA. You can see the code in the dipole_locations repository.

sphere_preview cylinder_preview helix_preview

Simulation outputs were post-processed with custom Python scripts and measurable quantities were calculated. In particular, the Mueller Matrix (a 4-by-4 real valued matrix) relates the incident and scattered polarization states, and allows you to validate if the simulation outputs are correct by looking at the number of non-zero elements as well as its symmetries. Additionally, the elements of the Mueller matrix can be measured experimentally. For more details, see the following repository.

Tools: C, OpenMPI, Bash, SSH, Python, NumPy, Pandas, Matplotlib

Connect with me

Languages and Tools:

aws bash c git hive matlab mysql pandas postgresql python pytorch scikit_learn seaborn tensorflow

About

Repository with my profile

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published