University of HamburgFaculty EPBDepartment PsychologyGeneral PsychologyDFG International Graduate Research Group CINACSLandesexzellenzcluster neurodaptDFG Research Unit Perception and Action
|
University of Hamburg > Faculty EPB > Department Psychology > General Psychology > Prof. Dr. V. Franz
Discussion of research tools (for students and collaborators)
In practical research situations, we repeatedly encounter similar
problems. Here is a list of things I found useful.
Volker H. Franz, University of Hamburg, GermanyTable of contents
1. Workflow for experiments and statistical analysesCurrently, a typical experiment of mine consist of the following steps:Running the experimentTo program an experiment, I use either C++ or Matlab (depending on the setup and the requirements). I use C++ if I need OpenGL for stereo-graphics (because the PsychophysicsToolbox does not support this yet) or if there exists already a program in C/C++ which I want to modify, such that it is faster to simply use C++. If possible, I use Matlab and the PsychophysicsToolbox and my own OptotrakToolbox. Programming experiments in Matlab is much faster and, for example, allows easily to produce nice graphics online during the experiment (e.g., plotting the trajectories such that I can test whether all Optotrak-markers are visible). Also, it is easier for our students because they don't need to learn two languages (C++ and Matlab) but only one (Matlab). We also offer introductory courses for the PsychophysicsToolbox and Matlab (see the teaching section of my homepage). All my experiments are currently run on the Windows operating system (XP and 2000). I would prefer Linux or another UNIX system (Mac OS X or SGI IRIX which I used at the MPI in Tübingen), but it was just faster to use Windows because of compatibility issues (driver, software, etc.). For input from and output to external hardware I use the ActiveWire card. It is very cheap (~60US$/EURO) and is connected to the USB. It gives me 16 freely-programmable input/output channels. Also, there comes an ActiveWire function with the PsychophysicsToolbox. For example, we use the the ActiveWire to control our liquid-crystal goggles and to measure reaction times. Recently, I performed (conservative) checks on the timing for the reaction times and found it to be very accurate (delay < 5msec, variability ~2-3msec) --- as did others. Recently we bought a DataTranslation DT9812 USB data aquisition module which is slightly more versatile than the ActiveWire and also works from within Matlab. Data transfer from experimental machineI use unison to transfer the data from my experimental machine (Windows XP/2000) to my desktop (GNU-Linux, Debian) and my notebook (Mac OS X - Powerbook). Unison is excellent: For example, I can easily synchronize my complete home directory between notebook and desktop. On Windows, unison is somewhat slow. But there I only synchronize the current data, so this is no big issue. Basic statistical analysisI do all my basic statistical processing (e.g., extracting the maximum grip aperture, time-normalizing trajectories, etc.) in Matlab. Typically this results in plots for visually inspecting the data and ASCII-files for further analyses. Sometimes the issue of filtering the data arises. An excellent book on digital signal processing that is even available for free on the web is: The Scientist and Engineer's Guide to Digital Signal Processing by Steven W. Smith. Further statistical analysesUnfortunately, Matlab is very bad in even the simplest statistical analyses we typically use in psychology experiments (e.g., within-subjects repeated measures ANOVA). Therefore, I use two strategies:
Reading data from published graphs / figuresReplication is an integral part of our scientific work (although it is often undervalued, see for example the biting essay of Richard Feynman on: Cargo Cult Science). When we try to replicate the work of others, we want to compare our data to their data. This is complicated by the fact that quite often data are only available as graphs. Engauge is a good, free digitizing software that helps with this. Archiving the data after publicationAs mentioned in the last section, replication is an integral of our scientific work. This also includes that we retain our raw data and all statistical analyses for later use by other investigators (most journals expect us to retain our data for at least 10 years; please read this as: "for the rest of your lifetime"). Therefore, if you published an article as first author and with me as supervisor, I ask you to do the following after the manuscript was accepted for publication:
2. Scientific writingWriting a scientific manuscript / paperHere is a short introduction to writing good scientific manuscripts: Gopen and Swan (1990). The Science of Scientific Writing. American Scientist (78), 550-558. A guideline regarding the ethical aspects of writing a research article can be found at the pages of the Society for Neuroscience: Guidelines: Responsible Conduct Regarding Scientific Communication. Writing a scientific paper with meWhen you write a paper with me and you are first author (e.g., as a PhD student), I ask you to:
Writing reviewsWriting reviews is an integral part of our scientific work. Here is a nice, short introduction to reviewing a paper: Brainard, D. (2000). How to write an effective manuscript review. Optics & Photonics News, 11(6), 42-43. Another good introduction is: Benos, D. J., Kirk, K. L., & Hall, J. E. (2003). How to review a paper. Advances in Physiology Education, 27 (1-4), 47-52.A guideline regarding the ethical aspects of writing a review can be found at the pages of the Society for Neuroscience: Guidelines: Responsible Conduct Regarding Scientific Communication. There is also a comitee on publication ethics (COPE) formed by editors of peer-reviewed journals. They give detailed advice for editors and authors including case-studies. See also: Council of Science editors and World Association of Medical Editors. 3. Word processing softwareI use two strategies:
4. Manipulating pdf-filespdftk is a nice and free tool which allows you to easily manipulate pdf-files (e.g., combining different pdf-files to one single file, extracting single pages, etc.). It is command-line based and therefore also allows you to write shell-scripts for it (if you wish to do something like this :-). Of course you can also use the Adobe suite which is, however, not free.5. Creating web-pagesGetting startedHere is a nice, short introduction to HTML, the language which is typically used for web-pages. Checking your web-pageAfter creating your web-page, it might be wise to perform automatic online-checks for errors. Typically, there are three possible checks:
<p>
<a href="http://validator.w3.org/check?uri=referer">
<img style="border:0;width:88px;height:31px"
src="http://www.w3.org/Icons/valid-html401"
alt="Valid HTML 4.01 Transitional">
</a>
</p>
Just add this code at the end of your web-page. This will create the
following button:
More advanced stuff for web-pages...
6. Good books on software and programming...Here is a short and quick list of books I found helpful when learning and working with the different programming languages.C / C++
Matlab
R / S / S-PlusSee also the excellent book collection at: http://www.r-project.org (see there under: "Manuals" and "Books"). If you want to dig deeper into the languages, it might also be useful to buy used copies of the "classics" (the "blue"/"white"/"green" books).
SmalltalkSmalltalk is not very common nowadays and I don't use it in my everyday work. But it is such a nice language (fully object--oriented in a consistent way, much nicer than C++...). Therefore, I could not resist to put it here... :-)
SubversionI use Subversion (a version control system; the successor of CVS) in my lab to manage our software. There is a good and free book on Subversion available online. The final version of the book will be published by O'Reilly:
UNIX / GNU Linux / Mac OS X / CygwinAll these flavors of UNIX (and emulations in the case of Cygwin) are very similar, because the core of the functionality is based on the POSIX standard. Therefore it doesn't matter too much on which version of UNIX you are currently working. Most of the functionality is standardized...
XEmacs / GNU EmacsYou don't need a book to work with Emacs or XEmacs. You could simply use the build-in help (especially the info-system). And most people do this happily for years. However, if you want to use the full power of Emacs / XEmacs a book might be helpful:
7. Programming: Why XEmacs is cool...Programming is typically the generation of ASCII files (i.e., plain-text files). You could do this for each programming language separately by using the corresponding editor. For example, you could use the Matlab-editor to create Matlab files, the Visual-C++ editor to create C/C++ files, the R-editor to create R files, etc. However, when you get more proficient you might want to have one and the same editor for all your programming tasks. I use for this the XEmacs editor. This is a multi-purpose editor which allows you to edit files for essentially any existing programming language. I have used it for C/C++, Matlab, R, SPSS, Lisp, Shell-scripts, Pascal, Smalltalk, Perl, HTML, PHP, LaTeX/TeX, etc. I also use it as a good file-browser (instead of horrible things like the Windows-Explorer or the Finder in Mac OS X). Also, I use it as a environment to run a UNIX shell (much better than the usual terminal). I even use it to read my email (which I would not necessarily recommend), such that most of the time I work on a computer I work inside XEmacs (an exception is browsing the web). XEmacs runs on essentially every platform (e.g., Mac OS X, Linux, UNIX, Windows) --- giving me the same interface for most of my tasks independent of any platform.XEmacs takes some time to learn, but I think it is worth it (an alternative would be to use GNU Emacs which is very similar. I personally prefer XEmacs but the differences are not very big). 8. Mailing listsTwo mailing-lists are most important for our work and I recommend that you subscribe to these: Vision Science Mailinglist (visionlist) and Color and Vision Network (CVNet). If you have a special question, it is always worth having a look at the archive of visionlist mailing-list.9. Advice (?) for graduate studentsFind here a nice discussion of what it is like to be a graduate student. Note, however, that part of this discussion is only related to the American system, not the German...If you want some more serious information related to the situation in Germany, you can have a look at: www.hochschulkarriere.de and: www.academics.de. 10. Searching for jobs after you received your PhDA while ago, we collected a list of links for job search in academia. This was compiled for the PhD-students of an EU-funded project (PRA / Perception for Recognition and Action), but might also be of general interest. |