Perspectives on the intersection between computer science and psychology Developing reproducible – and reusable – methods through research software engineering.

Slides:



Advertisements
Similar presentations
Configuration management
Advertisements

Configuration management
Pipelines! CTB 6/15/13. A pipeline view of the world.
Windows Monitoring Yancy Ribbens
CODING Research Data Management. Research Data Management Coding When writing software or analytical code it is important that others and your future.
Source Control Repositories for Enabling Team Working Svetlin Nakov Telerik Corporation
Virtual Geophysics Laboratory (VGL) VGL v1.2 NeCTAR Project Close R.Fraser, T.Rankine, J.Vote, L.Wyborn, B.Evans, R.Woodcock, C.Kemp July 2013 CSIRO |
M. Taimoor Khan * Java Server Pages (JSP) is a server-side programming technology that enables the creation of dynamic,
Visual Basic: An Object Oriented Approach 12 – Creating and using ActiveX objects.
Servlets Environment Setup. Agenda:  Setting up Java Development Kit  Setting up Web Server: Tomcat  Setting up CLASSPATH.
Framework for Automated Builds Natalia Ratnikova CHEP’03.
DTIAtlasBuilder Adrien Kaiser Neuro Image Research and Analysis Laboratories University of North Carolina at Chapel Hill A tool to create an atlas from.
Software Engineering in Robotics Packaging and Deployment of Systems Henrik I. Christensen –
Configuration Management (CM)
The Cluster Computing Project Robert L. Tureman Paul D. Camp Community College.
Geant4 Installation Supported platforms:  Scientific Linux with gcc 4.1.2/4.6  Mac Os X 10.7 and 10.8 with gcc 4.21  Windows7 with Visual Studio.
1Computer Sciences Department Princess Nourah bint Abdulrahman University.
1 Applied CyberInfrastructure Concepts ISTA 420/520 Fall
A Networked Machine Management System 16, 1999.
Introduction to GitHub Alex Bigazzi Dec. 4, 2013 ITS Lab GitHub Introduction1.
CERN-PH-SFT-SPI August Ernesto Rivera Contents Context Automation Results To Do…
GAAIN Virtual Appliances: Virtual Machine Technology for Scientific Data Analysis Arihant Patawari USC Stevens Neuroimaging and Informatics Institute July.
Virtual Geophysics Laboratory (VGL) VGL v1.2 NeCTAR Project Close Ryan Fraser, Terry Rankine, Joshua Vote, Lesley Wyborn, Ben Evans, Robert Woodcock July.
Copy of the from the secure website - click on the AccoridaLife.zip link.
SPI NIGHTLIES Alex Hodgkins. SPI nightlies  Build and test various software projects each night  Provide a nightlies summary page that displays all.
Build and Deployment Process Understand NCI’s DevOps and continuous integration requirements Understand NCI’s build and distribution requirements.
Jin Huang Ph.D. Candidate Massachusetts Institute of Technology.
Visual Programming Borland Delphi. Developing Applications Borland Delphi is an object-oriented, visual programming environment to develop 32-bit applications.
Introduction Aaron Day ● Software Architect ● Open Solutions Interests and Hobbies ● Family ● Software Development ● Woodworking ● Gaming ● Shooting.
ImageJ2. Why ImageJ2? ● Support the next generation of image data ● Interoperate and collaborate with other projects ● Broaden the ImageJ community ●
Getting Started as an EdgeX Developer
Version Control Systems
CompTIA Server+ Certification (Exam SK0-004)
CS5220 Advanced Topics in Web Programming Version Control with Git
Accessing the VI-SEEM infrastructure
BASIS Quick Start Guide
Getting & Running EdgeX Docker Containers
Source Control Systems
Preserving containers
From Source Code to Packages and even whole distributions
External Web Services Quick Start Guide
Getting Started as an EdgeX Developer
GLAST Release Manager Automated code compilation via the Release Manager Navid Golpayegani, GSFC/SSAI Overview The Release Manager is a program responsible.
Version Control Systems
Web Applications Security INTRO
Coding in the Cloud This slide deck includes recorded video demonstrations of content from the live presentation. Joon-Yee.
Database Driven Websites
How to automate software with
INSTALLING AND SETTING UP APACHE2 IN A LINUX ENVIRONMENT
Computer Science I CSC 135.
Data Management – Audit Trail
Cmake Primer.
MATLAB – What Is It ? Name is from matrix laboratory Powerful tool for
MATLAB – What Is It ? Name is from matrix laboratory Powerful tool for
Module 01 ETICS Overview ETICS Online Tutorials
Software Development - Version Control
Introduction to Git and GitHub
Software for Neutron Imaging Analysis
bitcurator-access-webtools Quick Start Guide
Version Control with Git
Docker Some slides from Martin Meyer Vagrant Box:
Automation of Control System Configuration TAC 18
Notebook Development and Testing
Node.js Test Automation using Oracle Developer Cloud- Simplified
Git GitHub.
Web Servers (IIS and Apache)
Computational Pipeline Strategies
Java Code Review with CheckStyle
Computer Applications -Generic Elective
Computational Environment Management
Presentation transcript:

Perspectives on the intersection between computer science and psychology Developing reproducible – and reusable – methods through research software engineering

Open Science and Digital Scholarship Interoperability of data Data standards Cyber infrastructure Research methods Often there isn’t a SOP How can we ensure our bespoke method is reproducible?

Reusable Research Methods Challenges of reproducing research Automation can help Documentation isn’t enough Why should we address these challenges? To allow verification of results So others can use methods How can we addresses these challenges? Research software engineering

Dynamic web content Can we predict if someone will view an update?

Video of eye tracking video (‘raw data’) available from https://www.dropbox.com/s/3dj0crmhg58vk4o/17_hovered_wb.avi?dl=0

Analysis process Step through the video Manually define areas of interest Log start and end times Final analysis: CHAID in SPSS – all data online.

Why isn’t this research reproducible? Incomplete raw data Proprietary software ‘Idiosyncratic’ scripts Experimental materials not available

IDInteraction

Can we automate behavioural coding? Manual coding of motor behaviour not viable

Video processing: The Horror Install Linux (Ubuntu 14.04.2) Install mencoder (version 1.1-4.8) Plus all 33 of its dependencies And all of their dependencies, and so on… Run, for every input file, one after another: $ mencoder <input> -vf crop=640:360:640:0 -nosound -ovc x264 -o <front-view-output> $ mencoder <input> -vf crop=640:360:0:0 -nosound -ovc x264 -o <side-view-output> $ mencoder <input> -vf crop=640:360:640:360 -nosound -ovc x264 -o <rear-view-output>

Video processing: IDInteraction Install docker Works on Windows, OS X or Linux Run, once: This downloads the video processing pipeline and runs it over all of the input data automatically Come back tomorrow For new data, just re-run the docker command above and it will only process new inputs $ docker run -it -v <input-dir> -v <output-dir> idinteraction/video

Object tracking: The Horror Assuming that Linux is already installed Install OpenCV (version 2.4.8) Plus all 34 of its dependencies Plus all of the development libraries and header files And all of their dependencies, and so on… Install C++ compiler Install CMake Install Git Install CppMT (C++ version of CMT tracker) Clone from GitHub Get the IDInteraction specific version Configure the build Compile to produce ‘cmt’ executable Run, for every output of the video processing stage, one after another: $ cmt --bbox=<initial bounding box> --output <output dir> <video file>

Object tracking: IDInteraction Assuming that docker is already installed Run, once: This downloads the object tracking pipeline and runs it over all of the input data automatically Come back tomorrow For new data, just re-run the docker command above and it will only process new inputs $ docker run -it -v <input-dir> -v <output-dir> idinteraction/tracking

Open source software Specify coding start point Outputs data into files Batch process videos Define, adjust and edit the bounding box Changes merged back Georg Nebehay

Why bother? Because research should be reproducible So others can use the method Our collaborators The community Caveat: I live in computer science

How do we address the challenges? Recognize the requirement for technical excellence in research software Integrate software engineering into the research process Work out how to make software sustainable and maintainable without any funding