deletions | additions
diff --git a/bulk upload.md b/bulk upload.md
index 4cbcc3f..d9552f6 100644
--- a/bulk upload.md
+++ b/bulk upload.md
...
1. Citation
* If only one citation for the entire dataset exists, it may be specified
interactively by choosing a citation on the citations page instead of
including citation information in the CSV file.
* Otherwise, specify the citation in the CSV table, either by doi or by
author, year, and title.
* If a DOI is available for all citations in the data set, the citation
corresponding to each row may be specified in a `citation_doi` column. In
this case, the `citation_author`, `citation_year`, and `citation_title`
columns must not be in the column heading list. (If such information is
already included in the data set, to keep such columns for purely
informational purposes, the string `-ignore` may be appended to each of
these headings. One might want to do this, for example, to keep a visual
record of the author, year, and title even when it is the citation doi
that is being used to determine how the data will associated with a
citation in the database.) Each value in the `citation_doi` column must
exactly match the `doi` attribute of some row in the `citations` except
that case and leading and trailing spaces are ignored.
* Conversely, if a DOI is not available for all citations in the data set,
or if it is preferred to specify the citation by author, year, and title,
then the `citation_doi` column should _not_ be included and the columns
`citation_author`, `citation_year`, and `citation_title` must all be
present. (Again, if some DOI information is already included and you wish
to retain it for purely informational purposes, simply give the column
some descriptive name other than `citation_doi` and it will be ignored by
the upload code.)
2. Site
* If all of the data in the data set pertains to a single site, that site
may be specified interactively.
* Otherwise, a `site` column is required. The value must match an existing
`sitename` column value in the `sites` table of the database. (Letter
case, leading and trailing spaces, and extra internal spaces are ignored
when searching for a match.)
3. Species
* If all of the data in the data set pertains to a single species, that
species may be specified interactively.
* Otherwise, the `species` column is required. The value must match an
existing `scientificname` column value in the `species` table of the
database. (Again, letter case, leading and trailing spaces, and extra
internal spaces are ignored when searching for a match.)
4. Treatment
* If a single treatment and a single citation applies to all of the data in
the data set, the treatment may be specified interactively provided that
the citation is specified interactively as well.
* Otherwise, a `treatment` column is required. The value must match an
existing `name` column value in the `treatments` table of the database.
(Again, letter case, leading and trailing spaces, and extra internal
spaces are ignored when searching for a match.)
#### **Other information**
1. Date
* If a single date applies to all of the data in the data set, the date may be specified interactively.
* Otherwise, a `date` column is required.
* Date values must be in one of the forms "2003-07-25", "2003-07", or "2003".
2. Rounding
* The amount of rounding for numerical data can only be specified
interactively. Any value from 1 to 4 significant digits may be chosen.
The amount of rounding for the standard error SE (if present) may be
specified separately from the amount of rounding for yield and for trait
variables and their covariates.
* By default, all numerical data is rounded to three significant digits.
For example, with this default in place, 999.1 will be rounded to 999 and
1001.1 will be rounded to 1000.
### Other information that is _never_ specified interactively
...
1. Yield
* Every yield data upload file must have a `yield` column. The data in
this column must always be a parsable non-negative number and must never
be blank. Scientific notation is not currently supported. As noted
above, the number given in the file is subject to rounding before being
inserted into the database.
2. Sample Size
* An `n` column is required if and only if an `SE` column is included. The value must always be an integer greater than 1.
3. Standard Error
* An `SE` column is required if and only if an `n` column is included;
this datum will be inserted into the stat column of the yields table,
and the statname column value will be set to "SE".
#### **Data for Traits**
1. Trait variable values
* Every trait data upload file must have at least one column whose heading
matches the name of some recognized trait variable. A list of
recognized trait variables is listed on the BetyDB web site. If
multiple trait variable columns are used, each row in the CSV file will
produce one row in the `traits` table for each trait variable column.
(These resulting rows will be effectively _grouped_ by assigning them a
unique entity id. Said another way, there is a one-to-one
correspondence between rows in the CSV file and resultant rows in the
`entities` table, the table that keeps track of this grouping.) As with
yield numbers, the data in this column must always be a parsable number,
and is subject to rounding before being inserted into the database. In
addition, it must conform to any range restrictions on the value of the
variable.
* The template for traits uploads provides dummy column headings `[trait
variable 1]`, `[trait variable 2]`, etc., which must be changed to
actual variable names before data can be uploaded.
2. Covariate values
* If any of the included trait variables has a required covariate, there
must be a column corresponding to that covariate.
* For any of the included trait variables has an optional covariate, a
column corresponding to that covariate _may_ be included.
* The template for traits uploads provides dummy column headings
`[covariate 1]`, `[covariate 2]`, etc., which must be changed to actual
variable names before data can be uploaded.
3. Sample Size and Standard Error
* To enter n and SE, add additional columns `[trait variable 1] n` and
`[trait variable 1] SE`, etc. as needed.
### **Optional data**:
1. Sample Size and Standard Error
* As noted above, these are both optional, but if one of these is
included, the other must be included as well. In other words, the
column heading list must include both of `n` and `SE` or neither.
Note that if `n` and `SE` are not given fields of the uploaded CSV
file, the value of the `n` column of the traits or yields table will
default to 1 and the `stat` and `statname` column values will default
to NULL.
2. Cultivar
* If a uniform value for the species is provided interactively when
uploading the data set, the cultivar may be specified this way as
well provided that it also has a uniform value for the whole data
set.
* Otherwise, to include cultivar information in the upload file, both a
`species` and a `cultivar` column must be included. The values in
the `cultivar` column are allowed to be blank (in which case a value
of NULL is inserted into the `cultivar_id` column for the given row);
but if provided, they must match the value of the `name` column in
some row of the `cultivars` table, and moreover, this row must be a
row associated with the species corresponding to the value given in
the `species` column. Again, matching is case insensitive, and
leading, trailing, and excess internal whitespace is ignored.
3. Notes
* To include notes, use a `notes` column. There is no restriction on
what can be included in this column, but leading and trailing space
will be stripped before insertion into the database. Non-ascii
characters entered in the file in UTF-8 encoding are allowed. If
there is no `notes` column, each row inserted into the `traits` or
`yields` table will use the empty string as the value for the `notes`
column.