MATLAB Bioinformatics Toolbox User s Guide The Mathworks - The newest ebook version is ready, download now to explore
MATLAB Bioinformatics Toolbox User s Guide The Mathworks - The newest ebook version is ready, download now to explore
com
https://textbookfull.com/product/matlab-bioinformatics-
toolbox-user-s-guide-the-mathworks/
OR CLICK HERE
DOWLOAD EBOOK
https://textbookfull.com/product/matlab-econometrics-toolbox-user-s-
guide-the-mathworks/
textbookfull.com
https://textbookfull.com/product/matlab-mapping-toolbox-user-s-guide-
the-mathworks/
textbookfull.com
https://textbookfull.com/product/matlab-optimization-toolbox-user-s-
guide-the-mathworks/
textbookfull.com
https://textbookfull.com/product/matlab-trading-toolbox-user-s-guide-
the-mathworks/
textbookfull.com
MATLAB Computer Vision Toolbox User s Guide The Mathworks
https://textbookfull.com/product/matlab-computer-vision-toolbox-user-
s-guide-the-mathworks/
textbookfull.com
https://textbookfull.com/product/matlab-curve-fitting-toolbox-user-s-
guide-the-mathworks/
textbookfull.com
https://textbookfull.com/product/matlab-fuzzy-logic-toolbox-user-s-
guide-the-mathworks/
textbookfull.com
https://textbookfull.com/product/matlab-global-optimization-toolbox-
user-s-guide-the-mathworks/
textbookfull.com
https://textbookfull.com/product/matlab-image-processing-toolbox-user-
s-guide-the-mathworks/
textbookfull.com
Bioinformatics Toolbox™
User's Guide
R2020a
How to Contact MathWorks
Phone: 508-647-7000
Getting Started
1
Bioinformatics Toolbox Product Description . . . . . . . . . . . . . . . . . . . . . . . 1-2
Key Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-2
v
Get Information from Web Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-26
What Are get Functions? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-26
Creating the getpubmed Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-26
vi Contents
Identifying Differentially Expressed Genes from RNA-Seq Data . . . . . . . 2-41
Sequence Analysis
3
Exploring a Nucleotide Sequence Using Command Line . . . . . . . . . . . . . . 3-2
Overview of Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-2
Searching the Web for Sequence Information . . . . . . . . . . . . . . . . . . . . . . 3-2
Reading Sequence Information from the Web . . . . . . . . . . . . . . . . . . . . . . 3-4
Determining Nucleotide Composition . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-5
Determining Codon Composition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8
Open Reading Frames . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-11
Amino Acid Conversion and Composition . . . . . . . . . . . . . . . . . . . . . . . . 3-13
vii
Microarray Analysis
4
Managing Gene Expression Data in Objects . . . . . . . . . . . . . . . . . . . . . . . . 4-2
Phylogenetic Analysis
5
Using the Phylogenetic Tree App . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-2
Overview of the Phylogenetic Tree App . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-2
Opening the Phylogenetic Tree App . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-2
File Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-3
Tools Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-11
viii Contents
Window Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-17
Help Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-18
ix
1
Getting Started
Bioinformatics Toolbox provides algorithms and apps for Next Generation Sequencing (NGS),
microarray analysis, mass spectrometry, and gene ontology. Using toolbox functions, you can read
genomic and proteomic data from standard file formats such as SAM, FASTA, CEL, and CDF, as well
as from online databases such as the NCBI Gene Expression Omnibus and GenBank®. You can explore
and visualize this data with sequence browsers, spatial heatmaps, and clustergrams. The toolbox also
provides statistical techniques for detecting peaks, imputing values for missing data, and selecting
features.
You can combine toolbox functions to support common bioinformatics workflows. You can use ChIP-
Seq data to identify transcription factors; analyze RNA-Seq data to identify differentially expressed
genes; identify copy number variants and SNPs in microarray data; and classify protein profiles using
mass spectrometry data.
Key Features
• Next Generation Sequencing analysis and browser
• Sequence analysis and visualization, including pairwise and multiple sequence alignment and
peak detection
• Microarray data analysis, including reading, filtering, normalizing, and visualization
• Mass spectrometry analysis, including preprocessing, classification, and marker identification
• Phylogenetic tree analysis
• Graph theory functions, including interaction maps, hierarchy plots, and pathways
• Data import from genomic, proteomic, and gene expression files, including SAM, FASTA, CEL, and
CDF, and from databases such as NCBI and GenBank
1-2
Product Overview
Product Overview
Features
The Bioinformatics Toolbox product extends the MATLAB® environment to provide an integrated
software environment for genome and proteome analysis. Scientists and engineers can answer
questions, solve problems, prototype new algorithms, and build applications for drug discovery and
design, genetic engineering, and biological research. An introduction to these features will help you
to develop a conceptual model for working with the toolbox and your biological data.
The Bioinformatics Toolbox product includes many functions to help you with genome and proteome
analysis. Most functions are implemented in the MATLAB programming language, with the source
available for you to view. This open environment lets you explore and customize the existing toolbox
algorithms or develop your own.
You can use the basic bioinformatic functions provided with this toolbox to create more complex
algorithms and applications. These robust and well-tested functions are the functions that you would
otherwise have to create yourself.
• Data formats and databases — Connect to Web-accessible databases containing genomic and
proteomic data. Read and convert between multiple data formats.
• High-throughput sequencing — Gene expression and transcription factor analysis of next-
generation sequencing data, including RNA-Seq and ChIP-Seq.
• Sequence analysis — Determine the statistical characteristics of a sequence, align two
sequences, and multiply align several sequences. Model patterns in biological sequences using
hidden Markov model (HMM) profiles.
• Phylogenetic analysis — Create and manipulate phylogenetic tree data.
• Microarray data analysis — Read, normalize, and visualize microarray data.
• Mass spectrometry data analysis — Analyze and enhance raw mass spectrometry data.
• Statistical learning — Classify and identify features in data sets with statistical learning tools.
• Programming interface — Use other bioinformatic software (BioPerl and BioJava) within the
MATLAB environment.
The field of bioinformatics is rapidly growing and will become increasingly important as biology
becomes a more analytical science. The toolbox provides an open environment that you can customize
for development and deployment of the analytical tools you will need.
• Prototype and develop algorithms — Prototype new ideas in an open and extensible
environment. Develop algorithms using efficient string processing and statistical functions, view
the source code for existing functions, and use the code as a template for customizing, improving,
or creating your own functions. See “Prototyping and Development Environment” on page 1-18.
• Visualize data — Visualize sequences and alignments, gene expression data, phylogenetic trees,
mass spectrometry data, protein structure, and relationships between data with interconnected
graphs. See “Data Visualization” on page 1-19.
• Share and deploy applications — Use an interactive GUI builder to develop a custom graphical
front end for your data analysis programs. Create standalone applications that run separately
from the MATLAB environment.
1-3
1 Getting Started
Expected Users
The Bioinformatics Toolbox product is intended for computational biologists and research scientists
who need to develop new algorithms or implement published ones, visualize results, and create
standalone applications.
While the toolbox includes many bioinformatic functions, it is not intended to be a complete set of
tools for scientists to analyze their biological data. However, the MATLAB environment is ideal for
rapidly designing and prototyping the tools you need.
1-4
Data Formats and Databases
Web-based databases — You can directly access public databases on the Web and copy sequence
and gene expression information into the MATLAB environment.
The sequence databases currently supported are GenBank (getgenbank), GenPept (getgenpept),
European Molecular Biology Laboratory (EMBL) (getembl), and Protein Data Bank (PDB) (getpdb).
You can also access data from the NCBI Gene Expression Omnibus (GEO) Web site by using a single
function (getgeodata).
Get multiply aligned sequences (gethmmalignment), hidden Markov model profiles (gethmmprof),
and phylogenetic tree data (gethmmtree) from the PFAM database.
Gene Ontology database — Load the database from the Web into a gene ontology object (geneont).
Select sections of the ontology with methods for the geneont object (getancestors (geneont),
getdescendants (geneont), getmatrix (geneont), getrelatives (geneont)), and
manipulate data with utility functions (goannotread, num2goid).
Read data from instruments — Read data generated from gene sequencing instruments (scfread,
joinseq, traceplot), mass spectrometers (jcampread), and Agilent® microarray scanners
(agferead).
Reading data formats — The toolbox provides a number of functions for reading data from common
bioinformatic file formats.
Writing data formats — The functions for getting data from the Web include the option to save the
data to a file. However, there is a function to write data to a file using the FASTA format
(fastawrite).
BLAST searches — Request Web-based BLAST searches (blastncbi), get the results from a search
(getblast) and read results from a previously saved BLAST formatted report file (blastread).
The MATLAB environment has built-in support for other industry-standard file formats including
Microsoft® Excel® and comma-separated-value (CSV) files. Additional functions perform ASCII and
low-level binary I/O, allowing you to develop custom functions for working with any data format.
1-5
1 Getting Started
See Also
More About
• “High-Throughput Sequencing”
• “Microarray Analysis”
• “Sequence Analysis”
• “Structural Analysis”
• “Mass Spectrometry and Bioanalytics”
1-6
Sequence Alignments
Sequence Alignments
You can select from a list of analysis methods to compare nucleotide or amino acid sequences using
pairwise or multiple sequence alignment functions.
Multiple sequence profiles — Implementations for multiple alignment and profile hidden Markov
model algorithms (gethmmprof, gethmmalignment, gethmmtree, pfamhmmread, hmmprofalign,
hmmprofestimate, hmmprofgenerate, hmmprofmerge, hmmprofstruct, showhmmprof).
Biological codes — Look up the letters or numeric equivalents for commonly used biological codes
(aminolookup, baselookup, geneticcode, revgeneticcode).
See Also
More About
• “Sequence Utilities and Statistics” on page 1-8
• “Sequence Analysis”
• “Data Formats and Databases” on page 1-5
1-7
1 Getting Started
Sequence conversion and manipulation — The toolbox provides routines for common operations,
such as converting DNA or RNA sequences to amino acid sequences, that are basic to working with
nucleic acid and protein sequences (aa2int, aa2nt, dna2rna, rna2dna, int2aa, int2nt, nt2aa,
nt2int, seqcomplement, seqrcomplement, seqreverse).
You can manipulate your sequence by performing an in silico digestion with restriction endonucleases
(restrict) and proteases (cleave).
Sequence utilities — Determine a consensus sequence from a set of multiply aligned amino acid,
nucleotide sequences (seqconsensus, or a sequence profile (seqprofile). Format a sequence for
display (seqdisp) or graphically show a sequence alignment with frequency data (seqlogo).
Additional MATLAB functions efficiently handle string operations with regular expressions (regexp,
seq2regexp) to look for specific patterns in a sequence and search through a library for string
matches (seqmatch).
Look for possible cleavage sites in a DNA/RNA sequence by searching for palindromes
(palindromes).
See Also
More About
• “Sequence Alignments” on page 1-7
• “Sequence Analysis”
• “Protein and Amino Acid Sequence Analysis”
• “Data Formats and Databases” on page 1-5
1-8
Protein Property Analysis
Amino acid sequence utilities — Calculate amino acid statistics for a sequence (aacount) and get
information about character codes (aminolookup).
See Also
More About
• “Protein and Amino Acid Sequence Analysis”
• “Structural Analysis”
1-9
1 Getting Started
Phylogenetic Analysis
Phylogenetic analysis is the process you use to determine the evolutionary relationships between
organisms. The results of an analysis can be drawn in a hierarchical diagram called a cladogram or
phylogram (phylogenetic tree). The branches in a tree are based on the hypothesized evolutionary
relationships (phylogeny) between organisms. Each member in a branch, also known as a
monophyletic group, is assumed to be descended from a common ancestor. Originally, phylogenetic
trees were created using morphology, but now, determining evolutionary relationships includes
matching patterns in nucleic acid and protein sequences. The Bioinformatics Toolbox provides the
following data structure and functions for phylogenetic analysis.
Phylogenetic tree data — Read and write Newick-formatted tree files (phytreeread,
phytreewrite) into the MATLAB Workspace as phylogenetic tree objects (phytree).
Create a phylogenetic tree — Calculate the pairwise distance between biological sequences
(seqpdist), estimate the substitution rates (dnds, dndsml), build a phylogenetic tree from pairwise
distances (seqlinkage, seqneighjoin, reroot), and view the tree in an interactive GUI that
allows you to view, edit, and explore the data (phytreeviewer or view). This GUI also allows you to
prune branches, reorder, rename, and explore distances.
Phylogenetic tree object methods — You can access the functionality of the phytreeviewer user
interface using methods for a phylogenetic tree object (phytree). Get property values (get) and
node names (getbyname). Calculate the patristic distances between pairs of leaf nodes (pdist,
weights) and draw a phylogenetic tree object in a MATLAB Figure window as a phylogram,
cladogram, or radial treeplot (plot). Manipulate tree data by selecting branches and leaves using a
specified criterion (select, subtree) and removing nodes (prune). Compare trees (getcanonical)
and use Newick-formatted strings (getnewickstr).
See Also
More About
• “Sequence Utilities and Statistics” on page 1-8
• “Sequence Analysis”
1-10
Microarray Data Analysis Tools
Microarray data — Read Affymetrix GeneChip files (affyread) and plot data (probesetplot),
ImaGene results files (imageneread), SPOT files (sptread) and Agilent microarray scanner files
(agferead). Read GenePix GPR files (gprread) and GAL files (galread). Get Gene Expression
Omnibus (GEO) data from the Web (getgeodata) and read GEO data from files (geosoftread).
A utility function (magetfield) extracts data from one of the microarray reader functions (gprread,
agferead, sptread, imageneread).
Microarray normalization and filtering — The toolbox provides a number of methods for
normalizing microarray data, such as lowess normalization (malowess) and mean normalization
(manorm), or across multiple arrays (quantilenorm). You can use filtering functions to clean raw
data before analysis (geneentropyfilter, genelowvalfilter, generangefilter,
genevarfilter), and calculate the range and variance of values (exprprofrange, exprprofvar).
Microarray visualization — The toolbox contains routines for visualizing microarray data. These
routines include spatial plots of microarray data (maimage, redgreencmap), box plots (maboxplot),
loglog plots (maloglog), and intensity-ratio plots (mairplot). You can also view clustered expression
profiles (clustergram, redgreencmap). You can create 2-D scatter plots of principal components
from the microarray data (mapcaplot).
Microarray utility functions — Use the following functions to work with Affymetrix GeneChip data
sets. Get library information for a probe (probelibraryinfo), gene information from a probe set
(probesetlookup), and probe set values from CEL and CDF information (probesetvalues). Show
probe set information from NetAffx™ Analysis Center (probesetlink) and plot probe set values
(probesetplot).
The toolbox accesses statistical routines to perform cluster analysis and to visualize the results, and
you can view your data through statistical visualizations such as dendrograms, classification, and
regression trees.
See Also
More About
• “Microarray Data Storage” on page 1-12
• “Microarray Analysis”
1-11
1 Getting Started
The object constructor function, DataMatrix, lets you create a DataMatrix object to encapsulate
data and metadata from a microarray experiment. A DataMatrix object stores experimental data in a
matrix, with rows typically corresponding to gene names or probe identifiers, and columns typically
corresponding to sample identifiers. A DataMatrix object also stores metadata, including the gene
names or probe identifiers (as the row names) and sample identifiers (as the column names).
You can reference microarray expression values in a DataMatrix object the same way you reference
data in a MATLAB array, that is, by using linear or logical indexing. Alternately, you can reference this
experimental data by gene (probe) identifiers and sample identifiers. Indexing by these identifiers lets
you quickly and conveniently access subsets of the data without having to maintain additional index
arrays.
Many MATLAB operators and arithmetic functions are available to DataMatrix objects by means of
methods. These methods let you modify, combine, compare, analyze, plot, and access information
from DataMatrix objects. Additionally, you can easily extend the functionality by using general
element-wise functions, dmarrayfun and dmbsxfun, and by manually accessing the properties of a
DataMatrix object.
Note For more information on creating and using DataMatrix objects, see “Representing Expression
Data Values in DataMatrix Objects” on page 4-5.
See Also
More About
• “Microarray Data Analysis Tools” on page 1-11
• “Microarray Analysis”
1-12
Mass Spectrometry Data Analysis
Reading raw data — Load raw mass/charge and ion intensity data from comma-separated-value
(CSV) files, or read a JCAMP-DX-formatted file with mass spectrometry data (jcampread) into the
MATLAB environment.
You can also have data in TXT files and use the importdata function.
Spectrum analysis — Load spectra into a GUI (msviewer) for selecting mass peaks and further
analysis.
The following graphic illustrates the roles of the various mass spectrometry functions in the toolbox.
1-13
1 Getting Started
See Also
More About
• “Mass Spectrometry and Bioanalytics”
• “Data Formats and Databases” on page 1-5
1-14
Graph Theory Functions
• Directed Graph — Sparse matrix, either double real or logical. Row (column) index indicates the
source (target) of the edge. Self-loops (values in the diagonal) are allowed, although most of the
algorithms ignore these values.
• Undirected Graph — Lower triangle of a sparse matrix, either double real or logical. An
algorithm expecting an undirected graph ignores values stored in the upper triangle of the sparse
matrix and values in the diagonal.
• Direct Acyclic Graph (DAG) — Sparse matrix, double real or logical, with zero values in the
diagonal. While a zero-valued diagonal is a requirement of a DAG, it does not guarantee a DAG. An
algorithm expecting a DAG will not test for cycles because this will add unwanted complexity.
• Spanning Tree — Undirected graph with no cycles and with one connected component.
There are no attributes attached to the graphs; sparse matrices representing all four types of graphs
can be passed to any graph algorithm. All functions will return an error on nonsquare sparse
matrices.
Graph algorithms do not pretest for graph properties because such tests can introduce a time penalty.
For example, there is an efficient shortest path algorithm for DAG, however testing if a graph is
acyclic is expensive compared to the algorithm. Therefore, it is important to select a graph theory
function and properties appropriate for the type of the graph represented by your input matrix. If the
algorithm receives a graph type that differs from what it expects, it will either:
• Return an error when it reaches an inconsistency. For example, if you pass a cyclic graph to the
graphshortestpath function and specify Acyclic as the method property.
• Produce an invalid result. For example, if you pass a directed graph to a function with an
algorithm that expects an undirected graph, it will ignore values in the upper triangle of the
sparse matrix.
See Also
More About
• “Graph Visualization” on page 1-16
• “Network Analysis and Visualization”
1-15
1 Getting Started
Graph Visualization
The Bioinformatics Toolbox includes functions, objects, and methods for creating, viewing, and
manipulating graphs such as interactive maps, hierarchy plots, and pathways. This allows you to view
relationships between data.
The object constructor function (biograph) lets you create a biograph object to hold graph data.
Methods of the biograph object let you calculate the position of nodes (dolayout), draw the graph
(view), get handles to the nodes and edges (getnodesbyid and getedgesbynodeid) to further
query information, and find relations between the nodes (getancestors, getdescendants, and
getrelatives). There are also methods that apply basic graph theory algorithms to the biograph
object.
Various properties of a biograph object let you programmatically change the properties of the
rendered graph. You can customize the node representation, for example, drawing pie charts inside
every node (CustomNodeDrawFcn). Or you can associate your own callback functions to nodes and
edges of the graph, for example, opening a Web page with more information about the nodes
(NodeCallback and EdgeCallback).
See Also
More About
• “Graph Theory Functions” on page 1-15
• “Network Analysis and Visualization”
1-16
Statistical Learning and Visualization
The toolbox provides functions that build on the classification and statistical learning tools in the
Statistics and Machine Learning Toolbox™ software (classify, kmeans, fitctree, and
fitrtree).
These functions include imputation tools (knnimpute), and K-nearest neighbor classifiers (fitcknn).
Other functions include set up of cross-validation experiments (crossvalind) and comparison of the
performance of different classification methods (classperf). In addition, there are tools for
selecting diversity and discriminating features (rankfeatures, randfeatures).
1-17
1 Getting Started
Using matrices for sequences or groups of sequences allows you to work efficiently and not worry
about writing loops or other programming controls.
• Programming tools — Use a visual debugger for algorithm development and refinement and an
algorithm performance profiler to accelerate development.
1-18
Data Visualization
Data Visualization
You can visually compare pairwise sequence alignments, multiply aligned sequences, gene expression
data from microarrays, and plot nucleic acid and protein characteristics. The 2-D and volume
visualization features let you create custom graphical representations of multidimensional data sets.
You can also create montages and overlays, and export finished graphics to an Adobe® PostScript®
image file or copy directly into Microsoft PowerPoint®.
1-19
Another Random Document on
Scribd Without Any Related Topics
Bob huomasi jotain tunteissaan vaimoaan kohtaan, joka solui pois
ja tasoittui, mutta hän ei ruvennut sitä itselleen selvittelemään.
Hänen ei tarvinnut myöskään tehdä sitä. Lääkäri oli heille sanonut
kuoleman lähestyvän. Mutta Bob ei sitä uskonut. Hän yksin tunsi
vain jotain, joka oli korkeampaa kuin suru ja ilo, suurempaa kuin
elämä ja kuolema. Ja tähän uuteen tunteeseen, joka hänet nyt
täytti, hukkuivat kaikki ne tunteet, jotka olivat jäytäneet häntä, että
hän oli kärsinyt vääryyttä ja vieläkin kärsi — — —
"Minä olen ollut huono nainen, Bob", sanoi hän. "Sillä minä en ole
koskaan ollut äiti. Se ei ole mikään lievennys, etten minä ehken ole
ollut huonompi, kuin kaikki ne, jotka ensin leikkivät lastensa kanssa
ja jättävät ne sitten huviensa vuoksi. Minä olen aina ajatellut, että
lapset saavat kerran elää omaa elämäänsä, mutta niin kauvan kuin
minun kestää, eläisin minä omaa elämääni. Sitten tuli heidän
vuoronsa ja silloin minä olin poissa. Minä olen uskonut siihen, ja nyt
minä tiedän sen, etten minä ole mitään ymmärtänyt. Sillä se ei ole
niin. Kun on lapsi. Ei mikään muu saa sen tilaa täyttää. Lapsessa
minä olen kuollut. Muistatko, Bob, minä pelkäsin usein tulevani
vanhaksi? Mitä se merkitsee? Jos minä vanhenen? Sehän ei ole
mitään. Minun lapseni oli kaikki kaikessa. Ja sitä minä en ole
koskaan ymmärtänyt."
Surunsa valtaamana ymmärsi Bob nyt ensi kerran, että Anna oli
kärsinyt samoin kuin hänkin ja hänen ajatuksensa valtasi voimakas
ja kyyneleinen myötätuntoisuus, joka värisytti koko hänen sieluaan.
Hän katsoi Annaa, mutta hän ei voinut nähdä mitään. Hän olisi
tahtonut ojentaa käsivartensa pidättääkseen hänet luonaan, mutta
hän ei voinut.
XXVI.
Gösta Wickner oli antanut kortin olla edessään pöydällä, kun oli
sen ensin lukenut. Nyt pani hän sanomalehden pois ja otti taas tuon
pienen kortin käteensä. Hän luki vitkaan ne sanat, jotka juuri, hänen
silmiensä seuratessa sanomalehden palstoja, olivat hänen
mielessään ja estivät hänen lukuaan, ja hän koetti ajatella niiden
sisältöä. Mutta nehän eivät selvittäneet hänelle kerrassaan mitään ja
hän pani kortin jälleen pöydälle ajatellen sanoja: "Se on pian
lopussa." Onko tuo hänen vaimonsa luulottelua tai onko se totta?
Naiset joutuvat niin helposti luulottelujen uhriksi ja suurentelevat
vaaraa.
Hänen aivoissaan kierteli ajatus, jota hän koetti ajaa pois, mutta
joka aina tuli sinne jälleen. Jospa lapsi nyt olisi kuollut, olisi se
parasta, mitä oikeastaan voi tapahtua. Gösta Wicknerin ajatusten
mukaan sellainen oli samaa, kuin että tuo tuskainen side olisi
katkennut ja että Anna olisi tullut hänen omakseen ja yksistään
hänen omakseen. Gösta Wickner oli nimittäin saanut kokea, että
seurasi suurempi vastenmielisyys kuin hän oli ajatellutkaan, että
mennä naimisiin miehestään eronneen vaimon kanssa. Niin kauvan
kuin puhuttiin, että tuo suoraluontoinen Gösta Wickner oli
antautunut rakkausseikkailuihin kauniin rouva Flodinin kanssa, ei
ollut kiviäkään asetettu esteeksi hänen tielleen. Mutta kun hän
tunnusti avoimesti menevänsä naimisiin naisen kanssa, jonka huhu
oli jo hänen nimeensä liittänyt, niin silloin muuttui suhde toiseksi.
Gösta oli hyvin onnistunut sulkemaan Bobilta muutamia niistä ovista,
jotka olivat sallineet hänen vapaasti kulkea, mutta hän oli tarvinnut
kaiken esityskykynsä ja valppaan tarmonsa saavuttaakseen tämän
maalinsa. Ja kaikki se, joka vielä sitoi Annaa toiseen, viivytti hänen
nykyistä miestään sen päivän, sitten hän voisi tuntea itsensä
todellakin vapaaksi ja Gösta Wicknerilla ei ollut aikaa odottaakaan
kauvemmin. Hän oli likimain neljänkymmenen mies, jolloin hänen
menestyksensä oli alkanut, ja hän näki vallan, rikkauden,
kunnioituksen ja nautintojen viittovan molemmin puolin tuolla
kuninkaallisella tiellä, jonka hän oli valinnut voittaakseen onnensa.
Senvuoksi sisälsi myöskin tämä ajatus, että lapsi kuolisi, Gösta
Wicknerille jotain houkuttelevaa. Se toisi surua hänen vaimolleen,
sen hän ymmärsi. Mutta surua, jonka hän voittaisi. Ja kun suru olisi
voitettu, tuntisi Anna sen olleen vain onneksi hänelle itselleen ja
ehkä lapsellekin.
Gösta Wicknerilla oli melkein taikauskoinen aavistus näissä
ajatuksissaan, että kaikki näytti tarkoittavan hänen onneaan. Kuinka
olikaan hänelle raivattu onnen tietä ja kuinka hän olikaan laskenut
oikeen, kun hän oli ryhtynyt näihin puuhiin, jotka olivat vieneet
hänen nimensä rahamailman mahtavimpien joukkoon. Samaan
aikaan, kun hänen tulevaisuutensa hymyili hänelle, ilmestyi tuo
nainen, jota hän oli nuorena rakastanut, ja vaipui hänen syliinsä
ilman, että hänen olisi tarvinnut vaivata itseään voittaaksensa häntä.
Oli vain yksi, joka kiinnitti Annaa, vain yksi, joka esti häntä olemasta
täydellisesti onnellinen. Ja nyt raukeisi tuokin este itsestään.
Mitä hän oli juuri toivonut, näytti hänestä nyt toteutuneen. Sillä
Anna ponnahti ylös ja käänsi katseensa häneen.
"Kyllä, minä olen aina laiminlyönyt hänet ja minä tiedän, ettei hän
ole merkinnyt minulle sitä, mitä hänen olisi pitänyt merkitä.
Senvuoksi minä suren häntä."
Samoin kuin Bob ennen, niin kuuli Gösta nyt sen syvän alttoäänen
hänen puheessaan, jota hän ei ollut kuullut ennen. Siinä oli jotain,
jota hän ei voinut ensinkään tuntea. Siinä murtautui esiin jotain, joka
oli hänelle aivan vastakkaista. "Caesarin onni!" ajatteli Gösta Wickner
ja hänen kasvonsa muuttuivat jäykiksi ja kalpeiksi.
"Jos minä olisin ollut äiti hänelle", sanoi Anna, "jos minä olisin ollut
hänen ystävänsä ja hänen hoitajattarensa, hänen paras uskottunsa
ja tukensa, jota hän ei olisi voinut koskaan kadottaa, niin silloin minä
en olisi surrut häntä niin paljon. Mutta nyt loppui minun elämäni
hänessä ja se, mitä minä kerran olen ollut, minä en tule enää
koskaan olemaan."
"Sinä et voi tuntea sitä nyt niin", sanoi hän. "Mutta kerran sinä
vielä ymmärrät minua."
"Sinä vaadit ehkä, että minunkin pitäisi surra häntä?" sanoi hän
jäykästi.
Anna ei tiennyt itsekään, mitä hän olisi vastannut. Hän tiesi vain,
että hän oli silmänräpäykseksi saanut pelkonsa toteutumaan, sen
pelon, joka sanoi hänelle, ettei hänellä ollut mitään tältä mieheltä
odotettavissa.
"Kuinka se voi olla niin", ajatteli Anna, "etten minä koskaan ennen
ole tuota nähnyt? Mikä minut on tehnyt sokeaksi? — Kuka tuo mies
on?" ajatteli hän edelleen. "Ja kuinka minä olen hänen? Hänhän ei
voi tuntea myötätuntoisuutta keneenkään. Hänen sydämensä on
kylmä. Hänen itsekkäät tunteensa itseään kohtaan ovat niin
voimakkaat, että ne ovat hurmanneet minut ja narranneet minun
sydämeni sykkimään tahdissa hänen sydämensä kanssa. Mitäpä hän
tuntisi minuun? Mitäpä se häntä liikuttaa, että minun lapseni on
kuollut? Tietääkö hän edes mitä se tahtoo sanoa, että pieni lapsi on
kuollut?"
"Siellä minä olin kotona", ajatteli hän. "Ja nyt minä olen koditon."
Bob oli nyt aivan yksin, mutta hän ei ollut niin onneton kuin oli ollut
pojan eläessä. Jos joku olisi sanonut hänelle niin olevan, niin hän
olisi uskottavasti tehnyt kerrassaan jyrkän vastaväitöksen sellaisesta
mielettömyydestä. Mutta salaisuus oli siinä, että Bob siitä saakka,
kun hän istui yhdessä Anna rouvan kanssa oli laannut tuntemasta
katkeruutta. Hän oli nähnyt hänenkin kärsivän ja hän oli tullut
ajatelleeksi, ettei kellään ole oikeutta odottaa vain, että toiset
tekevät hänelle oikeutta. Kuinka tuo ajatus olikaan hänessä
kehittynyt, sitä Bob ei tiennyt. Mutta tultuaan se vaikutti häneen
sanomattoman hyvää. Senvuoksi hän hoiti ja säilytti tuota ajatusta,
ja hän tunsi sanomatonta lohtua sitä ajatellessaan, ettei hän voisi
odottaa kaikkien tekevän hänelle oikeen. Bob syytti itseään
kärsimyksistään ja hän teki sen senvuoksi, että hänestä tuntui silloin
elämä muuttuvan keveämmäksi. "Minähän olenkin vaatinut liikoja",
ajatteli Bob. "Ja niin minä olen tehnyt kaikkien ihmisten suhteen. Se
on minun oma vikani, että minä olen tuntenut itseni niin varmaksi.
Sillä kukaan ei voi antaa enempää kuin hänen luonteensa sallii.
Sillälailla tulee nähdä ja ymmärtää. Muuten siitä seuraa kosto. Mutta
kuka kostaa, sitä me emme tiedä."
Niin pitkälle oli Bob päässyt itsekseen ja Georg oli ollut nyt jo
kuukauden kuolleena.
Näihin aikoihin oli Anna rouva ehkä vielä enemmän yksinään kuin
Bob. Yhä uudestaan ja uudestaan hän oli kiintynyt tuohon
ajatukseen, joka oli houkutellut hänen jättämään kotinsa: "Minä elän
ensisijassa itseni vuoksi ja minun elämäni on minun omani." Tämä
ajatus tuli hänelle jokapäivä vieraammaksi ja kylmemmäksi ja hän ei
voinut ymmärtää, että se kerran oli vallinnut hänen tunteitaan ja
tekojaan. Hän mietti sitä ajatusta ja jäätävässä tyhjyydessään hän
näki, kuinka hänen elämänsä oli solunut harhaan.
Anna näki, että Bob tahtoi sanoa jotain, mutta hän esti hänet siitä.
"Älä sano mitään", sanoi hän. "Sillä sinä et voi vielä mitään sanoa.
Minä en voi elää niinkuin minä olen elänyt viime viikot, ettei minulla
ole ketään, jolle puhuisin."
"Ei", sanoi hän, "ei! Älä sano mitään. Se alkoi samana päivänä
kuin Georg kuoli. Ja se on kestänyt päivästä päivään. Minä en voisi
sitä koskaan sinulle selittää. Minä menin täältä kotia ajatellen vain
Georgia. Minun tunteeni samenivat ja minä en voinut saada selvää
itsestäni. Hän ymmärsi minun surevan. Miten minä surin, sitä minä
en voi koskaan ymmärtää. Mutta minä luulen sen alkaneen silloin.
Sillä senjälkeen ei hän eikä minä ole toiselleen sanonut muuta kuin
ne sanat, joita emme ole voineet väistää. Hän menee pois eineen
syötyään. Hän on poissa päivällisiin saakka, poissa iltaankin. Minä
liikun siellä yksin, Bob, ja ikäänkuin Georg seuraisi minua. Mitä minä
tekisin? Mitä minä tekisin? Etkö sinä voi sanoa sitä minulle?"
Bob kuuli hänen puhuvan ja hän unohti kaikki menneisyyden. Se
hävisi hänen tunteestaan ja kaikki muuttui niin vakavaksi hänelle,
ettei hän voinut ajatellakaan muuta, kuin, mitä hänelle nyt tapahtui,
oli yksinkertaista ja luonnollista. Hän meni hänen luokseen ja otti
kiinni hänen kädestään, Anna painoi päänsä hänen olkapäätään
vasten ja itki.
Hän vaikeni, ja Bob istui ajatellen sitä, kuinka ihmeellistä tuo oli,
että Anna istui siellä puhuen juuri samoja ajatuksia, jotka seurasivat
häntä koko hänen elämänsä ja joista hän nyt onnekseen tunsi
olevansa vapaa. Mutta hän ei keskeyttänyt Annaa. Hän tunsi
omituista tyydytystä kuullessaan Annan puhuvan noista ajatuksista
juuri nyt, kun hänen oma tuskansa oli tullut hänelle ylivoimaiseksi.
Oli ikäänkuin hän olisi myöntänyt hänen olevan oikeassa juuri siinä,
missä hän oli erehtynyt, ja se tuntui Bobista helpoitukselta, jota hän
tavallaan oli ollut vaatimassakin.
Anna jatkoi:
"Minä olen ajatellut paljon näinä päivinä ja minä luulen, kun kaksi
ihmistä rakastaa toisiaan, on aina toinen se, joka antaa ja toinen,
joka ottaa, Bob. Ja meidän välillä olit sinä aina antaja. Minä en
ymmärtänyt sitä silloin. Mutta minä uskon saaneeni oppia sen nyt.
Sillä minun ja hänen välillä olen minä aina antanut, antanut ja
antanut. Kun minä eräänä päivänä tulin ja tarvitsin saada jotain
takaisin, niin silloin minä en saanut mitään. Sillä — missä ei mitään
ole, siellä on hallitsija oikeutensa menettänyt. Minä olen ehkä ollut
sinulle sitä, mitä hän nyt on minulle. En tiedä."
Silloin hän muisti äkkiä erään päivän, jolloin Gösta oli kertonut
hänelle nuoruutensa rakkauden, ja että hän silloin oli luvannut olla
kertomatta sitä vaimolleen. Mutta samana iltana hän oli rikkonut
lupauksensa ja se ei auttanut, että hän oli tehnyt sen parhaassa
tarkoituksessa. "Ehkä se on minun syytäni kaikkityyni!" ajatteli Bob.
Ja hän tunsi taas sen niin lohdulliseksi ottaa syy omakseen. Se tuntui
hänestä jollain tavalla sovittavan hänen vaimoaan ja senvuoksi hän
tunsi nyt taas voivansa ajatella häntä.
Bob olisi toivonut, ettei Anna olisi tehnyt hänelle tuota kysymystä.
"Niin, mutta luuletko sinä, että moni muu ihminen olisi tehnyt,
mitä me nyt teemme?"
Bob ei ollut oman sydämensä valtia. Sillä tarvittiin vain, että joku
tarvitsi häntä, niin hän oli valmiina kantamaan muiden taakkoja
unohtaen ne, joita hän oli kantanut.
Pikku Bob! Pikku Bob! Oli parasta, ettet sinä sitä itse
ymmärtänytkään.
XXVIII.
Bob käveleskeli eräänä aamuna mietteissään almanakka kädessä.
Almanakka sanoi hänelle tänä päivänä olevan hänen vaimonsa
syntymäpäivän ja hän tuli ajatelleeksi kuinka tätä päivää muinoin
vietettiin. Silloin oli ruusuja pöydällä ja pöytä oli kaunistettu
valkoisella kukilla koristetulla pöytäliinalla. Ruusujen ympärillä oli
suuria ja pieniä myttyjä, jotka Bob ja Georg oli sinne asettanut.
Anna tuli sisään ja Bob näki hänen kulkevan kuin kuumeessa. Hän
esti eteisessä häntä ja antoi hänen heittää päällysnuttunsa. Sitten
kuljetti hän häntä koko huoneuston läpi ja avasi oven omaan
huoneeseensa. Silloin näki hän Annan haparoivan molemmilla
käsillään, ikäänkuin olisi etsinyt tukea itselleen. Sitten hän vaipui
pöydän eteen sohvalle ja purskahti itkuun.
Bobin riitaisista tunteista ei jäänyt paljon jälelle, kun hän näki sen.
Hän meni hänen luokseen asettaen sanaakaan sanomatta kätensä
hänen olkapäilleen.
"Oi, Bob", sanoi hän, "Bob! Sitä ei ole kukaan ajatellut senjälkeen
kuin sinä sen teit."
Bob ei voinut heti vastata. Hän tuskin muisti kirjettään, tiesi vain
tulleensa niin raivoisaksi, joka ei ajatellut muuta kuin olisi saanut
lyödä ja että hän tahtoi kostaa. Mutta hänestä tuntui ikäänkuin hän
nyt olisi nähnyt mahdollisuuden, että kaikki voisi muuttua hyväksi ja
hän kysyi:
"Salli minun olla tässä", sanoi hän. "Salli minun olla! Jos se on
sinulle onneksi tai onnettomuudeksi, sitä minä en tiedä. Mutta minä
tiedän, että sinä tulit kotiasi ja viivyit siellä, kun meidän poikamme
kuoli. Kun sinä silloin istuit minun luonani, tunsin minä, ettet sinä
missään muualla, kuin minun luonani, ollut kotona. Ja hän, joka ei
voinut pitää sinua eläissään kotona, toi sinut takaisin kuollessaan."
Hän tiesi vain, että elämä oli vienyt hänet sinne, missä ilo ja suru
pyyhkäistiin pois tai yhdistettiin ja jossa onni tai onnettomuus
näyttävät vähäpätöisiltä. Hän oli päässyt kaiken yläpuolelle, ja mitä
hän oli saavuttanut, se oli se, jolla ei ole mitään nimeä.
*** END OF THE PROJECT GUTENBERG EBOOK AVIOLIITON
ILVEILY: ROMAANI ***
Updated editions will replace the previous one—the old editions will
be renamed.
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.
textbookfull.com