├── Effective Computation In Physics.txt ├── Matlab for Neuroscientists.txt └── README.md /Effective Computation In Physics.txt: -------------------------------------------------------------------------------- 1 | Chapter 1 2 | 3 | Introduction to the Command Line 4 | Navigating the Shell 5 | Manipulating Files and Directories 6 | Getting Help 7 | Permissions and Sharing 8 | The Environment 9 | Scripting with Bash 10 | Command Line Wrap-up 11 | 12 | Chapter 2 13 | 14 | Programming Blastoff with Python 15 | Running Python 16 | Comments 17 | Variables 18 | Special Variables 19 | Operators 20 | Strings 21 | Modules 22 | Python Wrap-up 23 | 24 | Chapter 3 25 | 26 | Essential Containers 27 | Lists 28 | Tuples 29 | Sets 30 | Dictionaries 31 | Containers Wrap-up 32 | 33 | Chapter 4 34 | 35 | Flow Control and Logic 36 | Conditionals 37 | Exceptions 38 | Loops 39 | Flow Control and Logic Wrap-up 40 | Chapter 5Operating with Functions 41 | Functions in Python 42 | Keyword Arguments 43 | Variable Number of Arguments 44 | Multiple Return Values 45 | Scope 46 | Recursion 47 | Lambdas 48 | Generators 49 | Decorators 50 | Function Wrap-up 51 | 52 | Chapter 6 53 | 54 | Classes and Objects 55 | Object Orientation 56 | Objects 57 | Classes 58 | Decorators and Metaclasses 59 | Object Orientation Wrap-up 60 | Getting It Done 61 | Chapter 7Analysis and Visualization 62 | Preparing Data 63 | Loading Data 64 | Cleaning and Munging Data 65 | Analysis 66 | Visualization 67 | Analysis and Visualization Wrap-up 68 | 69 | Chapter 8 70 | 71 | Regular Expressions 72 | Messy Magnetism 73 | Metacharacters on the Command Line 74 | grep, sed, and awk 75 | Finding Patterns in Files (grep) 76 | Finding and Replacing Patterns in Files (sed) 77 | Manipulating Columns of Data (awk) 78 | Python Regular Expressions 79 | Regular Expressions Wrap-up 80 | 81 | Chapter 9 82 | 83 | NumPy: Thinking in Arrays 84 | Arrays 85 | dtypes 86 | Slicing and Views 87 | Arithmetic and Broadcasting 88 | Fancy Indexing 89 | Masking 90 | Structured Arrays 91 | Universal Functions 92 | Other Valuable Functions 93 | NumPy Wrap-up 94 | 95 | Chapter 10 96 | 97 | Storing Data: Files and HDF5 98 | Files in Python 99 | An Aside About Computer Architecture 100 | Big Ideas in HDF5 101 | File Manipulations 102 | Hierarchy Layout 103 | Chunking 104 | In-Core and Out-of-Core Operations 105 | Querying 106 | Compression 107 | HDF5 Utilities 108 | Storing Data Wrap-up 109 | 110 | Chapter 11 111 | 112 | Important Data Structures in Physics 113 | Hash Tables 114 | Data Frames 115 | B-Trees 116 | K-D Trees 117 | Data Structures Wrap-up 118 | 119 | Chapter 12 120 | 121 | Performing in Parallel 122 | Scale and Scalability 123 | Problem Classification 124 | Example: N-Body Problem 125 | No Parallelism 126 | Threads 127 | Multiprocessing 128 | MPI 129 | Parallelism Wrap-up 130 | 131 | Chapter 13 132 | 133 | Deploying Software 134 | Deploying the Software Itself 135 | Deploying to the Cloud 136 | Deploying to Supercomputers 137 | Deployment Wrap-up 138 | Getting It Right 139 | 140 | Chapter 14 141 | 142 | Building Pipelines and Software 143 | make 144 | Building and Installing Software 145 | Installation 146 | Building Software and Pipelines Wrap-up 147 | 148 | Chapter 15 149 | 150 | Local Version Control 151 | What Is Version Control? 152 | Getting Started with Git 153 | Local Version Control with Git 154 | Version Conrol Wrap-Up 155 | 156 | Chapter 16 157 | 158 | Remote Version Control 159 | Repository Hosting (github.com) 160 | Creating a Repository on GitHub 161 | Declaring a Remote (git remote) 162 | Sending Commits to Remote Repositories (git push) 163 | Downloading a Repository (git clone) 164 | Fetching the Contents of a Remote (git fetch) 165 | Merging the Contents of a Remote (git merge) 166 | Pull = Fetch and Merge (git pull) 167 | Conflicts 168 | Resolving Conflicts 169 | Remote Version Control Wrap-up 170 | 171 | Chapter 17 172 | 173 | Debugging 174 | Encountering a Bug 175 | Print Statements 176 | Interactive Debugging 177 | Debugging in Python (pdb) 178 | Profiling 179 | Linting 180 | Debugging Wrap-up 181 | 182 | Chapter 18 183 | 184 | Testing 185 | Why Do We Test? 186 | When Should We Test? 187 | Where Should We Write Tests? 188 | What and How to Test? 189 | Running Tests 190 | Edge Cases 191 | Unit Tests 192 | Integration Tests 193 | Regression Tests 194 | Test Generators 195 | Test Coverage 196 | Test-Driven Development 197 | Testing Wrap-up 198 | Getting It Out There 199 | 200 | Chapter 19 201 | 202 | Documentation 203 | Why Prioritize Documentation? 204 | Types of Documentation 205 | Automation 206 | Documentation Wrap-up 207 | 208 | Chapter 20 209 | 210 | Publication 211 | Document Processing 212 | Text Editors 213 | Markup Languages 214 | Publication Wrap-up 215 | 216 | Chapter 21 217 | 218 | Collaboration 219 | Ticketing Systems 220 | Pull Requests and Code Reviews 221 | Collaboration Wrap-up 222 | 223 | Chapter 22 224 | 225 | Licenses, Ownership, and Copyright 226 | What Is Copyrightable? 227 | Right of First Publication 228 | What Is the Public Domain? 229 | Choosing a Software License 230 | Berkeley Software Distribution (BSD) License 231 | GNU General Public License (GPL) 232 | Creative Commons (CC) 233 | Other Licenses 234 | Changing the License 235 | Copyright Is Not Everything 236 | Licensing Wrap-up 237 | 238 | Chapter 23 239 | 240 | Further Musings on Computational Physics 241 | Where to Go from Here 242 | -------------------------------------------------------------------------------- /Matlab for Neuroscientists.txt: -------------------------------------------------------------------------------- 1 | Front-matter 2 | Copyright 3 | Preface to the Second Edition 4 | Preface to the First Edition 5 | About the Authors 6 | How to Use this Book 7 | 8 | Part I: Fundamentals 9 | 10 | * Chapter 1 - Introduction, Pages 3-6 11 | * Chapter 2 - MATLAB Tutorial, Pages 7-56 12 | * Chapter 3 - Mathematics and Statistics Tutorial, Pages 57-102 13 | * Chapter 4 - Programming Tutorial: Principles and Best Practices, Pages 103-139 14 | * Chapter 5 - Visualization and Documentation Tutorial, Pages 141-150 15 | 16 | Part II: Data Collection with MATLAB 17 | 18 | * Chapter 6 - Collecting Reaction Times I: Visual Search and Pop Out, Pages 153-164 19 | * Chapter 7 - Collecting Reaction Times II: Attention, Pages 165-171 20 | * Chapter 8 - Psychophysics, Pages 173-191 21 | * Chapter 9 - Psychophysics with GUIs, Pages 193-207 22 | * Chapter 10 - Signal Detection Theory, Pages 209-225 23 | 24 | Part III: Data Analysis with MATLAB 25 | 26 | * Chapter 11 - Frequency Analysis Part I: Fourier Decomposition, Pages 229-236 27 | * Chapter 12 - Frequency Analysis Part II: Nonstationary Signals and Spectrograms, Pages 237-243 28 | * Chapter 13 - Wavelets, Pages 245-252 29 | * Chapter 14 - Introduction to Phase Plane Analysis, Pages 253-262 30 | * Chapter 15 - Exploring the Fitzhugh-Nagumo Model, Pages 263-271 31 | * Chapter 16 - Convolution, Pages 273-285 32 | * Chapter 17 - Neural Data Analysis I: Encoding, Pages 287-296 33 | * Chapter 18 - Neural Data Analysis II: Binned Spike Data, Pages 297-303 34 | * Chapter 19 - Principal Components Analysis, Pages 305-315 35 | * Chapter 20 - Information Theory, Pages 317-327 36 | * Chapter 21 - Neural Decoding I: Discrete Variables, Pages 329-336 37 | * Chapter 22 - Neural Decoding II: Continuous Variables, Pages 337-348 38 | * Chapter 23 - Local Field Potentials, Pages 349-360 39 | * Chapter 24 - Functional Magnetic Resonance Imaging, Pages 361-379 40 | 41 | Part IV: Data Modeling with MATLAB 42 | 43 | * Chapter 25 - Voltage-Gated Ion Channels, Pages 383-393 44 | * Chapter 26 - Synaptic Transmission, Pages 395-402 45 | * Chapter 27 - Modeling a Single Neuron, Pages 403-410 46 | * Chapter 28 - Models of the Retina, Pages 411-417 47 | * Chapter 29 - Simplified Model of Spiking Neurons, Pages 419-424 48 | * Chapter 30 - Fitzhugh-Nagumo Model: Traveling Waves, Pages 425-438 49 | * Chapter 31 - Decision Theory, Pages 439-447 50 | * Chapter 32 - Markov Models, Pages 449-462 51 | * Chapter 33 - Modeling Spike Trains as a Poisson Process, Pages 463-471 52 | * Chapter 34 - Exploring the Wilson-Cowan Equations, Pages 473-480 53 | * Chapter 35 - Neural Networks as Forest Fires: Stochastic Neurodynamics, Pages 481-487 54 | * Chapter 36 - Neural Networks Part I: Unsupervised Learning, Pages 489-500 55 | * Chapter 37 - Neural Networks Part II: Supervised Learning, Pages 501-517 56 | 57 | Appendix A - Creating Publication-Quality Figures, Pages 519-526 58 | Appendix B - Relevant Toolboxes, Pages 527-532 59 | References, Pages 533-539 60 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | **Python for Neuroscience** - *An introduction to scientific computing in Python* 2 | 3 | [Forewords](#) 4 | [Front matter](#) 5 | [License & copyright](#) 6 | [About the Authors](about.md) 7 | [How to Use this Book]() 8 | 9 | **Part I - Fundamentals** 10 | 11 | * Chapter 1 - [Introduction to Python](#) 12 | * Chapter 2 - [Programming with Python](#) 13 | * Chapter 3 - [Numerical computing](#) 14 | * Chapter 4 - [Visualization](#) 15 | * Chapter 5 - [Python in Neuroscience](#) 16 | 17 | **Part II - Collecting** 18 | 19 | **Part III - Analyzing** 20 | 21 | **Part IV - Modeling** 22 | 23 | * Chapter x - [Formal neuron](#) 24 | * Chapter x - [Leaky integrator](#) 25 | * Chapter x - [Integrate & fire](#) 26 | * Chapter x - [Spiking neuron](#) 27 | * Chapter x - [Neural field](#) 28 | * Chapter x - [Supervised learning](#) 29 | * Chapter x - [Unsupervised learning](#) 30 | * Chapter x - [Reinforcement learning](#) 31 | * Chapter x - [Spike time dependent plasticity](#) 32 | 33 | **Part V - Sharing** 34 | 35 | * Chapter x - [Open Science](#) 36 | * Chapter x - [Notebook](#) 37 | * Chapter x - [Versioning](#) 38 | * Chapter x - [Neural Ensemble](#) 39 | 40 | Index 41 | Glossary 42 | References 43 | --------------------------------------------------------------------------------