Collating for real with CollateX

Okay, let's do some serious hands-on collation. Create a new Jupyter notebook (if you don't remember how to do this, here it is the tutorial) and follow the instructions.

First of all we want to make sure that you have the latest version of CollateX. That's why we do in the Jupyter Notebook:

In [1]:
!pip install --upgrade collatex
Requirement already up-to-date: collatex in c:\users\elena\python35\lib\site-packages
Requirement already up-to-date: networkx in c:\users\elena\python35\lib\site-packages (from collatex)
Requirement already up-to-date: prettytable in c:\users\elena\python35\lib\site-packages (from collatex)
Requirement already up-to-date: decorator>=3.4.0 in c:\users\elena\python35\lib\site-packages (from networkx->collatex)

Or directly in the commandline: pip install --upgrade collatex (without the exclamation mark at the beginning of the line).

You don't need to do this every time, but make sure you do it regularly.

Next we need to tell Python that we will be needing the Python library that holds the code for CollateX…

In [2]:
from collatex import *

Now we're ready to make a collation object. We do this with the slightly hermetic line of code:

collation = Collation()

Here the lower case collation is the arbitrary named variable that refers to a copy (officially it is called an instance) of the CollateX collation engine. We simply tell the collation library to create a new instance by saying Collation().

In [3]:
collation = Collation()

Now we add some witnesses. Each witness gets a letter or name that will identify them, and for each we add the literal text of the witness to the collation object, like so…

In [4]:
collation.add_plain_witness( "A", "The quick brown fox jumped over the lazy dog.")
collation.add_plain_witness( "B", "The brown fox jumped over the dog." )
collation.add_plain_witness( "C", "The bad fox jumped over the lazy dog." )

And now we can let CollateX do its work of collating these witnesses and sit back for about 0.001 seconds. The result will be an alignment table, so we'll refer to the result with a variable named alignment_table.

In [5]:
alignment_table = collate(collation, layout='vertical', segmentation=False )

Well, that worked nicely it seems. But there's no printout, no visualization. That's okay, we can come up with a printout of the alignment table too:

In [6]:
print( alignment_table )
+--------+--------+--------+
|   A    |   B    |   C    |
+--------+--------+--------+
|  The   |  The   |  The   |
+--------+--------+--------+
| quick  |   -    |  bad   |
+--------+--------+--------+
| brown  | brown  |   -    |
+--------+--------+--------+
|  fox   |  fox   |  fox   |
+--------+--------+--------+
| jumped | jumped | jumped |
+--------+--------+--------+
|  over  |  over  |  over  |
+--------+--------+--------+
|  the   |  the   |  the   |
+--------+--------+--------+
|  lazy  |   -    |  lazy  |
+--------+--------+--------+
|  dog   |  dog   |  dog   |
+--------+--------+--------+
|   .    |   .    |   .    |
+--------+--------+--------+

Usually you will want those segments that run parallel to be collected and displayed together. Since this is what most people seem to want, CollateX does that by default. We switched this option off in the example above for a moment because the result then shows you more clearly what the underlying primary structure is that CollateX returns. But for all practicle purposes you will probabably lose that segmentation=False option. So, let's get rid of that, and collate again…

In [7]:
alignment_table = collate(collation, layout='vertical' )
In [8]:
print( alignment_table )
+---------------------+---------------------+---------------------+
|          A          |          B          |          C          |
+---------------------+---------------------+---------------------+
|         The         |         The         |         The         |
+---------------------+---------------------+---------------------+
|        quick        |          -          |         bad         |
+---------------------+---------------------+---------------------+
|        brown        |        brown        |          -          |
+---------------------+---------------------+---------------------+
| fox jumped over the | fox jumped over the | fox jumped over the |
+---------------------+---------------------+---------------------+
|         lazy        |          -          |         lazy        |
+---------------------+---------------------+---------------------+
|         dog.        |         dog.        |         dog.        |
+---------------------+---------------------+---------------------+

The aligment table visualization is CollateX's default way of rendering a collation result. There are various ways in which one can depict collated results of course. The output in alignment table form can be a good basis for further visualizations. CollateX can also format your collation as a variant graph. This is a visualization that lets you trace from left to right through a directed network, to follow which witness carries what readings.

In [9]:
graph = collate( collation, output="svg", segmentation=True )
%3 1 The Sigla The C, A, B 3 bad Sigla bad C 1->3 C 4 brown Sigla brown A, B 1->4 B 5 quick Sigla quick A 1->5 A 2 fox jumped over the Sigla fox jumped over the C, A, B 8 dog. Sigla dog. C, A, B 2->8 B 9 lazy Sigla lazy C, A 2->9 A, C 3->2 C 4->2 A, B 5->4 A 6 6 6->1 A, B, C 7 7 8->7 A, B, C 9->8 A, C

Okay, that's all good and nice, but that's just tiny fragments—we want decent chunks of text to collate! Well, we can do that too, although it requires a little more work. Specifically for reading in text files from the file system. If we didn't do it that way, we would have to key in all the characters of each witness, and that's just a lot of unnecessary work if we have those texts already in a file. The code below uses the open command to open each text file and assign the contents to a variable with an appropriately chosen name.

The encoding="utf-8" bit is needed because you should always tell Python which encoding your data uses. This is probably the only place and time where you will use that encoding directive: when you open a (text) file.

In [10]:
collation = Collation()
witness_1859 = open( "../fixtures/Darwin/txt/darwin1859_par1.txt", encoding='utf-8' ).read()
witness_1860 = open( "../fixtures/Darwin/txt/darwin1860_par1.txt", encoding='utf-8' ).read()
witness_1861 = open( "../fixtures/Darwin/txt/darwin1861_par1.txt", encoding='utf-8' ).read()
witness_1866 = open( "../fixtures/Darwin/txt/darwin1866_par1.txt", encoding='utf-8' ).read()
witness_1869 = open( "../fixtures/Darwin/txt/darwin1869_par1.txt", encoding='utf-8' ).read()
witness_1872 = open( "../fixtures/Darwin/txt/darwin1872_par1.txt", encoding='utf-8' ).read()
collation.add_plain_witness( "1859", witness_1859 )
collation.add_plain_witness( "1860", witness_1860 )
collation.add_plain_witness( "1861", witness_1861 )
collation.add_plain_witness( "1866", witness_1866 )
collation.add_plain_witness( "1869", witness_1869 )
collation.add_plain_witness( "1872", witness_1872 )

Now let's check if these witnesses actually contain some text by printing a few of them.

In [11]:
print( witness_1859 )
WHEN we look to the individuals of the same variety or sub-variety of our older cultivated plants and animals, one of the first points which strikes us, is, that they generally differ much more from each other, than do the individuals of any one species or variety in a state of nature. When we reflect on the vast diversity of the plants and animals which have been cultivated, and which have varied during all ages under the most different climates and treatment, I think we are driven to conclude that this greater variability is simply due to our domestic productions having been raised under conditions of life not so uniform as, and somewhat different from, those to which the parent-species have been exposed under nature. There is, also, I think, some probability in the view propounded by Andrew Knight, that this variability may be partly connected with excess of food. It seems pretty clear that organic beings must be exposed during several generations to the new conditions of life to cause any appreciable amount of variation; and that when the organisation has once begun to vary, it generally continues to vary for many generations. No case is on record of a variable being ceasing to be variable under cultivation. Our oldest cultivated plants, such as wheat, still often yield new varieties: our oldest domesticated animals are still capable of rapid improvement or modification.

In [12]:
print( witness_1860 )
WHEN we look to the individuals of the same variety or sub-variety of our older cultivated plants and animals, one of the first points which strikes us, is, that they generally differ more from each other than do the individuals of any one species or variety in a state of nature. When we reflect on the vast diversity of the plants and animals which have been cultivated, and which have varied during all ages under the most different climates and treatment, I think we are driven to conclude that this great variability is simply due to our domestic productions having been raised under conditions of life not so uniform as, and somewhat different from, those to which the parent-species have been exposed under nature. There is also, I think, some probability in the view propounded by Andrew Knight, that this variability may be partly connected with excess of food. It seems pretty clear that organic beings must be exposed during several generations to the new conditions of life to cause any appreciable amount of variation; and that when the organisation has once begun to vary, it generally continues to vary for many generations. No case is on record of a variable being ceasing to be variable under cultivation. Our oldest cultivated plants, such as wheat, still often yield new varieties: our oldest domesticated animals are still capable of rapid improvement or modification.

And now let's collate those witnesses and let's put the result up as an HTML-formatted alignment table…

In [13]:
alignment_table = collate(collation, layout='vertical', output='html')
1859 1860 1861 1866 1869 1872
- - - Causes of
Variability.
Causes of
Variability.
Causes of
Variability.
WHEN we WHEN we WHEN we WHEN we WHEN we WHEN we
look to look to look to look to compare compare
the individuals of
the same variety or
sub-variety of our
older cultivated
plants and animals,
one of the first
points which strikes
us
the individuals of
the same variety or
sub-variety of our
older cultivated
plants and animals,
one of the first
points which strikes
us
the individuals of
the same variety or
sub-variety of our
older cultivated
plants and animals,
one of the first
points which strikes
us
the individuals of
the same variety or
sub-variety of our
older cultivated
plants and animals,
one of the first
points which strikes
us
the individuals of
the same variety or
sub-variety of our
older cultivated
plants and animals,
one of the first
points which strikes
us
the individuals of
the same variety or
sub-variety of our
older cultivated
plants and animals,
one of the first
points which strikes
us
, , , , - -
is, that they
generally differ
is, that they
generally differ
is, that they
generally differ
is, that they
generally differ
is, that they
generally differ
is, that they
generally differ
much - - - - -
more more more more - more
from each other from each other from each other from each other from each other from each other
, - - - more -
than do the
individuals of any
one species or
variety in a state
of nature.
than do the
individuals of any
one species or
variety in a state
of nature.
than do the
individuals of any
one species or
variety in a state
of nature.
than do the
individuals of any
one species or
variety in a state
of nature.
than do the
individuals of any
one species or
variety in a state
of nature.
than do the
individuals of any
one species or
variety in a state
of nature.
When When When When And if And if
we reflect on the
vast diversity of
the plants and
animals which have
been cultivated, and
which have varied
during all ages
under the most
different climates
and treatment,
we reflect on the
vast diversity of
the plants and
animals which have
been cultivated, and
which have varied
during all ages
under the most
different climates
and treatment,
we reflect on the
vast diversity of
the plants and
animals which have
been cultivated, and
which have varied
during all ages
under the most
different climates
and treatment,
we reflect on the
vast diversity of
the plants and
animals which have
been cultivated, and
which have varied
during all ages
under the most
different climates
and treatment,
we reflect on the
vast diversity of
the plants and
animals which have
been cultivated, and
which have varied
during all ages
under the most
different climates
and treatment,
we reflect on the
vast diversity of
the plants and
animals which have
been cultivated, and
which have varied
during all ages
under the most
different climates
and treatment,
I think I think I think I think - -
we are driven to
conclude that this
we are driven to
conclude that this
we are driven to
conclude that this
we are driven to
conclude that this
we are driven to
conclude that this
we are driven to
conclude that this
greater great great great great great
variability is variability is variability is variability is variability is variability is
simply simply simply simply - -
due to our domestic
productions having
been raised under
conditions of life
not so uniform as,
and somewhat
different from,
those to which the
parent-species
due to our domestic
productions having
been raised under
conditions of life
not so uniform as,
and somewhat
different from,
those to which the
parent-species
due to our domestic
productions having
been raised under
conditions of life
not so uniform as,
and somewhat
different from,
those to which the
parent-species
due to our domestic
productions having
been raised under
conditions of life
not so uniform as,
and somewhat
different from,
those to which the
parent-species
due to our domestic
productions having
been raised under
conditions of life
not so uniform as,
and somewhat
different from,
those to which the
parent-species
due to our domestic
productions having
been raised under
conditions of life
not so uniform as,
and somewhat
different from,
those to which the
parent-species
have have have have had had
been exposed under
nature. There is
been exposed under
nature. There is
been exposed under
nature. There is
been exposed under
nature. There is
been exposed under
nature. There is
been exposed under
nature. There is
, - - - - ,
also also also also also also
, I think , I think , I think , I think , I think -
, some probability
in the view
propounded by Andrew
Knight, that this
variability may be
partly connected
with excess of food.
It seems
, some probability
in the view
propounded by Andrew
Knight, that this
variability may be
partly connected
with excess of food.
It seems
, some probability
in the view
propounded by Andrew
Knight, that this
variability may be
partly connected
with excess of food.
It seems
, some probability
in the view
propounded by Andrew
Knight, that this
variability may be
partly connected
with excess of food.
It seems
, some probability
in the view
propounded by Andrew
Knight, that this
variability may be
partly connected
with excess of food.
It seems
, some probability
in the view
propounded by Andrew
Knight, that this
variability may be
partly connected
with excess of food.
It seems
pretty pretty pretty pretty - -
clear that organic
beings must be
exposed during
several generations
to
clear that organic
beings must be
exposed during
several generations
to
clear that organic
beings must be
exposed during
several generations
to
clear that organic
beings must be
exposed during
several generations
to
clear that organic
beings must be
exposed during
several generations
to
clear that organic
beings must be
exposed during
several generations
to
the the the the - -
new new new new new new
conditions of life conditions of life conditions of life conditions of life conditions conditions
to cause any to cause any to cause any to cause any to cause any to cause any
appreciable appreciable appreciable appreciable appreciable great
amount of variation;
and that
amount of variation;
and that
amount of variation;
and that
amount of variation;
and that
amount of variation;
and that
amount of variation;
and that
- - - , , ,
when the
organisation has
once begun to vary,
it generally
when the
organisation has
once begun to vary,
it generally
when the
organisation has
once begun to vary,
it generally
when the
organisation has
once begun to vary,
it generally
when the
organisation has
once begun to vary,
it generally
when the
organisation has
once begun to vary,
it generally
continues continues continues continues con- tinues continues
to vary to vary to vary to vary varying varying
for many
generations. No case
is on record of a
variable
for many
generations. No case
is on record of a
variable
for many
generations. No case
is on record of a
variable
for many
generations. No case
is on record of a
variable
for many
generations. No case
is on record of a
variable
for many
generations. No case
is on record of a
variable
being being being being organism organism
ceasing ceasing ceasing ceasing ceasing ceasing
to be variable to be variable to be variable to be variable to vary to vary
under cultivation.
Our oldest
cultivated plants,
such as wheat, still
under cultivation.
Our oldest
cultivated plants,
such as wheat, still
under cultivation.
Our oldest
cultivated plants,
such as wheat, still
under cultivation.
Our oldest
cultivated plants,
such as wheat, still
under cultivation.
Our oldest
cultivated plants,
such as wheat, still
under cultivation.
Our oldest
cultivated plants,
such as wheat, still
often often often often - -
yield new varieties:
our oldest
domesticated animals
are still capable of
rapid improvement or
modification.
yield new varieties:
our oldest
domesticated animals
are still capable of
rapid improvement or
modification.
yield new varieties:
our oldest
domesticated animals
are still capable of
rapid improvement or
modification.
yield new varieties:
our oldest
domesticated animals
are still capable of
rapid improvement or
modification.
yield new varieties:
our oldest
domesticated animals
are still capable of
rapid improvement or
modification.
yield new varieties:
our oldest
domesticated animals
are still capable of
rapid improvement or
modification.

Hmm… that is still a little hard to read. Wouldn't it be nice if we got a hint where the actual differences are? Sure, try…

In [14]:
alignment_table = collate(collation, layout='vertical', output='html2')
1859 1860 1861 1866 1869 1872
- - - Causes of Variability. Causes of Variability. Causes of Variability.
WHEN we WHEN we WHEN we WHEN we WHEN we WHEN we
look to look to look to look to compare compare
the individuals of the same variety or sub-variety of our older cultivated plants and animals, one of the first points which strikes us the individuals of the same variety or sub-variety of our older cultivated plants and animals, one of the first points which strikes us the individuals of the same variety or sub-variety of our older cultivated plants and animals, one of the first points which strikes us the individuals of the same variety or sub-variety of our older cultivated plants and animals, one of the first points which strikes us the individuals of the same variety or sub-variety of our older cultivated plants and animals, one of the first points which strikes us the individuals of the same variety or sub-variety of our older cultivated plants and animals, one of the first points which strikes us
, , , , - -
is, that they generally differ is, that they generally differ is, that they generally differ is, that they generally differ is, that they generally differ is, that they generally differ
much - - - - -
more more more more - more
from each other from each other from each other from each other from each other from each other
, - - - more -
than do the individuals of any one species or variety in a state of nature. than do the individuals of any one species or variety in a state of nature. than do the individuals of any one species or variety in a state of nature. than do the individuals of any one species or variety in a state of nature. than do the individuals of any one species or variety in a state of nature. than do the individuals of any one species or variety in a state of nature.
When When When When And if And if
we reflect on the vast diversity of the plants and animals which have been cultivated, and which have varied during all ages under the most different climates and treatment, we reflect on the vast diversity of the plants and animals which have been cultivated, and which have varied during all ages under the most different climates and treatment, we reflect on the vast diversity of the plants and animals which have been cultivated, and which have varied during all ages under the most different climates and treatment, we reflect on the vast diversity of the plants and animals which have been cultivated, and which have varied during all ages under the most different climates and treatment, we reflect on the vast diversity of the plants and animals which have been cultivated, and which have varied during all ages under the most different climates and treatment, we reflect on the vast diversity of the plants and animals which have been cultivated, and which have varied during all ages under the most different climates and treatment,
I think I think I think I think - -
we are driven to conclude that this we are driven to conclude that this we are driven to conclude that this we are driven to conclude that this we are driven to conclude that this we are driven to conclude that this
greater great great great great great
variability is variability is variability is variability is variability is variability is
simply simply simply simply - -
due to our domestic productions having been raised under conditions of life not so uniform as, and somewhat different from, those to which the parent-species due to our domestic productions having been raised under conditions of life not so uniform as, and somewhat different from, those to which the parent-species due to our domestic productions having been raised under conditions of life not so uniform as, and somewhat different from, those to which the parent-species due to our domestic productions having been raised under conditions of life not so uniform as, and somewhat different from, those to which the parent-species due to our domestic productions having been raised under conditions of life not so uniform as, and somewhat different from, those to which the parent-species due to our domestic productions having been raised under conditions of life not so uniform as, and somewhat different from, those to which the parent-species
have have have have had had
been exposed under nature. There is been exposed under nature. There is been exposed under nature. There is been exposed under nature. There is been exposed under nature. There is been exposed under nature. There is
, - - - - ,
also also also also also also
, I think , I think , I think , I think , I think -
, some probability in the view propounded by Andrew Knight, that this variability may be partly connected with excess of food. It seems , some probability in the view propounded by Andrew Knight, that this variability may be partly connected with excess of food. It seems , some probability in the view propounded by Andrew Knight, that this variability may be partly connected with excess of food. It seems , some probability in the view propounded by Andrew Knight, that this variability may be partly connected with excess of food. It seems , some probability in the view propounded by Andrew Knight, that this variability may be partly connected with excess of food. It seems , some probability in the view propounded by Andrew Knight, that this variability may be partly connected with excess of food. It seems
pretty pretty pretty pretty - -
clear that organic beings must be exposed during several generations to clear that organic beings must be exposed during several generations to clear that organic beings must be exposed during several generations to clear that organic beings must be exposed during several generations to clear that organic beings must be exposed during several generations to clear that organic beings must be exposed during several generations to
the the the the - -
new new new new new new
conditions of life conditions of life conditions of life conditions of life conditions conditions
to cause any to cause any to cause any to cause any to cause any to cause any
appreciable appreciable appreciable appreciable appreciable great
amount of variation; and that amount of variation; and that amount of variation; and that amount of variation; and that amount of variation; and that amount of variation; and that
- - - , , ,
when the organisation has once begun to vary, it generally when the organisation has once begun to vary, it generally when the organisation has once begun to vary, it generally when the organisation has once begun to vary, it generally when the organisation has once begun to vary, it generally when the organisation has once begun to vary, it generally
continues continues continues continues con- tinues continues
to vary to vary to vary to vary varying varying
for many generations. No case is on record of a variable for many generations. No case is on record of a variable for many generations. No case is on record of a variable for many generations. No case is on record of a variable for many generations. No case is on record of a variable for many generations. No case is on record of a variable
being being being being organism organism
ceasing ceasing ceasing ceasing ceasing ceasing
to be variable to be variable to be variable to be variable to vary to vary
under cultivation. Our oldest cultivated plants, such as wheat, still under cultivation. Our oldest cultivated plants, such as wheat, still under cultivation. Our oldest cultivated plants, such as wheat, still under cultivation. Our oldest cultivated plants, such as wheat, still under cultivation. Our oldest cultivated plants, such as wheat, still under cultivation. Our oldest cultivated plants, such as wheat, still
often often often often - -
yield new varieties: our oldest domesticated animals are still capable of rapid improvement or modification. yield new varieties: our oldest domesticated animals are still capable of rapid improvement or modification. yield new varieties: our oldest domesticated animals are still capable of rapid improvement or modification. yield new varieties: our oldest domesticated animals are still capable of rapid improvement or modification. yield new varieties: our oldest domesticated animals are still capable of rapid improvement or modification. yield new varieties: our oldest domesticated animals are still capable of rapid improvement or modification.

And finally, we can also generate the variant graph for this collation…

In [15]:
graph = collate( collation, output="svg" )
%3 1 due to our domestic productions having been raised under conditions of life not so uniform as, and somewhat different from, those to which the parent- species Sigla due to our domestic productions having been raised under conditions of life not so uniform as, and somewhat different from, those to which the parent-species 1860, 1859, 1861, 1866, 1872, 1869 9 had Sigla had 1869, 1872 1->9 1869, 1872 41 have Sigla have 1861, 1866, 1859, 1860 1->41 1859, 1860, 1861, 1866 2 simply Sigla simply 1861, 1866, 1859, 1860 2->1 1859, 1860, 1861, 1866 3 often Sigla often 1861, 1866, 1859, 1860 17 yield new varieties: our oldest domesticated animals are still capable of rapid improvement or modification. Sigla yield new varieties: our oldest domesticated animals are still capable of rapid improvement or modification. 1860, 1859, 1861, 1866, 1872, 1869 3->17 1859, 1860, 1861, 1866 4 con- tinues Sigla con- tinues 1869 27 varying Sigla varying 1869, 1872 4->27 1869 5 5 11 WHEN we Sigla WHEN we 1860, 1859, 1861, 1866, 1872, 1869 5->11 1859, 1860, 1861 38 Causes of Variability. Sigla Causes of Variability. 1866, 1869, 1872 5->38 1866, 1869, 1872 6 When Sigla When 1861, 1866, 1859, 1860 40 we reflect on the vast diversity of the plants and animals which have been cultivated, and which have varied during all ages under the most different climates and treatment, Sigla we reflect on the vast diversity of the plants and animals which have been cultivated, and which have varied during all ages under the most different climates and treatment, 1860, 1859, 1861, 1866, 1872, 1869 6->40 1859, 1860, 1861, 1866 7 for many generations. No case is on record of a variable Sigla for many generations. No case is on record of a variable 1860, 1859, 1861, 1866, 1872, 1869 16 being Sigla being 1861, 1866, 1859, 1860 7->16 1859, 1860, 1861, 1866 20 organism Sigla organism 1869, 1872 7->20 1869, 1872 8 8 12 been exposed under nature. There is Sigla been exposed under nature. There is 1859, 1872 been exposed under nature. There is 1860, 1861, 1866, 1869 9->12 1869, 1872 10 continues Sigla continues 1861, 1866, 1859, 1872, 1860 18 to vary Sigla to vary 1861, 1866, 1859, 1860 10->18 1859, 1860, 1861, 1866 10->27 1872 39 compare Sigla compare 1869, 1872 11->39 1869, 1872 47 look to Sigla look to 1861, 1866, 1859, 1860 11->47 1859, 1860, 1861, 1866 31 , Sigla , 1859, 1872 12->31 1859, 1872 55 also Sigla also 1860, 1859, 1861, 1866, 1872, 1869 12->55 1860, 1861, 1866, 1869 13 than do the individuals of any one species or variety in a state of nature. Sigla than do the individuals of any one species or variety in a state of nature. 1860, 1859, 1861, 1866, 1872, 1869 13->6 1859, 1860, 1861, 1866 57 And if Sigla And if 1869, 1872 13->57 1869, 1872 14 , Sigla , 1861, 1866, 1859, 1860 29 is, that they generally differ Sigla is, that they generally differ 1860, 1859, 1861, 1866, 1872, 1869 14->29 1859, 1860, 1861, 1866 15 , Sigla , 1859 15->13 1859 45 ceasing Sigla ceasing 1860, 1859, 1861, 1866, 1872, 1869 16->45 1859, 1860, 1861, 1866 17->8 1859, 1860, 1861, 1866, 1869, 1872 18->7 1859, 1860, 1861, 1866 19 great Sigla great 1872 35 amount of variation; and that Sigla amount of variation; and that 1866, 1872, 1869 amount of variation; and that 1860, 1859, 1861 19->35 1872 20->45 1869, 1872 21 , I think Sigla , I think 1861, 1866, 1859, 1869, 1860 53 , some probability in the view propounded by Andrew Knight, that this variability may be partly connected with excess of food. It seems Sigla , some probability in the view propounded by Andrew Knight, that this variability may be partly connected with excess of food. It seems 1860, 1859, 1861, 1866, 1872, 1869 21->53 1859, 1860, 1861, 1866, 1869 22 under cultivation. Our oldest cultivated plants, such as wheat, still Sigla under cultivation. Our oldest cultivated plants, such as wheat, still 1860, 1859, 1861, 1866, 1872, 1869 22->3 1859, 1860, 1861, 1866 22->17 1869, 1872 23 the Sigla the 1861, 1866, 1859, 1860 48 new Sigla new 1860, 1859, 1861, 1866, 1872, 1869 23->48 1859, 1860, 1861, 1866 24 , Sigla , 1866, 1869, 1872 52 when the organisation has once begun to vary, it generally Sigla when the organisation has once begun to vary, it generally 1860, 1859, 1861, 1866, 1872, 1869 24->52 1866, 1869, 1872 25 pretty Sigla pretty 1861, 1866, 1859, 1860 28 clear that organic beings must be exposed during several generations to Sigla clear that organic beings must be exposed during several generations to 1860, 1859, 1861, 1866, 1872, 1869 25->28 1859, 1860, 1861, 1866 26 to be variable Sigla to be variable 1861, 1866, 1859, 1860 26->22 1859, 1860, 1861, 1866 27->7 1869, 1872 28->23 1859, 1860, 1861, 1866 28->48 1869, 1872 32 from each other Sigla from each other 1859 from each other 1860, 1861, 1866, 1872, 1869 29->32 1869 37 more Sigla more 1861, 1866, 1859, 1872, 1860 29->37 1860, 1861, 1866, 1872 50 much Sigla much 1859 29->50 1859 30 variability is Sigla variability is 1860, 1859, 1861, 1866, 1872, 1869 30->1 1869, 1872 30->2 1859, 1860, 1861, 1866 31->55 1859, 1872 32->13 1860, 1861, 1866, 1872 32->15 1859 43 more Sigla more 1869 32->43 1869 33 conditions of life Sigla conditions of life 1861, 1866, 1859, 1860 46 to cause any Sigla to cause any 1860, 1859, 1861, 1866, 1872, 1869 33->46 1859, 1860, 1861, 1866 34 we are driven to conclude that this Sigla we are driven to conclude that this 1860, 1859, 1861, 1866, 1872, 1869 51 great Sigla great 1861, 1866, 1860, 1872, 1869 34->51 1860, 1861, 1866, 1869, 1872 56 greater Sigla greater 1859 34->56 1859 35->24 1866, 1869, 1872 35->52 1859, 1860, 1861 36 the individuals of the same variety or sub- variety of our older cultivated plants and animals, one of the first points which strikes us Sigla the individuals of the same variety or sub-variety of our older cultivated plants and animals, one of the first points which strikes us 1860, 1859, 1861, 1866 the individuals of the same variety or sub-variety of our older cultivated plants and animals, one of the first points which strikes us 1872, 1869 36->14 1859, 1860, 1861, 1866 36->29 1869, 1872 37->32 1859, 1860, 1861, 1866, 1872 38->11 1866, 1869, 1872 39->36 1869, 1872 40->34 1869, 1872 44 I think Sigla I think 1861, 1866, 1859, 1860 40->44 1859, 1860, 1861, 1866 41->12 1859, 1860, 1861, 1866 42 conditions Sigla conditions 1869, 1872 42->46 1869, 1872 43->13 1869 44->34 1859, 1860, 1861, 1866 45->26 1859, 1860, 1861, 1866 54 to vary Sigla to vary 1869, 1872 45->54 1869, 1872 46->19 1872 49 appreciable Sigla appreciable 1861, 1866, 1859, 1869, 1860 46->49 1859, 1860, 1861, 1866, 1869 47->36 1859, 1860, 1861, 1866 48->33 1859, 1860, 1861, 1866 48->42 1869, 1872 49->35 1859, 1860, 1861, 1866, 1869 50->37 1859 51->30 1860, 1861, 1866, 1869, 1872 52->4 1869 52->10 1859, 1860, 1861, 1866, 1872 53->25 1859, 1860, 1861, 1866 53->28 1869, 1872 54->22 1869, 1872 55->21 1859, 1860, 1861, 1866, 1869 55->53 1872 56->30 1859 57->40 1869, 1872

Note: you may have noticed that if you run the cells in an IPython notebook in order, they know about one another. For this reason, in the end of this tutorial we could produce different outputs using the information typed into the previous cells. When you open a notebook, remember to run the cells in order or to "run all cells" (from the menu Cell), otherwise you may get an error message.