Software Projects

My students and I develop scientific software in support of our computational social science research. The packages we develop and contribute to have evolved over the years, depending on what problems we face in my various research projects. You can find information about the software we have developed here. 

Maintained or Under Active Development


metaknowledge is a full-featured Python package for doing computational research on science and knowledge. It was designed and developed by John McLevey and Reid McIlroy-Young. Jillian Anderson, Tyler Crick, and Rachel Wood have also contributed and to varying degrees are involved in maintaining the package. 

nate (Network Analysis with Text)

nate (Network analysis with text) is a Python package for analyzing text data using methods and models from network analysis. It is designed, developed, and maintained by John McLevey, Tyler Crick, and Pierson Browne. 

pdpp (Principled Data Processing, Python)

pdpp (Principled Data Processing, Python) is a Python package that facilitates best practices for reproducible research. It is based on the principles outlined by Patrick Ball of the Human Rights Data Analysis Group. Lead developer is Pierson Browne.

dcss (Doing Computational Social Science)

dcss (Doing Computational Social Science) is a Python package accompanying John McLevey (2021) Doing Computational Social Science. Includes curated datasets and a large collection of utility functions for data processing and working with statistical and machine learning models. Currently in beta and under active development.

M2C3 (Methods and Models of Cultural Cognition and Change)

M2C3 is a Python package implementing methods and models (M2) of cultural cognition and change (C3), with an emphasis on belief network analysis, relational class analysis, correlational class analysis, and other approaches to analyzing and modelling shared cultural schemas from survey data. Developed by John McLevey. Currently in beta and under active development. (The alpha version was called dems.)


simkit is a Python package for generative modelling (esp. agent-based computational models and probabilistic models) of cultural learning and social influence, structural identity and affect control, and institutional emergence. Developed by John McLevey. Currently in beta and under active development.

Contributions to Existing Open Source Scientific Software Projects


Contributions to Jonathan de Bruin’s Python package recordlinkage: A Python package for linking records across multiple data sources when there is no unique ID available. NetLab contributions are focused on implementing new comparison and fusion algorithms that are necessary for advancing my grant-funded empirical research on the structure and evolution of cross-sectoral collaboration networks in science and technology. Most NetLab contributions to recordlinkage were implemented by Joel Becker (RA) and occasionally Jillian Anderson (RA), and then submitted to Jonathan de Bruin as pull requests.

No Longer Maintained 


gitnet is Python package for mining and analyzing raw data from Git repositories. It has since been replaced by tidyextractors and is no longer maintained by NETLAB.