Skip to content
View bcrodrigo's full-sized avatar

Block or report bcrodrigo

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Please don't include any personal information such as legal names or email addresses. Maximum 100 characters, markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
bcrodrigo/README.md

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

Popular repositories Loading

  1. capstone_project capstone_project Public

    Data Science capstone project on image classification of Forest Fires

    Jupyter Notebook 1

  2. OpenDDA_MPI_modifications OpenDDA_MPI_modifications Public

    C code I modified during my PhD to perform light scattering calculations

    C

  3. dipole_locations dipole_locations Public

    Python programs to generate particles as points in a square computational grid

    Python

  4. OpenDDA_output_parsing OpenDDA_output_parsing Public

    Python modules for post-processing the simulation outputs of OpenDDA

    Python

  5. bcrodrigo bcrodrigo Public

    Repository with my profile

  6. medium_articles medium_articles Public

    To host code for my Medium articles

    Jupyter Notebook