0% found this document useful (0 votes)
20 views

51694

Uploaded by

waskidaina
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
20 views

51694

Uploaded by

waskidaina
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 55

Experience Seamless Full Ebook Downloads for Every Genre at textbookfull.

com

Python for Bioinformatics, Second Edition


Sebastian Bassi

https://textbookfull.com/product/python-for-bioinformatics-
second-edition-sebastian-bassi/

OR CLICK BUTTON

DOWNLOAD NOW

Explore and download more ebook at https://textbookfull.com


Recommended digital products (PDF, EPUB, MOBI) that
you can download immediately if you are interested.

Mastering Python for Bioinformatics Ken Youens Clark

https://textbookfull.com/product/mastering-python-for-bioinformatics-
ken-youens-clark/

textboxfull.com

Biota Grow 2C gather 2C cook Loucas

https://textbookfull.com/product/biota-grow-2c-gather-2c-cook-loucas/

textboxfull.com

Bioinformatics Algorithms Design and Implementation in


Python 1st Edition Miguel Rocha

https://textbookfull.com/product/bioinformatics-algorithms-design-and-
implementation-in-python-1st-edition-miguel-rocha/

textboxfull.com

Raspberry Pi for Python Programmers Cookbook Second


Edition Tim Cox

https://textbookfull.com/product/raspberry-pi-for-python-programmers-
cookbook-second-edition-tim-cox/

textboxfull.com
Translational Bioinformatics for Therapeutic Development
Joseph Markowitz

https://textbookfull.com/product/translational-bioinformatics-for-
therapeutic-development-joseph-markowitz/

textboxfull.com

Learn Python Programming Second Edition Fabrizio Romano

https://textbookfull.com/product/learn-python-programming-second-
edition-fabrizio-romano/

textboxfull.com

Code for OpenCV 3.x with Python By Example, Second Edition


Gabriel Garrido

https://textbookfull.com/product/code-for-opencv-3-x-with-python-by-
example-second-edition-gabriel-garrido/

textboxfull.com

Effective Python 90 specific ways to write better Python


Second Edition Brett Slatkin

https://textbookfull.com/product/effective-python-90-specific-ways-to-
write-better-python-second-edition-brett-slatkin/

textboxfull.com

Learning Python Design Patterns Second Edition Chetan


Giridhar

https://textbookfull.com/product/learning-python-design-patterns-
second-edition-chetan-giridhar/

textboxfull.com
PYTHON FOR
BIOINFORMATICS
SECOND EDITION
CHAPMAN & HALL/CRC
Mathematical and Computational Biology Series

Aims and scope:


This series aims to capture new developments and summarize what is known
over the entire spectrum of mathematical and computational biology and
medicine. It seeks to encourage the integration of mathematical, statistical,
and computational methods into biology by publishing a broad range of
textbooks, reference works, and handbooks. The titles included in the
series are meant to appeal to students, researchers, and professionals in the
mathematical, statistical and computational sciences, fundamental biology
and bioengineering, as well as interdisciplinary researchers involved in the
field. The inclusion of concrete examples and applications, and programming
techniques and examples, is highly encouraged.

Series Editors

N. F. Britton
Department of Mathematical Sciences
University of Bath

Xihong Lin
Department of Biostatistics
Harvard University

Nicola Mulder
University of Cape Town
South Africa

Maria Victoria Schneider


European Bioinformatics Institute

Mona Singh
Department of Computer Science
Princeton University

Anna Tramontano
Department of Physics
University of Rome La Sapienza

Proposals for the series should be submitted to one of the series editors above or directly to:
CRC Press, Taylor & Francis Group
3 Park Square, Milton Park
Abingdon, Oxfordshire OX14 4RN
UK
Published Titles
An Introduction to Systems Biology: Statistical Methods for QTL Mapping
Design Principles of Biological Circuits Zehua Chen
Uri Alon An Introduction to Physical Oncology:
Glycome Informatics: Methods and How Mechanistic Mathematical
Applications Modeling Can Improve Cancer Therapy
Kiyoko F. Aoki-Kinoshita Outcomes
Computational Systems Biology of Vittorio Cristini, Eugene J. Koay,
Cancer and Zhihui Wang
Emmanuel Barillot, Laurence Calzone, Normal Mode Analysis: Theory and
Philippe Hupé, Jean-Philippe Vert, and Applications to Biological and Chemical
Andrei Zinovyev Systems
Python for Bioinformatics, Second Edition Qiang Cui and Ivet Bahar
Sebastian Bassi Kinetic Modelling in Systems Biology
Quantitative Biology: From Molecular to Oleg Demin and Igor Goryanin
Cellular Systems Data Analysis Tools for DNA Microarrays
Sebastian Bassi Sorin Draghici
Methods in Medical Informatics: Statistics and Data Analysis for
Fundamentals of Healthcare Microarrays Using R and Bioconductor,
Programming in Perl, Python, and Ruby Second Edition
Jules J. Berman Sorin Drăghici
Chromatin: Structure, Dynamics, Computational Neuroscience:
Regulation A Comprehensive Approach
Ralf Blossey Jianfeng Feng
Computational Biology: A Statistical Biological Sequence Analysis Using
Mechanics Perspective the SeqAn C++ Library
Ralf Blossey Andreas Gogol-Döring and Knut Reinert
Game-Theoretical Models in Biology Gene Expression Studies Using
Mark Broom and Jan Rychtář Affymetrix Microarrays
Computational and Visualization Hinrich Göhlmann and Willem Talloen
Techniques for Structural Bioinformatics Handbook of Hidden Markov Models
Using Chimera in Bioinformatics
Forbes J. Burkowski Martin Gollery
Structural Bioinformatics: An Algorithmic Meta-analysis and Combining
Approach Information in Genetics and Genomics
Forbes J. Burkowski Rudy Guerra and Darlene R. Goldstein
Spatial Ecology Differential Equations and Mathematical
Stephen Cantrell, Chris Cosner, and Biology, Second Edition
Shigui Ruan D.S. Jones, M.J. Plank, and B.D. Sleeman
Cell Mechanics: From Single Scale- Knowledge Discovery in Proteomics
Based Models to Multiscale Modeling Igor Jurisica and Dennis Wigle
Arnaud Chauvière, Luigi Preziosi, Introduction to Proteins: Structure,
and Claude Verdier Function, and Motion
Bayesian Phylogenetics: Methods, Amit Kessel and Nir Ben-Tal
Algorithms, and Applications
Ming-Hui Chen, Lynn Kuo, and Paul O. Lewis
Published Titles (continued)
RNA-seq Data Analysis: A Practical Introduction to Bio-Ontologies
Approach Peter N. Robinson and Sebastian Bauer
Eija Korpelainen, Jarno Tuimala, Dynamics of Biological Systems
Panu Somervuo, Mikael Huss, and Garry Wong Michael Small
Introduction to Mathematical Oncology Genome Annotation
Yang Kuang, John D. Nagy, and Jung Soh, Paul M.K. Gordon, and
Steffen E. Eikenberry Christoph W. Sensen
Biological Computation Niche Modeling: Predictions from
Ehud Lamm and Ron Unger Statistical Distributions
Optimal Control Applied to Biological David Stockwell
Models Algorithms for Next-Generation
Suzanne Lenhart and John T. Workman Sequencing
Clustering in Bioinformatics and Drug Wing-Kin Sung
Discovery Algorithms in Bioinformatics: A Practical
John D. MacCuish and Norah E. MacCuish Introduction
Spatiotemporal Patterns in Ecology Wing-Kin Sung
and Epidemiology: Theory, Models, Introduction to Bioinformatics
and Simulation Anna Tramontano
Horst Malchow, Sergei V. Petrovskii, and
The Ten Most Wanted Solutions in
Ezio Venturino
Protein Bioinformatics
Stochastic Dynamics for Systems Anna Tramontano
Biology
Combinatorial Pattern Matching
Christian Mazza and Michel Benaïm
Algorithms in Computational Biology
Statistical Modeling and Machine Using Perl and R
Learning for Molecular Biology Gabriel Valiente
Alan M. Moses
Managing Your Biological Data with
Engineering Genetic Circuits Python
Chris J. Myers Allegra Via, Kristian Rother, and
Pattern Discovery in Bioinformatics: Anna Tramontano
Theory & Algorithms Cancer Systems Biology
Laxmi Parida Edwin Wang
Exactly Solvable Models of Biological Stochastic Modelling for Systems
Invasion Biology, Second Edition
Sergei V. Petrovskii and Bai-Lian Li Darren J. Wilkinson
Computational Hydrodynamics of Big Data Analysis for Bioinformatics and
Capsules and Biological Cells Biomedical Discoveries
C. Pozrikidis Shui Qing Ye
Modeling and Simulation of Capsules Bioinformatics: A Practical Approach
and Biological Cells Shui Qing Ye
C. Pozrikidis
Introduction to Computational
Cancer Modelling and Simulation Proteomics
Luigi Preziosi Golan Yona
PYTHON FOR
BIOINFORMATICS
SECOND EDITION

SEBASTIAN BASSI
MATLAB• is a trademark of The MathWorks, Inc. and is used with permission. The MathWorks does not warrant the
accuracy of the text or exercises in this book. This book’s use or discussion of MATLAB • software or related products
does not constitute endorsement or sponsorship by The MathWorks of a particular pedagogical approach or particular
use of the MATLAB• software.

CRC Press
Taylor & Francis Group
6000 Broken Sound Parkway NW, Suite 300
Boca Raton, FL 33487-2742

© 2018 by Taylor & Francis Group, LLC


CRC Press is an imprint of Taylor & Francis Group, an Informa business

No claim to original U.S. Government works

Printed on acid-free paper


Version Date: 20170626

International Standard Book Number-13: 978-1-1380-3526-3 (Hardback)

This book contains information obtained from authentic and highly regarded sources. Reasonable efforts have been
made to publish reliable data and information, but the author and publisher cannot assume responsibility for the validity
of all materials or the consequences of their use. The authors and publishers have attempted to trace the copyright
holders of all material reproduced in this publication and apologize to copyright holders if permission to publish in this
form has not been obtained. If any copyright material has not been acknowledged please write and let us know so we may
rectify in any future reprint.

Except as permitted under U.S. Copyright Law, no part of this book may be reprinted, reproduced, transmitted, or utilized
in any form by any electronic, mechanical, or other means, now known or hereafter invented, including photocopying,
microfilming, and recording, or in any information storage or retrieval system, without written permission from the
publishers.

For permission to photocopy or use material electronically from this work, please access www.copyright.com (http://
www.copyright.com/) or contact the Copyright Clearance Center, Inc. (CCC), 222 Rosewood Drive, Danvers, MA 01923,
978-750-8400. CCC is a not-for-profit organization that provides licenses and registration for a variety of users. For
organizations that have been granted a photocopy license by the CCC, a separate system of payment has been arranged.

Trademark Notice: Product or corporate names may be trademarks or registered trademarks, and are used only for
identification and explanation without intent to infringe.

Library of Congress Cataloging-in-Publication Data

Names: Bassi, Sebastian, author.


Title: Python for bioinformatics / Sebastian Bassi.
Description: Second edition. | Boca Raton : CRC Press, 2017. | Series:
Chapman & Hall/CRC mathematical and computational biology | Includes
bibliographical references and index.
Identifiers: LCCN 2017014460| ISBN 9781138035263 (pbk. : alk. paper) |
ISBN 9781138094376 (hardback : alk. paper) | ISBN 9781315268743 (ebook) |
ISBN 9781351976961 (ebook) | ISBN 9781351976954 (ebook) |
ISBN 9781351976947 (ebook)
Subjects: LCSH: Bioinformatics. | Python (Computer program language)
Classification: LCC QH324.2 .B387 2017 | DDC 570.285--dc23
LC record available at https://lccn.loc.gov/2017014460

Visit the Taylor & Francis Web site at


http://www.taylorandfrancis.com
and the CRC Press Web site at
http://www.crcpress.com
Contents

List of Figures xvii

List of Tables xxi

Preface to the First Edition xxiii

Preface to the Second Edition xxv

Acknowledgments xxix

Section I Programming

Chapter 1  Introduction 3
1.1 WHO SHOULD READ THIS BOOK 3
1.1.1 What the Reader Should Already Know 4
1.2 USING THIS BOOK 4
1.2.1 Typographical Conventions 4
1.2.2 Python Versions 5
1.2.3 Code Style 5
1.2.4 Get the Most from This Book without Reading It All 6
1.2.5 Online Resources Related to This Book 7
1.3 WHY LEARN TO PROGRAM? 7
1.4 BASIC PROGRAMMING CONCEPTS 8
1.4.1 What Is a Program? 8
1.5 WHY PYTHON? 10
1.5.1 Main Features of Python 10
1.5.2 Comparing Python with Other Languages 11
1.5.3 How Is It Used? 14
1.5.4 Who Uses Python? 15
1.5.5 Flavors of Python 15
1.5.6 Special Python Distributions 16
1.6 ADDITIONAL RESOURCES 17

vii
viii  Contents

Chapter 2  First Steps with Python 19


2.1 INSTALLING PYTHON 20
2.1.1 Learn Python by Using It 20
2.1.2 Install Python Locally 20
2.1.3 Using Python Online 21
2.1.4 Testing Python 22
2.1.5 First Use 22
2.2 INTERACTIVE MODE 23
2.2.1 Baby Steps 23
2.2.2 Basic Input and Output 23
2.2.3 More on the Interactive Mode 24
2.2.4 Mathematical Operations 26
2.2.5 Exit from the Python Shell 27
2.3 BATCH MODE 27
2.3.1 Comments 29
2.3.2 Indentation 30
2.4 CHOOSING AN EDITOR 32
2.4.1 Sublime Text 32
2.4.2 Atom 33
2.4.3 PyCharm 34
2.4.4 Spyder IDE 35
2.4.5 Final Words about Editors 36
2.5 OTHER TOOLS 36
2.6 ADDITIONAL RESOURCES 37
2.7 SELF-EVALUATION 37

Chapter 3  Basic Programming: Data Types 39


3.1 STRINGS 40
3.1.1 Strings Are Sequences of Unicode Characters 41
3.1.2 String Manipulation 42
3.1.3 Methods Associated with Strings 42
3.2 LISTS 44
3.2.1 Accessing List Elements 45
3.2.2 List with Multiple Repeated Items 45
3.2.3 List Comprehension 46
3.2.4 Modifying Lists 47
Contents  ix

3.2.5 Copying a List 49


3.3 TUPLES 49
3.3.1 Tuples Are Immutable Lists 49
3.4 COMMON PROPERTIES OF THE SEQUENCES 51
3.5 DICTIONARIES 54
3.5.1 Mapping: Calling Each Value by a Name 54
3.5.2 Operating with Dictionaries 56
3.6 SETS 59
3.6.1 Unordered Collection of Objects 59
3.6.2 Set Operations 60
3.6.3 Shared Operations with Other Data Types 62
3.6.4 Immutable Set: Frozenset 63
3.7 NAMING OBJECTS 63
3.8 ASSIGNING A VALUE TO A VARIABLE VERSUS BINDING A NAME
TO AN OBJECT 64
3.9 ADDITIONAL RESOURCES 67
3.10 SELF-EVALUATION 68

Chapter 4  Programming: Flow Control 69


4.1 IF-ELSE 69
4.1.1 Pass Statement 74
4.2 FOR LOOP 75
4.3 WHILE LOOP 77
4.4 BREAK: BREAKING THE LOOP 78
4.5 WRAPPING IT UP 80
4.5.1 Estimate the Net Charge of a Protein 80
4.5.2 Search for a Low-Degeneration Zone 81
4.6 ADDITIONAL RESOURCES 83
4.7 SELF-EVALUATION 83

Chapter 5  Handling Files 85


5.1 READING FILES 86
5.1.1 Example of File Handling 87
5.2 WRITING FILES 89
5.2.1 File Reading and Writing Examples 90
5.3 CSV FILES 90
x  Contents

5.4 PICKLE: STORING AND RETRIEVING THE CONTENTS OF VARI-


ABLES 94
5.5 JSON FILES 96
5.6 FILE HANDLING: OS, OS.PATH, SHUTIL, AND PATH.PY MODULE 98
5.6.1 path.py Module 100
5.6.2 Consolidate Multiple DNA Sequences into One FASTA File 102
5.7 ADDITIONAL RESOURCES 102
5.8 SELF-EVALUATION 103

Chapter 6  Code Modularizing 105


6.1 INTRODUCTION TO CODE MODULARIZING 105
6.2 FUNCTIONS 106
6.2.1 Standard Way to Make Python Code Modular 106
6.2.2 Function Parameter Options 110
6.2.3 Generators 113
6.3 MODULES AND PACKAGES 114
6.3.1 Using Modules 115
6.3.2 Packages 116
6.3.3 Installing Third-Party Modules 117
6.3.4 Virtualenv: Isolated Python Environments 119
6.3.5 Conda: Anaconda Virtual Environment 121
6.3.6 Creating Modules 124
6.3.7 Testing Modules 125
6.4 ADDITIONAL RESOURCES 127
6.5 SELF-EVALUATION 128

Chapter 7  Error Handling 129


7.1 INTRODUCTION TO ERROR HANDLING 129
7.1.1 Try and Except 131
7.1.2 Exception Types 134
7.1.3 Triggering Exceptions 135
7.2 CREATING CUSTOMIZED EXCEPTIONS 136
7.3 ADDITIONAL RESOURCES 137
7.4 SELF-EVALUATION 138

Chapter 8  Introduction to Object Orienting Programming (OOP) 139


8.1 OBJECT PARADIGM AND PYTHON 139
Contents  xi

8.2 EXPLORING THE JARGON 140


8.3 CREATING CLASSES 142
8.4 INHERITANCE 145
8.5 SPECIAL METHODS 149
8.5.1 Create a New Data Type Using a Built-in Data Type 154
8.6 MAKING OUR CODE PRIVATE 154
8.7 ADDITIONAL RESOURCES 155
8.8 SELF-EVALUATION 156

Chapter 9  Introduction to Biopython 157


9.1 WHAT IS BIOPYTHON? 158
9.1.1 Project Organization 158
9.2 INSTALLING BIOPYTHON 159
9.3 BIOPYTHON COMPONENTS 162
9.3.1 Alphabet 162
9.3.2 Seq 163
9.3.3 MutableSeq 165
9.3.4 SeqRecord 166
9.3.5 Align 167
9.3.6 AlignIO 169
9.3.7 ClustalW 171
9.3.8 SeqIO 173
9.3.9 AlignIO 176
9.3.10 BLAST 177
9.3.11 Biological Related Data 187
9.3.12 Entrez 190
9.3.13 PDB 194
9.3.14 PROSITE 196
9.3.15 Restriction 197
9.3.16 SeqUtils 200
9.3.17 Sequencing 202
9.3.18 SwissProt 205
9.4 CONCLUSION 207
9.5 ADDITIONAL RESOURCES 207
9.6 SELF-EVALUATION 209
xii  Contents

Section II Advanced Topics

Chapter 10  Web Applications 213


10.1 INTRODUCTION TO PYTHON ON THE WEB 213
10.2 CGI IN PYTHON 214
10.2.1 Configuring a Web Server for CGI 215
10.2.2 Testing the Server with Our Script 215
10.2.3 Web Program to Calculate the Net Charge of a Protein
(CGI version) 219
10.3 WSGI 221
10.3.1 Bottle: A Python Web Framework for WSGI 222
10.3.2 Installing Bottle 223
10.3.3 Minimal Bottle Application 223
10.3.4 Bottle Components 224
10.3.5 Web Program to Calculate the Net Charge of a Protein
(Bottle Version) 229
10.3.6 Installing a WSGI Program in Apache 232
10.4 ALTERNATIVE OPTIONS FOR MAKING PYTHON-BASED DYNAMIC
WEB SITES 232
10.5 SOME WORDS ABOUT SCRIPT SECURITY 232
10.6 WHERE TO HOST PYTHON PROGRAMS 234
10.7 ADDITIONAL RESOURCES 235
10.8 SELF-EVALUATION 236

Chapter 11  XML 237


11.1 INTRODUCTION TO XML 237
11.2 STRUCTURE OF AN XML DOCUMENT 241
11.3 METHODS TO ACCESS DATA INSIDE AN XML DOCUMENT 246
11.3.1 SAX: cElementTree Iterparse 246
11.4 SUMMARY 251
11.5 ADDITIONAL RESOURCES 252
11.6 SELF-EVALUATION 252

Chapter 12  Python and Databases 255


12.1 INTRODUCTION TO DATABASES 256
12.1.1 Database Management: RDBMS 257
12.1.2 Components of a Relational Database 258
Contents  xiii

12.1.3 Database Data Types 260


12.2 CONNECTING TO A DATABASE 261
12.3 CREATING A MYSQL DATABASE 262
12.3.1 Creating Tables 263
12.3.2 Loading a Table 264
12.4 PLANNING AHEAD 266
12.4.1 PythonU: Sample Database 266
12.5 SELECT: QUERYING A DATABASE 269
12.5.1 Building a Query 271
12.5.2 Updating a Database 273
12.5.3 Deleting a Record from a Database 273
12.6 ACCESSING A DATABASE FROM PYTHON 274
12.6.1 PyMySQL Module 274
12.6.2 Establishing the Connection 274
12.6.3 Executing the Query from Python 275
12.7 SQLITE 276
12.8 NOSQL DATABASES: MONGODB 278
12.8.1 Using MongoDB with PyMongo 278
12.9 ADDITIONAL RESOURCES 282
12.10 SELF-EVALUATION 284

Chapter 13  Regular Expressions 285


13.1 INTRODUCTION TO REGULAR EXPRESSIONS (REGEX) 285
13.1.1 REGEX Syntax 286
13.2 THE RE MODULE 287
13.2.1 Compiling a Pattern 290
13.2.2 REGEX Examples 292
13.2.3 Pattern Replace 294
13.3 REGEX IN BIOINFORMATICS 294
13.3.1 Cleaning Up a Sequence 296
13.4 ADDITIONAL RESOURCES 297
13.5 SELF-EVALUATION 298

Chapter 14  Graphics in Python 299


14.1 INTRODUCTION TO BOKEH 299
14.2 INSTALLING BOKEH 299
14.3 USING BOKEH 301
xiv  Contents

14.3.1 A Simple X-Y Plot 303


14.3.2 Two Data Series Plot 304
14.3.3 A Scatter Plot 306
14.3.4 A Heatmap 308
14.3.5 A Chord Diagram 309

Section III Python Recipes with Commented Source Code

Chapter 15  Sequence Manipulation in Batch 315


15.1 PROBLEM DESCRIPTION 315
15.2 PROBLEM ONE: CREATE A FASTA FILE WITH RANDOM SE-
QUENCES 315
15.2.1 Commented Source Code 315
15.3 PROBLEM TWO: FILTER NOT EMPTY SEQUENCES FROM A
FASTA FILE 316
15.3.1 Commented Source Code 317
15.4 PROBLEM THREE: MODIFY EVERY RECORD OF A FASTA FILE 319
15.4.1 Commented Source Code 320

Chapter 16  Web Application for Filtering Vector Contamination 321


16.1 PROBLEM DESCRIPTION 321
16.1.1 Commented Source Code 322
16.2 ADDITIONAL RESOURCES 326

Chapter 17  Searching for PCR Primers Using Primer3 329


17.1 PROBLEM DESCRIPTION 329
17.2 PRIMER DESIGN FLANKING A VARIABLE LENGTH REGION 330
17.2.1 Commented Source Code 331
17.3 PRIMER DESIGN FLANKING A VARIABLE LENGTH REGION,
WITH BIOPYTHON 332
17.4 ADDITIONAL RESOURCES 333

Chapter 18  Calculating Melting Temperature from a Set of Primers 335


18.1 PROBLEM DESCRIPTION 335
18.1.1 Commented Source Code 336
18.2 ADDITIONAL RESOURCES 336

Chapter 19  Filtering Out Specific Fields from a GenBank File 339


19.1 EXTRACTING SELECTED PROTEIN SEQUENCES 339
Contents  xv

19.1.1 Commented Source Code 339


19.2 EXTRACTING THE UPSTREAM REGION OF SELECTED PRO-
TEINS 340
19.2.1 Commented Source Code 340
19.3 ADDITIONAL RESOURCES 341

Chapter 20  Inferring Splicing Sites 343


20.1 PROBLEM DESCRIPTION 343
20.1.1 Infer Splicing Sites with Commented Source Code 345
20.1.2 Sample Run of Estimate Intron Program 347

Chapter 21  Web Server for Multiple Alignment 349


21.1 PROBLEM DESCRIPTION 349
21.1.1 Web Interface: Front-End. HTML Code 349
21.1.2 Web Interface: Server-Side Script. Commented Source Code 351
21.2 ADDITIONAL RESOURCES 353

Chapter 22  Drawing Marker Positions Using Data Stored in a Database 355


22.1 PROBLEM DESCRIPTION 355
22.1.1 Preliminary Work on the Data 355
22.1.2 MongoDB Version with Commented Source Code 358

Section IV Appendices

Appendix A  Collaborative Development: Version Control with GitHub 365


A.1 INTRODUCTION TO VERSION CONTROL 366
A.2 VERSION YOUR CODE 367
A.3 SHARE YOUR CODE 375
A.4 CONTRIBUTE TO OTHER PROJECTS 381
A.5 CONCLUSION 382
A.6 METHODS 384
A.7 ADDITIONAL RESOURCES 384

Appendix B  Install a Bottle App in PythonAnywhere 385


B.1 PYTHONANYWHERE 385
B.1.1 What Is PythonAnywhere 385
B.1.2 Installing a Web App in PythonAnywhere 385
xvi  Contents

Appendix C  Scientific Python Cheat Sheet 393


C.1 PURE PYTHON 394
C.2 VIRTUALENV 400
C.3 CONDA 402
C.4 IPYTHON 403
C.5 NUMPY 405
C.6 MATPLOTLIB 410
C.7 SCIPY 412
C.8 PANDAS 413

Index 417
List of Figures

2.1 Anaconda install in macOS. 21


2.2 Anaconda Python interactive terminal. 23
2.3 PyCharm Edu welcome screen. 35

3.1 Intersection. 60
3.2 Union. 61
3.3 Difference. 61
3.4 Symmetric difference. 62
3.5 Case 1. 65
3.6 Case 2. 66

5.1 Excel formatted spreadsheet called sampledata.xlsx. 93

8.1 IUPAC nucleic acid notation table. 147

9.1 Anatomy of a BLAST result. 181

10.1 Our first CGI. 216


10.2 CGI accessed from local disk instead from a web server. 217
10.3 greeting.html: A very simple form. 217
10.4 Output of CGI program that processes greeting.html. 218
10.5 Form protcharge.html ready to be submitted. 220
10.6 Net charge CGI result. 222
10.7 Hello World program made in Bottle, as seen in a browser. 224
10.8 Form for the web app to calculate the net charge of a protein. 229

11.1 Screenshot of XML viewer. 244


11.2 Codebeautify, a web based XML viewer. 245

12.1 Screenshot of PhpMyAdmin. 258


12.2 Creating a new database using phpMyAdmin. 262
12.3 Creating a new table using phpMyAdmin. 264

xvii
xviii  LIST OF FIGURES

12.4 View of the Student table. 266


12.5 An intentionally faulty “Grades” table. 267
12.6 A better “Grades” table. 267
12.7 Courses table: A lookup table. 268
12.8 Modified “Grades” table. 268
12.9 Screenshot of SQLite manager. 277
12.10 View from a MongoDB cloud provider. 281

14.1 A circle with Bokeh. 302


14.2 Four circles with Bokeh. 303
14.3 A simple plot with Bokeh. 305
14.4 A two data series plot with Bokeh. 306
14.5 Scatter plot graphics. 308
14.6 A heatmap out of a microarray experiment. 310
14.7 A chord diagram. 312

16.1 HTML form for sequence filtering. 327


16.2 HTML form for sequence filtering. 328

21.1 Muscle Web interface. 350

22.1 Product of Listing 22.2, using the demo dataset (NODBDEMO). 356

A.1 The git add/commit process. 369


A.2 Working with a local repository. 370
A.3 Working with both a local and remote repository as a single user. 379
A.4 Contributing to open source projects. 383

B.1 “Consoles” tab. 386


B.2 The “Web” tab. 386
B.3 Upgrading domain type option. 387
B.4 Select a web framework screen, select Bottle. 388
B.5 Select a Python and Bottle version. 389
B.6 Form to enter the path of the web app. 390
B.7 The sample web app is ready to use. 390
B.8 The “File” tab. 391
B.9 Form to create a new directory in PythonAnywhere. 391
B.10 View and upload files into your account. 391
LIST OF FIGURES  xix

B.11 Front-end of the program to calculate charge of a protein using


Bottle and hosted in PythonAnywhere. 392
List of Tables

2.1 Arithmetic-Style Operators 26

3.1 Common List Operations 48


3.2 Methods Associated with Dictionaries 58

9.1 Sequence and Alignment Formats 175


9.2 Blast programs 178
9.3 eUtils 191

10.1 Frameworks for Web Development 233

12.1 Students in Python University 259


12.2 Table with primary key 260
12.3 MySQL Data Types 261

13.1 REGEX Special Sequences 287

A.1 Resources 367

xxi
Preface to the First Edition

This book is a result of the experience accumulated during several years of working
for an agricultural biotechnology company. As a genomic database curator, I gave
support to staff scientists with a broad range of bioinformatics needs. Some of them
just wanted to automate the same procedure they were already doing by hand, while
others would come to me with biological problems to ask if there were bioinformat-
ics solutions. Most cases had one thing in common: Programming knowledge was
necessary for finding a solution to the problem. The main purpose of this book is to
help those scientists who want to solve their biological problems by helping them
to understand the basics of programming. To this end, I have attempted to avoid
taking for granted any programming-related concepts. The chosen language for this
task is Python.
Python is an easy-to-learn computer language that is gaining traction among
scientists. This is likely because it is easy to use, yet powerful enough to accomplish
most programming goals. With Python the reader can start doing real programming
very quickly. Journals such as Computing in Science and Engineering, Briefings
in Bioinformatics, and PLOS Computational Biology have published introductory
articles about Python. Scientists are using Python for molecular visualization, ge-
nomic annotation, data manipulation, and countless other applications.
In the particular case of the life sciences, the development of Python has been
very important; the best exponent is the Biopython package. For this reason, Section
II is devoted to Biopython. Anyhow, I don’t claim that Biopython is the solution to
every biology problem in the world. Sometimes a simple custom-made solution may
better fit the problem at hand. There are other packages like BioNEB and CoreBio
that the reader may want to try.
The book begins from the very basic, with Section I (“Programming”), teaching
the reader the principles of programming. From the very beginning, I place a special
emphasis on practice, since I believe that programming is something that is best
learned by doing. That is why there are code fragments spread over the book. The
reader is expected to experiment with them, and attempt to internalize them. There
are also some spare comparisons with other languages; they are included only when
doing so enlightens the current topic. I believe that most language comparisons do
more harm than good when teaching a new language. They introduce information
that is incomprehensible and irrelevant for most readers.
In an attempt to keep the interest of the reader, most examples are somehow
related to biology. In spite of that, these examples can be followed even if the reader
doesn’t have any specific knowledge in that field.
To reinforce the practical nature of this book, and also to use as reference

xxiii
xxiv  Preface to the First Edition

material, Section IV is called “Python Recipes with Commented Source Code.”


These programs can be used as is, but are intended to be used as a basis for other
projects. Readers may find that some examples are very simple; they do their job
without too many bells and whistles. This is intentional. The main reason for this
is to illustrate a particular aspect of the application without distracting the reader
with unnecessary features, as well as to avoid discouraging the reader with complex
programs. There will always be time to add features and customizations once the
basics have been learned.
The title of Section III (“Advanced Topics”) may seem intimidating, but in
this case, advanced doesn’t necessarily mean difficult. Eventually, everyone will
use the chapters in this section [especially relational database management system
—RDBMS— and XML]. An important part of the bioinformatics work is building
and querying databases, which is why I consider knowing a RDBMS like MySQL
to be a relevant part of the bioinformatics skill set. Integrating data from different
sources is one of tasks most frequently performed in bioinformatics. The tool of
choice for this task is XML. This standard is becoming a widely used platform for
data interchange between applications. Python has several XML parsers and we
explain most of them in this book.
Appendix B, “Selected Papers,” provides introductory level papers on Python.
Although there is some overlapping of subjects, this was done to show several points
of view of the same subject.
Researchers are not the only ones for whom this book will be beneficial. It has
also been structured to be used as a university textbook. Students can use it for
programming classes, especially in the new bioinformatics majors.
Preface to the Second
Edition

The first edition of Python for Bioinformatics was written in 2008 and published
in 2009. Even after eight years, the lessons in this book are still valuable. This is
quite an accomplishment in a field that evolves at such a fast pace. In spite of its
usefulness, the book is showing its age and would greatly benefit from a second
edition.
The predominant Python version is 3.6, although Python 2.7 is still in use in
production systems. Since there are incompatibilities between these versions, lot of
effort was made to make all code in the book Python 3 compatible.
Not only has the software changed in these past eight years, but enterprise atti-
tude and support toward Open Source Software in general and Python in particular
has changed dramatically. There are also new computing paradigms that can’t be
ignored such as collaborative development and cloud computing.
In the original book, Chapter 14 was called “Collaborative Development: Version
Control” and was based on Bazaar, a software that follows the currently used
distributed development workflow but is not what is being used by most developers
today. By far the most software development is done with Git at GitHub. This
chapter was rewritten to focus on current practices.
Web development is another area that changed significantly. Although this is
not a book about web development, the chapter “Web Applications” now reflects
current usage of long-running processes and frameworks instead of CGI/WSGI and
middleware-based applications. Frameworks were discussed as a side note in this
chapter, but now the chapter is based around a framework (Bottle) and leave the
old method as a historical footnote.
In databases, the NoSQL gained lot of traction, from being a bullet point in
the first edition, now has its own section using MongoDB, and a Python recipe
was changed to use this NoSQL database.
Graphical libraries have improved since 2009, and there are great quality com-
peting graphic libraries available for Python. There is a whole chapter devoted to
Bokeh, a free interactive visualization library.
Another change that is reflected in this book is the usage of Anaconda and
Jupyter Notebooks (with all code in a cloud notebook provided by Microsoft
Azure1 ).
1
See https://notebooks.azure.com/py4bio/libraries/py3.us

xxv
xxvi  Preface to the Second Edition

Regarding source code, there is a GitHub repository at https://github.com/


Serulab/Py4Bio where you can download all the code and sample files used in this
book.
There are corrections in every chapter. Sometimes there were actual mistakes,
but most of the corrections were related to the Python 3 upgrade and in keeping
with current good practices. Regarding corrections, I expect that this book may
need corrections, so I made a web page where the readers can get updates. Please
take a look at http://py3.us and subscribe to the low volume mailing list while
at it.
Apart from software evolution and paradigms shifts, I also gained development
experience and changed my views on pedagogical matters. During these years I
worked in a genome sequencing project at an international consortium and as a
senior software developer in an NYSE listed company (Globant). In the last 5 years
I worked for several well-known clients such as Salesforce and National Geographic.
I am currently working at PLOS (Public Library of Science).
By request of MATLAB, I include their contact information:
MATLAB ® is a registered trademark of The MathWorks, Inc. For product
information please contact: The MathWorks, Inc. 3 Apple Hill Drive Natick, MA,
01760-2098 USA Tel: 508-647-7000 Fax: 508-647-7001 E-mail: [email protected]
Web: www.mathworks.com
Regarding the logo of Biopython, that is used in the cover, here it is usage
license (this covers all Biopython files, including its logo):
Biopython is currently released under the "Biopython License Agreement"
(given in full below). Unless stated otherwise in individual file headers, all Biopy-
thon’s files are under the "Biopython License Agreement".
Some files are explicitly dual licensed under your choice of the "Biopython Li-
cense Agreement" or the "BSD 3-Clause License" (both given in full below). This
is with the intention of later offering all of Biopython under this dual licensing
approach.

Biopython License Agreement


Permission to use, copy, modify, and distribute this software and its documenta-
tion with or without modifications and for any purpose and without fee is hereby
granted, provided that any copyright notices appear in all copies and that both
those copyright notices and this permission notice appear in supporting documen-
tation, and that the names of the contributors or copyright holders not be used in
advertising or publicity pertaining to distribution of the software without specific
prior permission.
THE CONTRIBUTORS AND COPYRIGHT HOLDERS OF THIS SOFT-
WARE DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFT-
WARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS, IN NO EVENT SHALL THE CONTRIBUTORS OR COPY-
RIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CON-
SEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
Preface to the Second Edition  xxvii

FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF


CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
SOFTWARE.

BSD 3-Clause License


Copyright (c) 1999-2017, The Biopython Contributors All rights reserved.
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright notice, this list of
conditions and the following disclaimer. Redistributions in binary form must repro-
duce the above copyright notice, this list of conditions and the following disclaimer
in the documentation and/or other materials provided with the distribution. Nei-
ther the name of the copyright holder nor the names of its contributors may be
used to endorse or promote products derived from this software without specific
prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPY-
RIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IM-
PLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PAR-
TICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPY-
RIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDI-
RECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAM-
AGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTI-
TUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSI-
NESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (IN-
CLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
OF SUCH DAMAGE.
Exploring the Variety of Random
Documents with Different Content
kell tanulmányoznia az erkölcsi tényezőket, minthogy a természet
vagy az átöröklés hatása valamely társadalomra, mindent
egybevetve, csekélyebb, mint a társadalmat alkotó egyének vagy a
szomszédos más társadalmak cselekedeteinek a hatása. Amidőn
helyettesítette, illetve jobban mondva kipótolta az okokat (éghajlat és
faj) más okokkal (lelemény és utánzás), visszaadta a
szocziológiának a maga függetlenségét, úgy, mint az emberi
társadalmaknak a maguk szabadságát.15)
Jegyezzük meg azonban, hogy a gazdaságtani elmélkedések
még manapság sem szüntek meg. Különösen uralkodnak az egész
szocziálista szocziológiában. De ugyanekkor oly gondolkozók, mint
Tarde, Simmel, Sighele, Nordau, befolyása alatt, kezd kialakulni
határozottan a szocziológia lélektani iránya. Adjuk hozzá meg e
befolyáshoz két bölcselőnek a befolyását is, akik, bárha nem
úgynevezett szocziológusok, mégis az erkölcsi és társadalmi dolgok
birálatába a legmélyrehatóbb elemző erőt vitték bele. Ez a két
bölcselő Schopenhauer és Nietzsche. Különösen ez utóbbinak a
hatása nem érvényesült még eléggé a szocziológiában. De
maholnap némely maradi eszméi16) ellenére is, amelyek
munkásságát megrontják, talán éppen a dogmatizmusnak ez az
ellensége lesz azok egyike, akik leginkább elő fogják mozdítani egy
oly tudománynak a megujhodását, amelyben néha túlságos volt a
dogmatizmus.

IV. FEJEZET.
A módszer a szocziológiában.

A módszer kérdése fontos minden tudományban. Mindazáltal, azt


hiszszük, a szocziológiában nem szabad a módszer fontosságát
túloznunk. Oka ennek az, hogy a szocziológia ma még
kialakulásának a korszakát éli, vagyis abban a korszakban van,
amikor a kutatónak leginkább van szüksége szabadságra.
Óvakodnia kell túlságosan zsarnoki tantételektől és túlságosan
aprólékos szabályoktól, aminőknek felállítását bizonyos
szocziológusok kötelességüknek vélték.
Be fogjuk érni ennélfogva egynémely útmutatással.
Abból, amit föntebb mondottunk, világos, hogy a szocziológia
módszere nem lehet az a priori módszer. Ezt a módszert
használhatták akkor, amikor a szocziológia alá volt még rendelve a
metafizikának vagy az erkölcstannak. De ma már nincs alárendelve.
Másról nem lehet szó, mint a megfigyelés módszeréről, e módszer
különböző eljárásaival egyetemben. Ami e módszer alkalmazását és
eljárásainak foganatba vételét illeti, ez minden kutatónak a saját
ügye és nagyon sokféle lehet a tanulmányozott problémák szerint.
Van azonban egy módszer, amelyet véleményünk szerint bajos
elfogadni, éppen azért, mert kizárólagos jellegü. Ez az a teljesen
objektiv módszer, amelyet Durckheim javasolt «A szocziológiai
módszer szabályai» czímű művében. A szocziológusnak, Durckheim
szerint, objektiv módon kellene tárgyalnia a társadalmi jelenségeket,
és külső dolgokban kellene azokat megfigyelnie, mert csupán itt
mérhetők és ismerhetők meg mennyiségileg. Minthogy érzéseink
változók és vitathatók, a külső világban kell keresnünk állandó
jelenségeket, valóban objektiveket, amelyeknek segítségével a
társadalmi jelenségek mérhetők.
A jogszabályok be fogják tölteni például ezt szerepet. Ha
szemügyre veszszük ama szabályok tömegének változatait, amelyek
bizonyos társadalmakban bizonyos bűncselekményekre
vonatkoznak, akkor objektive tanulmányozhatjuk majd a társadalmi
szolidaritás változatait. Mint Bouglé megjegyzi: «E módszer exakt
voltához arra volna szükség, hogy a szorosan vett társadalmi
jelenségek és ezek az anyagi jelenségek exakt módon
megfeleljenek egymásnak, és hogy például a törvénykönyvek
változatai tökéletesen párhuzamosak legyenek a jogérzések
változataival. Csakhogy a társadalomtudományban bajos efféle
egybevágóságokat kimutatni. Ihering megjegyzi, hogy a jogérzések
nagy tömege nem nyer kifejezést, érzéki szimbolum nélkül marad.
Vannak igen erős érzések, amelyek nem objektiválódhatnak
határozott formában. Sőt mi több, vajjon nem mondhatjuk-e gyakran
jogosan, hogy az a pillanat, amikor valamely érzés kezd kifejlődni,
kezd átlépni a dolgok sorába, egyben az a pillanat is, amikor elkezd
hanyatlani, elkezd kiválni a tudatokból? Ihering kimutatta, hogy
csalódnánk, ha a reális kapcsolatokat az apa és fiai között Rómában
e kapcsolatok jogi kifejeződése alapján itélnők meg.»17) Max Nordau
kimutatta A konvenczionális hazugságok czímű könyvében, mekkora
ür tátong gyakran intézményeink és igazi meggyőződésünk,
társadalmi cselekvőségünk és benső gondolatvilágunk között.
Társadalmi életünk nagyrészt szimbolum, látszat, hazugság. Éppen
abban a pillanatban, mikor a társadalmi hatalmak és a társadalmi
intézmények kezdik elveszteni hatalmukat a lelkek fölött, akkor
szaporítják a szertartásokat, a czeremóniákat, a külső szabályokat.
Milyen hamis fogalmat nyerne az a szocziológus, aki társadalmi
tudatunkat például a család vagy a tulajdon szempontjából a
törvények, a létező intézmények és kombinácziók alapján akarná
megítélni? Nagy a hija annak, hogy a külső mindig a belső kifejezője
legyen.
Tegyük hozzá, hogy a szocziológia kénytelen egyre inkább
lélektanivá és eszmékkel foglalkozóvá válni, amily mértékben olyan
tudatosabb történeti korszakok tanulmányozásával foglalkozik,
aminő a mi modern társadalmaink korszaka a XVIII. század végétől
kezdve. Hogyan értsük meg a német szocziálizmus eredetét és
fejlődését, ha vissza nem megyünk a német filozófia eszméire,
amelyeknek megvalósítása ez az eredet? «Ha Németországban a
földhitelre olyan szabályozást ajánlanak, amelynek forrása Hegelben
vagy Saint-Simonban van, vajjon nem mondhatjuk-e azt, hogy a
hegeli vagy a saint-simoni szellem manapság törvényt alkot?»18)
Nem itélhetjük meg kedvezőbben az úgynevezett biológiai
módszert sem (Schaeffle, Spencer, Worms), amely egy – gyorsan
elenyészett – pillanatig kedvelt volt. Ez a módszer, mint tudjuk,
organizmusnak tekinti a társadalmat, és analógia útján alkalmazza
rá a fiziológiai törvényeket, amelyek az élő lényeket kormányozzák.
Az efféle módszernek az a hátránya, hogy föltételez bizonyos
társadalmi metafizikát (organizmus vagy társadalmi materializmus)
és holmi társadalmi realizmushoz vezet, amely a társadalomnak az
egyénektől független és az egyéneknél magasabb rendü létet
tulajdonít. Megjegyezzük azonban, hogy a biológiai hasonlatok, ha
nem betű szerint való értelmükben fogjuk fel őket, nem járnak ezzel
a veszedelemmel, sőt valamelyes szolgálatot is tehetnek.
Bizonysága ennek az, hogy ilyen hasonlatokat találunk néha azoknál
a szocziológusoknál is, akik egyáltalán nem fogadják el a társadalmi
organizmus elméletét.
Ha ezt a két felfogást kiküszöböltük, azt hiszszük, hogy a
legbátrabban használhatók a különféle szocziológiai módszerek:
akár a Barth-féle leíró és történeti módszer, akár a Steinmetz-féle
osztályozó módszer, akár a Simmel-féle elvont lélektani módszer,
akár a Nordau-féle konkrét lélektani módszer. Ezek a különböző
módszerek egyébként nem is összeegyeztethetetlenek, és
kölcsönösen támogatják is egymást.
Véleményünk szerint a leíró, analitikai és kritikai társadalmi
lélektan nagy szolgálatokat tehet, ha csak annyiban is, hogy jobban
megvilágítja a társadalmi problémák sokféle anyagát és előkészíti
azok megoldását.
De, mint már az imént hangsúlyoztuk, óvakodnunk kell a túlzott
dogmatizmustól és a túlságosan rideg szabályalkotástól. Ez azzal a
veszedelemmel jár, hogy mindenről hamis képet nyerünk. Nietzsche
mondta meg az igazat ezt illetően, a következő sorokban, az
erkölcsre vonatkozóan, és megjegyzéseit – mutatis mutandis –
pontosan alkalmazhatjuk a szocziológiára is. «Az erkölcsi érzés
manapság, Európában, oly ravasz, oly habozó, oly sokféle, oly
finomult és oly kényes, hogy az «erkölcs tudománya», amely vele
foglalkozik, fiatal, ujoncz, nehézkes és esetlen mozgású… Ridegen
meg kellene állapítani, mi az, amire – még hosszú ideig – szükség
van itt; mi az, aminek egyelőre egyedül van létjogosultsága. Ez
tudniillik az anyaggyüjtés, megfogalmazása és megművelése élő,
növekvő, támadó és elenyésző kényes érzések és értékbeli
differencziálódások rengeteg birodalmának; esetleg kisérletek, hogy
érthetővé tegyük ennek az eleven kristályosodásnak a korszakos
változását és gyakori fázisait, még pedig azért, hogy előkészítsük az
erkölcs tipusainak tanát. Eddigelé nem tapasztalhattuk ezt a
szerénységet. A filozófusok sokkal magasztosabb, sokkal
követelődzőbb, sokkal ünnepiesebb feladatot tüztek maguk elé,
mihelyt úgy foglalkoztak az erkölcstannal, mint tudománynyal: az
erkölcs fundamentumát akarták megvetni, és mindegyik filozófus azt
hitte mindmáig, hogy meg is alapozta az erkölcsöt. Milyen messze
esik kevélységüktől ez a leíró feladat, amely nem kelt feltünést és
feledésbe merülten a porban hever, noha a legfinomabb kezek és
érzékek sem volnának elég szubtilisek erre a feladatra!»19)
Habár a leíró módszer a szocziológia szükségszerü
kiindulópontja és ha ennek a módszernek később nagy része lehet is
e tudomány haladásában, ezzel nem azt akarjuk mondani, hogy a
szocziológia mondjon le törvényeknek a fölfedezéséről. Lehetnek
törvények a szocziológiában és a társadalmi lélektanban, oly
törvények, igaz, amelyek az egyéni lélektan törvényeiből vezethetők
le, és amelyek – bizonyosságuk és értékük szempontjából – sok
analógiát mutatnak fel az egyéni lélektan törvényeivel.
Fölvetődött a kérdés, milyen fogalmat alkossunk magunknak a
szocziológiai törvények igazi mivoltáról. Erre a kérdésre
vonatkozóan két felfogást ismerünk.
Az egyik (E. de Laveleye) szerint: a társadalmi törvények azok,
amelyeket a törvényhozó rendel el, nem pedig a természeti
szükségszerüségek. «Ez utóbbiak, – mondja Laveleye, – kisiklanak
az emberi akarat elől, míg az előbbiek belőle áradnak ki.»
A másik felfogás szerint (Comte, Spencer, de Greff): a társadalmi
törvények éppen olyan természetüek, mint a fizikai törvények. A
társadalmi jelenségekre is érvényes az akczió és reakczió, az
oppoziczió és a kombináczió törvénye, és ezek a törvények
természeti szükségszerüségek, amelyek azonosak az anyagi
mindenséget kormányzó törvényekkel.
A mi véleményünk szerint van épp úgy szocziológiai
determinizmus, mint lélektani determinizmus. De ebből nem azt
következtetjük, hogy az emberi akaratnak nincs módjában
beleavatkoznia a társadalmi jelenségekbe, hogy azokat módosítsa
vagy irányítsa. Arról van szó csupán, hogy egyetértünk-e az emberi
akarat meghatározásában.
Ha az akarat alatt indifferens hatalmat értünk, amelynek semmi
közössége sincs azzal a miliővel, ahol arra van hivatva, hogy hasson
és abszolut legyen szavával új létföltételeket teremtsen, akkor
világos, hogy ilyen akarat beavatkozásának fogalma nem foglalhat
helyet a tudományban.
Ha azonban az akarat alatt oly gondolkodó és cselekvő hatalmat
értünk, amely fogékony arra, hogy eszméket megértsen és azokat
megvalósítsa, alkalmazkodván a környezet körülményeihez és a
fizikai és erkölcsi természet általános törvényeihez? Nos, akkor
észszerűen és tudományosan elfogadható az emberi akarat
beavatkozása. Ez a működés már nem értelmetlen, minthogy a
természetes determinizmussal és különösen az eszmeerők lélektani
törvényével nem ellentétben, hanem velök összhangban érvényesül.
Ilykép összeegyeztethetők a determinizmus követelményei azzal
a viszonylagos esetlegességgel, amelyet Tarde vél látni a társadalmi
tények menetében.

V. FEJEZET.
Mi a társadalom?

Czélszerü lesz, tanulmányunk tárgyának az elhatárolása


érdekében, megfogalmazni azt, hogy mi a társadalom. Nem a
társadalom tényleges meghatározását akarjuk adni e helyütt, mert
hiszen az ilyen meghatározásnak az volna a föltétele, hogy a
szocziológia befejezett tudomány legyen; hanem csupán névleges
és formális meghatározást akarunk most adni. Nem döntjük el e
pillanatban a társadalmi realizmus vagy nominalizmus problémáját
sem, vagyis azt a kérdést, vajjon Plato követőivel együtt úgy kell-e
felfognunk a társadalmat, mint az egyénektől külön létező és nálok
felsőbbrendü valóságot (entitást), vagy pedig a peripatetikus
nominalistákkal együtt azt kell-e hinnünk, hogy a társadalom kivül az
egyéneken semmi sem. Kiküszöböljük most azt a kérdést is, vajjon
mi a társadalmak teremtő tényezője. Ezeket a problémákat később
lesz módunk tanulmányozni.
Csupán arról van szó, hogy szavakba foglalt meghatározását
adjuk a társadalomnak.
Valamely társadalom egyéneknek a csoportja, akik akár spontán
elhatározásukból, akár önként egyesültek bizonyos körülmények és
bizonyos szükségletek hatása alatt. Ez olyan fajta meghatározás,
aminőt Gobineau gróf ad az «Emberi fajok egyenlőtlenségé»-ről
szóló munkájának az elején. «Társadalom alatt – írja Gobineau, –
hasonló eszmék irányítása alatt élő és azonos ösztönökkel
felruházott emberek egyesülését értem, amely politikai szempontból
többé-kevésbbé tökéletes, de társadalmi szempontból teljes».20)
Hangsúlyoznunk kell e helyütt, hogy a társadalom szó nem
téveszthet meg senkit arra nézve, hogy a társadalmi
csoportosulások vagy más szóval társaságok, igen sokfélék:
Kiterjedésük szempontjából megkülönböztethetünk igen nagy
társaságokat, aminők pl. valamely egyház, amely katholikusnak,
vagyis egyetemesnek vallja magát, – valamely nemzet – valamely
politikai liga, amely felölel egy egész országot, – továbbá igen kis
társaságokat, aminők pl. valamely falusi község, valamely
testgyakorló társaság, a mezőgazdák szövetkezése, akik azért
társultak, hogy közös pénzen vásároljanak mezőgazdasági
termelőeszközöket.
Eredetük szempontjából megkülönböztethetünk természetes
társaságokat és mesterséges társaságokat. A család a természetes
társaságok tipusa. Valamely részvénytársaság, hivatalnoki testület,
kerékpározó-egyesület megannyi mesterséges társaság.
Tartamuk szempontjából megkülönböztethetünk ideiglenes vagy
éppen pillanatnyi társaságokat és tartós társaságokat. Ideiglenes
társaságok pl. a sztrájkolók valamely szindikátusa, valamely
tombola- vagy bálbizottság. Tartós társaság pl. a
szabadkőművesség, amely – átalakulván – századok során át
tovább él.
Tegyük hozzá, hogy valamely társadalom ritkán egy társaság.
Többnyire összetett halmaza, mozaikja apróbb társaságoknak,
amelyek kereszteződnek és egymásba fonódnak, olyformán, hogy
az egyént többé-kevésbbé bonyolult társadalmi kapcsolatok
szövevényével veszik körül. Család, község, állam, társadalmi
osztály, foglalkozási csoport, vallási csoport, ez mindmegannyi külön
társaság, amely megannyi konczentrikus réteggel veszi körül az
egyént. Cicero megjegyezte már De Officiis czímű művének első
könyvében: «Több faja van a társaságoknak az emberek között.
Arról az elsőről, amely a végtelenségig terjed, térjünk át egy
másikra, amely szükebb, arra, amelyben az emberek egy nemzetet,
egy népet alkotnak, amelyben ugyanazt a nyelvet beszélik, mindez
csupa olyan dolog lévén, amely erősen egymáshoz kapcsolja az
embereket; még korlátozottabb társaság az, mikor több ember
ugyanabból a községből való. Végül a rangbeli kötelékek a
legközvetlenebbek; ez a maga mérhetetlenségéből egy ponttá
redukált társaság.»21) «Ritkaság, – mondja Bouglé, – hogy valamely
egyén csak egy társaságba tartozik. Talán, ha visszamennénk a
multban a vízözönig, találnánk olyan törzstagot, aki nem volt semmi
egyéb, csak saját törzsének a tagja; de a czivilizáczió haladása
meggyarapítja azokat a csoportokat, amelyektől az egyének
függenek, és úgy látszik, hogy mennél czivilizáltabbak vagyunk,
annál több ilyen függőségünk van. Hány társaságnak tagja az, aki
szereplő egyén!? Az egyháztól kezdve, amelynek hű fia, a
versenytársaságig, amelynek titkára; a családtól kezdve, amelynek
apja, a hadseregig, amelynek katonája!»22)
E társadalmi körök mindegyike különleges kötelességeket ró az
egyénre. Ki nem látja, hogy e kötelességek között összeütközés
támadhat? A társadalmi élet bonyolultságának megvan a
visszhangja az egyén erkölcsi életében. E sokféle kapcsolatoknak és
a belőlük támadható erkölcsi összeütközéseknek tanulmányozása
egyik legérdekesebb tárgya a társadalmi lélektannak.
Fontos, hogy ne téveszszük szem elől a szocziológiában a
társadalmi kapcsolatoknak ezt a bogozottságát, mert különben
megtéveszt bennünket ez a kifejezés: a társadalom. Voltaképpen
nem is a társadalom-ról van szó, hanem társaságok-ról.
Hasonlóképpen czélszerü e helyütt megkülönböztetni egymástól
két kifejezést, amelyeket gyakran szoktak egymás helyett használni.
Ez a két kifejezés: a társadalom és az állam.
A társadalom, úgy tetszik, tágabb értelmű kifejezés, mint az
állam. A társadalom terjedelmesebb társadalmi kör, mint az állam,
amely kizáróan politikai kapcsolatokat ölel fel, míg a társadalom szó
mindenfajta kölcsönös társadalmi hatások, gazdasági, jogi, vallási,
erkölcsi, stb. hatások komplexumát jelenti.
Egy második különbség az, hogy az állam szó inkább
kényszerítő hatalmat jelent, míg a társadalom fogalma önkéntes
társadalmi szervezkedésnek és növekedésnek felel meg. «Az állam,
– mondja S. Balicki, – az a társadalom, amely kényszerü
összetartozásban egyesült.» «A társadalom szó, – mondja ugyanaz
a szerző, – oly alakulatnak felel meg, amely hosszú időn át
érvényesült társadalmi szolidarítás eredménye és egyben mentes
minden kivülről jövő ingerenczia alól.»23)
Egy másik különbség, amelyet politikai írók szoktak
nyomatékosan hangoztatni, az, hogy az állam szembeállítható a
társadalommal, olyanformán, mint az ész az ösztönnel. Több író (pl.
de Laveleye) az államban magasabbrendü észszerü normát lát,
amelynek az a feladata, hogy a tudattalan és ösztönszerü társadalmi
cselekvéseket fegyelmezze és tökéletesítse. Az állam valamennyi
meghatározása, Platoétól kezdve Hegeléig, hangoztatja ezt az
észszerüséget, amely benne rejlik az állami működésben. Az állam
ekként, mint a társadalom esze, λόγος-a, jelentkezik, mint eszmei
formulája oly társadalmi törvénykönyvnek, amelynek az a
rendeltetése, hogy fegyelmezze a vak társadalmi erőket, amelyek a
tudattalanság és észszerütlenség birodalmában működnek.
Más szavakkal az állam raczionális eszme volna. Der Staat ist
eine geäusserte, der Realität eingebildete Idee eines Volkes (Az
állam valamely nép kinyilvánított és valósággá képzelt eszméje).24)
Ennek a megkülönböztetésnek egyik következménye az, hogy az
erkölcs szempontjából az egyén és a társadalom ellentétességének
problémája egészen más probléma, mint az egyén és az állam
ellentétességének problémája. A második probléma, amelyet H.
Spencer próbált megoldani Az egyén az állam ellen czímű
könyvében, gyermekjáték csupán ahhoz a sokkal bonyolultabb
problémához képest, amely az egyén és a társadalom között támad.
Mert lehetnek és csakugyan vannak is társadalmi zsarnokságok
(erkölcsök, szokások, közvélemény, fojtogató előitéletek,
csordaszellem), mint ahogy lehetnek állami zsarnokságok. És az is
igaz, hogy az egyén, mikor társadalmi igazságtalanságokat és
zsarnokságokat kénytelen türni, nem egyszer keresett az állam
beavatkozásában orvosságot bajaira, és a társadalom
igazságtalanságai ellen az állam magasabbrendü igazságosságához
folyamodott. Nem kutatjuk e helyütt, vajjon az egyén, mikor ekkép az
állam tekintélyét hivta segítségül, elérte-e és mennyiben érte el
czélját. Nem vizsgáljuk azt sem, vajjon az állami beavatkozások
törvényesek és hatékonyak-e; nem kérdezzük azt sem, vajjon az
állam szerepét növelni vagy csökkenteni fogja-e a czivilizáczió
haladása. E helyütt csak határozottan meg akarjuk különböztetni az
állam és a társadalom fogalmát. A szocziológiának számot kell
vetnie nagyon is ezzel a megkülönböztetéssel: mert a
szocziológiának tárgya nem az állam, mely a politika tárgya, hanem
a társadalom. Az előjogok és az állami mindenhatóság
megszüntetése, – mondja Balicki, – leplezetlenül elénk tárta azt a
független társadalmi alakulatot, amely mindaddig az állam védő
szárnyai alatt húzódott meg. A tudomány nem is késett ennek a
fontosságát hangsúlyozni. A társadalomról (bürgerliche Gesellschaft)
akarunk beszélni, amelynek közkeletü fogalma a mult század végén
kezdett utat törni magának.25)
VI. FEJEZET.

A szocziológia felosztása. – Az osztályozás


problemája.

A társadalmak alakulnak, fenmaradnak, fejlődnek és átalakulnak;


végül szétmállnak és eltünnek.
Ennélfogva a szocziológia négy természetes részre oszlik.
Tanulmányoznunk kell egymásután: 1. hogyan alakulnak a
társadalmak; 2. hogyan maradnak fenn; 3. hogyan fejlődnek; 4.
hogyan mállnak szét és múlnak el. Mielőtt a társadalmak alakulását
és fejlődését tanulmányozzuk, foglalkoznunk kell röviden az
osztályozás kérdésével a szocziológiában.
Túlzás volna, ha tisztára osztályozó tudományt csinálnánk a
szocziológiából, mint némelyek meg is teszik. Az osztályozás egyik
tudományban sem elégséges, de valamennyiben elengedhetetlen.
Különösen az oly tudományokban, amelyek, mint a szocziológia, a
kezdetüket élik. Worms el akarna halasztani minden osztályozást a
szocziológiában mindaddig, amíg jobban nem fogjuk ismerni az igazi
társadalmi kapcsolatokat.26) De mi inkább Steinmetz véleményén
vagyunk, aki azt hiszi, hogy csupán az osztályozás fogja lehetővé és
termékenynyé tenni a szocziológiai kutatásokat.27)
A szocziológiai osztályozás nagyszámú. Megpróbáljuk néhány
főcsoportra visszavezetni az osztályozásokat. Meg fogjuk
különböztetni a következő osztályozásokat: 1. morfológiai
osztályozások A morfológiai osztályozásokat az az alapethnografiai
osztályozások; 4. lélektani osztályozások. A morfológiai
osztályozásokat az az alapvető fontosság jellemzi, amelyet a
szerzők a differencziálódás tényének tulajdonítanak.
Ez osztályozások közül az első Spenceré, aki a társadalmakat
bonyolultságuk (integration) és differencziálódásuk foka szerint
osztja fel. A növekvő differencziálódás egyébként korolláriuma
csupán a növekvő bonyolultságnak. Ez elvi alapon Spencer a
társadalmak négy osztályát állítja föl: egyszerü társaságok,
egyszerüen összetett társaságok, kétszeresen összetett társaságok,
háromszorosan összetett társaságok. Spencer különben egy másik
osztályozást is ajánl: a katonai és az ipari társadalmakra való
felosztást, amikor is az előbbieket a kényszerü együttműködés, az
utóbbiakat az önkéntes együttműködés jellemzi (compulsory
cooperation, voluntary cooperation).
Nem igen látjuk át, mennyiben egyeztethető össze ez az utóbbi
osztályozás az előbbivel. Sőt, mi több: felvetődik az a kérdés, vajjon
valamely társadalom militárizmusa vagy industriálizmusa egyáltalán
alkalmas-e arra, hogy osztályozás alapja legyen. «Ez a jelleg, – írja
Steinmetz, – nem igen állandó; az Egyesült-Államokat a világ
legkevésbbé militárista államának tartottuk, és mégis, az a mód,
ahogyan elfoglalták a spanyol gyarmatokat, a szélső militárizmus
hajlamát tárta fel náluk, amelynek értelmét még inkább hangsúlyozta
az a kísérlet, amelylyel a Fülöpszigetek szabadságát akarták
elfojtani.» «Eddigelé, – folytatja odébb Steinmetz, – nem ismerünk
egyetlen czivilizált népet sem, amely többé-kevésbbé militárista nem
volna.»28) Valamely társadalom ipari vagy katonai jellege nem
szolgálhat tehát osztályozási elvül.
Ami a társadalmak bonyolultságára és differencziáltságára
alapított felosztást illeti, ez már pontosabb és érdembe vágóbb elvi
alapot szolgáltat. Megvan ez különben, többé-kevésbbé módosítva,
Durckheim és Giddings osztályozásaiban is.
Durckheim joggal elveti a katonai és ipari társadalmak
megkülönböztetését. Elfogadja azonban az összetételük foka szerint
való felosztásukat. Igy aztán a társadalmakban a szolidaritás két
formáját különbözteti meg: a mechanikus szolidaritást és az
organikus szolidaritást. Az előbbi hasonlóságokon épül, az utóbbi a
munkamegosztás következménye. Az előbbi tipusú társadalmak
nem differencziálódott társadalmak, amelyeknek elemei a
kezdetleges szervezetek homogén sejtjeihez hasonlatosak; az
utóbbi tipusúak differencziálódott társadalmak, amelyekben a
különböző működések elvégzésére specziálizálódott elemek inkább
heterogén szervekhez hasonlatosak. – Durckheim megjegyzi még,
hogy a mechanikus szolidaritás fordított, az organikus szolidaritás
pedig egyenes viszonyban van az individuális személyiséggel.
(Durckheim: Division du travail social [Társadalmi munkamegosztás],
III. fejezet.)
Giddings felosztása nagyon hasonlít Durckheiméhoz. – Két
társadalmi tipust különböztet meg: a társadalmi összevetődést
(Komposition) és a társadalmi alkotmányt (Konstitution), amelyek
körülbelül megfelelnek Durckheim kétféle szolidaritásának. A
következő különbséget azonban meg kell említenünk: Giddings nem
úgy fogja fel, mint Durckheim, az egyének kapcsolatait a csoport
belsejében a két társadalmi rendszeren belül. Ő azt hiszi ugyanis,
hogy az egyének inkább különbözők azokon a csoportokon belül,
amelyek valamely összetevődött társadalom (mechanikus
szolidaritás) részei, ellenben inkább hasonlatosak azokon a
csoportokon belül, amelyek valamely alkotmányos társadalom
(organikus szolidaritás) részei. A tények inkább Durckheimnak
adnak igazat, mint Giddingsnek. Mert vitathatatlan tény, hogy a
czivilizáczió haladásának, amint az összetevődött társadalmak
alkotmányos társadalmakkal helyettesítődtek, mindenütt az volt az
eredménye, hogy az egyének maguk is differencziálódtak.29)
A gazdasági osztályozások a társadalmak gazdasági
szervezetén alapulnak. Idézzük e helyütt Hildebrand felosztását,
amely a termékek megoszlásának módján alapszik: 1. a természetes
cseregazdaság (Naturalwirtschaft); 2. a pénzgazdaság
(Geldwirtschaft); 3. a hitelgazdaság (Creditwirtschaft), ahol a hitel az
uralkodó, amely áthat minden gazdasági kapcsolatot.
Karl Bucher, lipcsei egyetemi tanár, négy gazdasági fázist
különböztet meg a gazdasági élet általános szervezése szerint: 1.
azt a fázist, amelyben a gazdasági életet az jellemzi, hogy az egyén
maga gondoskodik fentartásáról;30) 2. a második fázis a zárt
házigazdálkodás (geschlossene Hauswirtschaft) fázisa, ahol minden
család a legtágabb értelemben egy háztartást alkot, amely teljesen
elválik a többiek háztartásától és maga gondoskodik szükségleteiről;
3. a harmadik fázis a városi gazdálkodás (Stadtwirtschaft) fázisa
volna, amelybe főkép a középkor tartozott. Végül 4. az utolsó fázis a
nemzetgazdálkodás (Volkswirtschaft) fázisa, amelyben a
termelvények több kézen mennek keresztül, mielőtt a fogyasztóhoz
érkeznek.
Mielőtt elhagyjuk a gazdasági osztályozások területét, említsük
meg Grosse és Hahn felosztását is, amely a technika fejlődésén
alapszik.
A geografico-ethnografiai osztályozások szerzői azt hiszik, hogy
külön-külön területeket különböztethetnek meg, ahol a czivilázáczió
egyetlen elve uralkodik. Igy határozzák meg a czivilizáczió külön-
külön öveit. Ratzel különösen a geográfiai miliő befolyását
hangsúlyozza ez övek kialakulásában.
A lélektani osztályozások tipusa Comte osztályozása, aki azt
hitte, hogy minden társadalmi változást levezethet az emberi szellem
egymásra következő állapotainak fejlődési törvényéből (a három
fejlődési állapot törvénye). Ez a felfogás homlokegyenest ellenkezik
Marx felfogásával, aki a gazdasági folyamatot tekinti minden egyéb
folyamat alapjának.31) Comte szerint, ellenkezőleg, a világ képzete,
bármely adott perczben, rányomja bélyegét minden egyéb
társadalmi tényre. Steinmetz szintén lélektani alapra helyezkedik a
társadalmi tipusok osztályozásánál. Az emberi társadalmaknak négy
ágát különbözteti meg, szellemi életük uralkodó vonása szerint.
Az első ág az, amelyet az ősember (Urmensch) korának
nevezhetnénk. «Ősemberek oly lények, akik a vadállatokétól nem
igen különböző módon gondolkoznak, akik nem alkotnak fogalmat
maguknak az ismeretlen dolgokról, tiszta materialisták, pozitivisták,
amilyenek ma már nincsenek is. Nemcsak a vallás hiányzik belőlük,
hanem a lélek, a szellem, a fétisek fogalma is; nem jutottak el még
az animizmusig sem. Talán vannak még nyomai ennek a fázisnak,
amely azonban általában történelem előtti és ennélfogva föltevéses.
De elkerülhetetlenül meg kellett előznie a második fázist.»
(Steinmetz). A második ág a vadak vagy a kezdetleges társadalmak
ágazata. Szellemi életüknek uralkodó tipusát a naivitás jellemzi;32)
csak asszocziáczió útján gondolkoznak. Ezeknek az embereknek
nincs még szükségük rendszerre a fogalmak világában; értelmi
erejük túlságosan gyenge ilyen erőkifejtéshez.
A harmadik ágban megjelenik a képesség a gondolatok
rendszerezésére és egységbefoglalására. Megjelennek az első
mithológiák, theogóniák, kozmológiák, filozófiai költemények. De az
emberi szellem még nem szabad.
A renaissance és a XVI. század óta támad a negyedik kiágazás.
A szabad kritika, az egész világgal szemben való rendszeres és
tudományos viselkedés jellemzi. Emberies erkölcs, rendszeres és
nem kapkodó társadalmi reformok, szabályos tudományos haladás –
ezek az értelem e fejlődésének szükségszerü következményei.
Steinmetz osztályozása után említhetnénk több lélektani
osztályozást, amelyet korunkbeli szocziológusok javasolnak. Az
osztályozásnak ez a fajtája, amely a társadalmak szellemi
állapotának különbségein alapszik, egyre jobban kezd érvényesülni
napjainkban. Megerősítése ez annak a föntebbi állításunknak, hogy
a szocziológia határozottan lélektani irányba tér.
Csak Sighele, Bagehot és Nietzsche osztályozását fogjuk még
röviden szóvá tenni. Sighele A szekták lélektana czímű könyvében a
czivilizáczió két tipusát különbözteti meg: azt, amely az erőszakon
nyugszik, és azt, amely a csaláson (dolus) nyugszik. Az első tipusú
czivilizáczióhoz tartoznak vagy tartoztak Korzika, Szardinia egy
része, Montenegro, a középkor itáliai városai és általában csaknem
valamennyi kezdetleges czivilizáczió. A második tipushoz tartoznak
ellenben az összes modern czivilizált népek, vagyis azok,
amelyeknél szervezetük minden részét teljesen megszállta a
burzsoa kapitalista-kormányzat. A czivilizáczió e két tipusának
megfelel a kriminalitás két külön tipusa: az atavisztikus kriminalitás,
amely szerint bizonyos egyének erőszakos eszközökhöz térnek
vissza a létért való küzdelemben, oly eszközökhöz, amelyeket a
czivilizáczió már régebben elnyomott, pl. az emberölés, a lopás és
az erőszak; és az evolutiv kriminalitás, amely hasonlóképpen elfajult,
sőt talán szándékában még inkább gonosz, mint az előbbi, de
eszközeiben sokkal polgárosultabb, minthogy az erőt és az
erőszakot ravaszsággal és csalással helyettesítette.33)
Bagehot: A nemzetek fejlődésének tudományos törvényei czímű
könyvében két kort különböztet meg a társadalmak történeti
fejlődésében: a kényszer korát és a szabad vitatkozás korát. A
vitatkozás szabadságát az emberi nem tökéletesedése
szempontjából lényeges szervnek tekinti.34)
Az osztályozási kisérleteknek szemléjét a Nietzsche-féle hires
megkülönböztetéssel fogjuk befejezni, amely annyi vitát támasztott
és fog is még támasztani. Nietzsche megkülönbözteti azokat a
társadalmakat, amelyekben a rabszolgák erkölcse, és azokat,
amelyekben az urak erkölcse uralkodik. Az előbbi erkölcsöt a
csordaszellem diadala, a kollektiv gyávaság és kegyetlenség
jellemzi, továbbá az a lagymatagság, amelylyel az egyén a csorda
akaratát szolgálja, a gyanakvás a felsőbbségekben és a gyöngék és
kicsinyek iránt való képmutató részvét. – Az urak erkölcsét a szellem
és a szív függetlensége, a hősies és megvető viselkedés jellemzi
önmagunk és mások szenvedésével szemben. A rabszolgaerkölcs a
haladás illuziójának elámítottja, és nem tudom, miféle humanitárius
jövendő álmában ringatózik, amely voltakép nem volna egyéb, mint
az egyetemes szolgaság. Az urak erkölcse a multat, az aggságot és
a hagyományt tiszteli, és a jelenben ki akarja fejleszteni az egyén
hatalmi akaratát, amely megveti a jövendő igéreteit és álmait.35)
Nietzsche a rabszolgaerkölcsre alapított társadalmakat azonosítja a
demokratikus társadalmakkal, az urak erkölcsén alapuló
társadalmakat pedig az arisztokratikus társadalmakkal. A mi
véleményünk szerint Nietzsche joggal ostorozta megvető
szarkazmusával a csorda-szellemet, a kollektiv gyávaságnak és
kegyetlenségnek azt a szellemét, amelynek nagyon is sok a nyoma
még társadalmainkban. Megvan az az érdeme, hogy egyike volt
azoknak a bátor szellemeknek, akik napjainkban a csordaszellem
ellen fölemelték az individualizmus tiltakozását és akik készörömest
elmondanák Ibsen egyik hősével: «A leghatalmasabb ember az, aki
a legegyedülibb.»
De Nietzschenek nem volt igaza, mikor összekeverte itt a
csordaszellemet és a demokratikus szellemet. A demokratikus
szellemnek, véleményünk szerint, nincs más jogosultsága, mint az,
hogy az individuálizmust hangoztatja a csordazsarnokságokkal
szemben. Valóban, nem csordaszellem van-e ott mindamaz oktalan
vagy kegyetlen előítélet mélyén, amely ma is lealjasítja társadalmi
erkölcsünket, s amely ellen küzd éppen a demokratikus szellem? –
Az állítólagos uraknak nincs-e meg szintén a maguk
csordaszelleme, amelynek itt kasztbecsület, ott pedig testületi
szellem a neve? Testületi szellem vagy kasztszellem, nagyon egyre
mennek. Nem egyebek ezek, mint egy lényegében csordai és
antiindividualista kollektiv egoizmusnak a megnyilvánulásai.
Csodálkozunk, hogy Nietzsche hatalmas szelleme efféle fogalmi
zavart okozott, amelynek súlyosak a társadalmi következményei, s
amely – különös félreértés folytán – lehetővé teszi a múlt
csordazsarnokságai védőinek, hogy Nietzschét, ezt a geniális
individualistát, maguk közé tartozónak tekintsék.
MÁSODIK KÖNYV

A TÁRSADALMAK ALAKULÁSA

I. FEJEZET.

A társadalmak teremtőelvére vonatkozó


elméletek vizsgálata.

«A társadalmak alakulása» – ez a tárgya Aristoteles Politikája


első fejezetének, amelyben a bölcselő kifejti a család és az állam
keletkezését. Tudvalevő, hogy ő szerinte a társadalom eredete
természettől való, hogy a társadalom az ember egyik ösztönének: a
társadalmi ösztönnek eredménye. «Az ember természeténél fogva
politikai állat.»
De ha megállapítjuk, hogy ez az ösztön megvan az emberben,
ezzel még nem magyarázzuk meg a társadalmak alakulását. Ki kell
még mutatni azt is, milyen törvények szerint működik ez a társadalmi
ösztön.
A szocziológusoknak régóta föl kellett vetniök ezt a főkérdést: Mi
az emberi társadalmak teremtő jelensége?
Mint ahogy Descartes azt hitte, hogy a mozgásban megtalálhatja
azt az általános tényt, amelyből az anyagi mindenség valamennyi
jelensége eredhet, a szocziológusok is azt hitték, hogy fölfedezhetik
az elemi társadalmi jelenséget. «Anyagot és mozgást adjatok, és én
megteremtem a világot», – mondotta Descartes. – Adjátok meg
nekem, – mondják a szocziológusok, – ezt az elemi társadalmi
kapcsolatot vagy kölcsönhatást, és én megalkotom a társadalmi
világot. – A kiválasztott teremtő tény a különböző theoretikusok
szerint váltakozik; de a módszer, amelyet követnek, mindig ugyanaz.
A segítségül hivott tényezők igen különböző természetüek: fizikaiak,
fiziológiaiak, gazdaságiak, lélektaniak.
Felsorolásuk abban a sorrendben, amelyben tárgyalni fogjuk
őket, a következő: 1. a faj; 2. a fizikai és geográfiai miliő; 3. a
szimbiózis vagy szerves szolidaritás (Izoulet); 4. a társadalmiság
vagy társadalmi pszichizmus (De Roberty); 5. az alkalmazkodás
(Spencer); 6. a faj érdeke és a gregarizmus (Ammon); 7. a
gazdasági fejlődés (Loria és Marx); 8. a népesség száma, sűrűsége
és mozgékonysága (Bouglé); 9. a faji tudat (Giddings); 10. a
szerződés (Rousseau); 11. az utánzás (Tarde); 12. a szinergia (H.
Mazel).
Kivülről befelé haladva, elő találjuk azokat az elméleteket,
amelyek a fajt és a geografiai miliőt hivják segítségül.
Azt az elméletet, amely a faj tényezőjén alapszik, bajos
elfogadni. Gobineau gróf szerint36) a társadalmak egyedüli teremtő
tényezője a faj. A világtörténetben nincs más tényező, mint a fajok
tisztasága vagy keveréke, vagy hogy jellegzetesebb kifejezést
használjunk: a fajok kémiája. Az ősember (Urmensch), akit
Gobineau adamitának nevez, előttünk teljességgel ismeretlen. Egy
második korszak az emberiség történetében az, amelyet a három
differencziálódott és állandó fajnak, a fehér, sárga és fekete fajnak a
megkülönböztetése jellemez. Egy harmadik korszakot az hozott
létre, hogy nagy fajták alakultak ki e három nagy faj kebelében, és
végül negyedsorban meg kell különböztetni azokat a tipus-
kialakulásokat, amelyek e nagy fajok többé-kevésbbé egyszerü vagy
bonyolult keveredéséből keletkeztek. A történelemnek nincs dolga
csak a negyedik fokú alakulatokkal. Amíg a faj tiszta marad,
valamely nép tagjainak szellemi állapota lényegében egyforma és
változatlan. Valamely nép ethnikai elemeinek keveredése idegen
elemekkel az illető népet degenerálja. Különböző vér keveredése a
gondolatok és meggyőződések különféleségét vonja maga után,
forradalmi elméletekhez visz és végül romlását okozza a
társadalomnak, amelyet idegen elemek megváltoztattak.37)
Egyszóval, Gobineau szerint az, ami az embereket egyesíti és a
társadalmakat alapítja, nem egyéb, mint a vér közössége.
Ezt az elméletet számos szocziológus megbirálta, különösen
Manonorier és Bouglé. A tapasztalás és a történelem egyaránt
Gobineau elmélete ellen tanuskodik.
Ilyen régi idők óta a faj tisztasága mythosz csak. «Bármennyire
hangoztatta is az antik világ a vér tisztaságát, ez a tisztaság csak
igen ritkán volt meg, – mondja Bagehot. – A legtöbb történeti nemzet
történelemelőtti nemzeteket győzött le; de bárha tömegesen le is
gyilkolták a legyőzötteket, valamennyit le nem mészárolták. A
meghódított faj férfiait rablánczra fűzték, asszonyait pedig feleségül
vették.»38)
Ha már az ókorban, Görögországban, Rómában és Indiában is,
gyakran fikczió volt csak a vér közössége, mit szóljunk a modern
történelemről és a nemzeti egységekről, amelyek azt betetőzik?
Ezek a nemzeti egységek gyakran nem egyebek, mint fajtákra
szakadt fajok mozaikjai. Mennél tovább előre halad a történelem, a
fajok annál inkább összekeverednek társadalmi csoportoknak a
kialakulásában.39)
A szocziológia nem merülhet el a fajok filozófiájában. A
társadalmi formák, amelyeket némelyek az ethnikai különbségek
eredményének tekintenek, gyakran maguknak az ethnikai
különbségeknek fontos tényezői. Ez vagy az a nép mintha ilyen vagy
olyan lelki vagy erkölcsi jellegző vonásokat mutatna fel. De ezek a
megkülönböztető vonások inkább azoknak a miliőknek eredményei,
amelyeken az illető nép átkelt, azoknak a társadalmi formáknak,
amelyeken keresztül ment, szóval inkább egész társadalmi
fejlődésének, mint anatómiai szerkezeteknek a következményei.
Welcome to our website – the ideal destination for book lovers and
knowledge seekers. With a mission to inspire endlessly, we offer a
vast collection of books, ranging from classic literary works to
specialized publications, self-development books, and children's
literature. Each book is a new journey of discovery, expanding
knowledge and enriching the soul of the reade

Our website is not just a platform for buying books, but a bridge
connecting readers to the timeless values of culture and wisdom. With
an elegant, user-friendly interface and an intelligent search system,
we are committed to providing a quick and convenient shopping
experience. Additionally, our special promotions and home delivery
services ensure that you save time and fully enjoy the joy of reading.

Let us accompany you on the journey of exploring knowledge and


personal growth!

textbookfull.com

You might also like