Project

General

Profile

Statistics
| Revision:

# Date Author Comment
5515 10/15/2012 12:08 PM Aaron Marcuse-Kubitza

inputs/.TNRS/tnrs/test.xml.ref: Updated inserted row count

5514 10/15/2012 10:21 AM Aaron Marcuse-Kubitza

db_xml.py: partition_size: Increased to 1,000,000 (>= NCBI.higher_taxa's size) so NCBI.higher_taxa can be imported completely in one partition. This is necessary because NCBI's taxonconcepts are not in dependency order (parents first), so a later partition cannot rely on the parents of its taxonconcepts having already been imported. Instead, all taxonconcepts must be imported at once and then separately, the parents of all taxonconcepts must be set.

5513 10/15/2012 10:08 AM Aaron Marcuse-Kubitza

mappings/VegCore-VegBIEN.csv: taxonconcept.parent_id when explicit parent provided: Set taxonconcept.parent_id using new _taxonconcept_set_parent_id() after creating the child taxonconcept, so that the parent_id will point to the already-inserted parent taxonconcept instead of creating a new, empty parent taxonconcept. This creates a two-step import, where first the taxonconcepts are imported, and then the parent_ids are matched up. This is necessary for column-based import because all the parent taxonconcepts are imported in a separate iteration from the child taxonconcepts with only their sourceaccessioncode, so this iteration must occur after the child taxonconcept iteration in order to match up with fully-populated taxonconcepts. Row-based import, on the other hand, does not require _taxonconcept_set_parent_id() but does require the taxonconcepts to be provided in dependency order (parents first), which is unfortunately not the case for NCBI.

5512 10/15/2012 09:57 AM Aaron Marcuse-Kubitza

schemas/vegbien.sql: *_update_ancestors(): Telling immediate children to update their ancestors lists: Exclude self to avoid infinite recursion

5511 10/15/2012 09:57 AM Aaron Marcuse-Kubitza

schemas/vegbien.sql: *_update_ancestors(): Telling immediate children to update their ancestors lists: Exclude self to avoid infinite recursion

5510 10/15/2012 09:41 AM Aaron Marcuse-Kubitza

schemas/vegbien.sql: Added _taxonconcept_set_parent_id()

5509 10/15/2012 09:37 AM Aaron Marcuse-Kubitza

schemas/vegbien.sql: Renamed _set_matched_taxonconcept() to _taxonconcept_set_matched_concept_id() so that the function name is prefixed with the table it applies to

5508 10/15/2012 09:35 AM Aaron Marcuse-Kubitza

db_xml.py: put(): Treat a child node which is a function (starts with _) as a child with fkey to parent rather than as a field in the table. Such a function accepts the table's pkey as one of its arguments.

5507 10/15/2012 09:05 AM Aaron Marcuse-Kubitza

sql_gen.py: map_expr(): Don't replace an unquoted name when followed by ",", as it would be in an into table name for a function with multiple arguments (e.g. family in "_join_words(1=Field family, 2=Field name)")

5506 10/15/2012 08:49 AM Aaron Marcuse-Kubitza

schemas/vegbien.sql: locationevent: Moved obsstartdate, obsenddate to top of table so they would be visible in the ERD

5505 10/15/2012 08:45 AM Aaron Marcuse-Kubitza

sql_io.py: put_table(): ensure_cond(): track_data_error(): Concatenate the columns in the constraint together using , rather than adding a separate entry for each column, because the constraint is applicable to all columns together rather than to each column separately

5504 10/15/2012 08:26 AM Aaron Marcuse-Kubitza

sql_io.py: put_table(): Renamed ignore_cond() to ensure_cond() for clarity

5503 10/15/2012 08:22 AM Aaron Marcuse-Kubitza

import_all: Also import the NCBI tree of life, before the TNRS names

5502 10/15/2012 08:17 AM Aaron Marcuse-Kubitza

mappings/VegCore-VegBIEN.csv: Also map acceptedFamily to the corresponding NCBI family

5501 10/15/2012 08:07 AM Aaron Marcuse-Kubitza

lib/PostgreSQL-MySQL.csv: custom types: Also exclude time. Reordered excluded (built-in) types by name.

5500 10/15/2012 07:57 AM Aaron Marcuse-Kubitza

inputs/import.stats.xls: Updated import times

5499 10/15/2012 07:50 AM Aaron Marcuse-Kubitza

schemas/vegbien.sql: Changed `timestamp with time zone` fields to `date` because time information is not stored in these fields, and it's confusing to have an arbitrary timezone (the server's timezone) and an arbitrary time (midnight) set for input data that only has a precision to the nearest day

5498 10/15/2012 07:43 AM Aaron Marcuse-Kubitza

sql_gen.py: null_sentinels: Added entry for date

5497 10/15/2012 07:40 AM Aaron Marcuse-Kubitza

lib/PostgreSQL-MySQL.csv: custom types: Also exclude date, datetime

5496 10/15/2012 07:11 AM Aaron Marcuse-Kubitza

README.TXT: Documentation: To import and scrub just the test taxonomic names: Run `make backups/TNRS.backup/restore` in the background because it takes awhile

5495 10/15/2012 06:45 AM Aaron Marcuse-Kubitza

mappings/VegCore.csv: Re-sourced TaxonomicRankEnum fields to the official TCS schema rather than the TCS version in VegX

5494 10/15/2012 06:42 AM Aaron Marcuse-Kubitza

schemas/vegbien.sql: taxonrank: Updated source to the TCS schema (rather than VegBank) for the new, expanded list. Note that although the list itself was compiled from the TCS version in VegX, the official TCS download does not differ from the VegX TCS in the TaxonomicRankEnum fields (the xs: namespace has just been replaced with xsd: by VegX).

5493 10/12/2012 05:21 PM Aaron Marcuse-Kubitza

schemas/vegbien.sql: analytical_db_view: taxonconcept: Join again on the accepted_concept_id in order to use the accepted taxonconcept rather than the verbatim taxonconcept from the datasource

5492 10/12/2012 05:14 PM Aaron Marcuse-Kubitza

schemas/: svn:ignore log files

5491 10/12/2012 05:11 PM Aaron Marcuse-Kubitza

Added inputs/.NCBI/. This uses many of the new schema and mappings features, such as taxonconcept.sourceaccessioncode and parentTaxonID

5490 10/12/2012 05:07 PM Aaron Marcuse-Kubitza

mappings/VegCore-VegBIEN.csv: identifyingtaxonomicname: Don't create if taxonconcept has an explicit parent, because the taxonName (which is generally only a component of the full taxonomic name, e.g. specificEpithet) is not globally unique. Datasources that provide name components in such a way that levels at or below family can't be directly concatenated cannot currently receive an identifyingtaxonomicname for input to TNRS.

5489 10/12/2012 04:54 PM Aaron Marcuse-Kubitza

mappings/VegCore-VegBIEN.csv: taxonName->identifyingtaxonomicname: Don't include the rank with the taxonName, because TNRS only allows the rank to be included in the taxonomic name if it's infraspecific (otherwise, it returns no or an invalid match due to the presence of what it sees as an invalid term or a name component)

5488 10/12/2012 04:48 PM Aaron Marcuse-Kubitza

mappings/VegCore-VegBIEN.csv: Mapped taxonName to the TNRS input taxonconcept's identifyingtaxonomicname

5487 10/12/2012 04:28 PM Aaron Marcuse-Kubitza

mappings/VegCore-VegBIEN.csv: Only forward taxonRank to the parent taxonconcept (which stores the infraspecific taxonconcept when the infraspecificEpithet is provided) if there is no explicit parent provided via parentTaxonID/etc.

5486 10/12/2012 04:09 PM Aaron Marcuse-Kubitza

mappings/VegCore-VegBIEN.csv: Mapped parentScientificNameID, parentTaxonConceptID, parentTaxonID

5485 10/12/2012 04:03 PM Aaron Marcuse-Kubitza

mappings/VegCore.csv: Added parentScientificNameID, parentTaxonConceptID, parentTaxonID

5484 10/12/2012 03:53 PM Aaron Marcuse-Kubitza

input.Makefile: $(inDatasrc): Also include the vegbien_dest $schemas in the search_path, so that the datasource's SQL scripts (create.sql, etc.) can use VegBIEN functions and types

5483 10/12/2012 03:44 PM Aaron Marcuse-Kubitza

lib/common.Makefile: Added $(comma)

5482 10/12/2012 02:41 PM Aaron Marcuse-Kubitza

inputs/test_taxonomic_names/_scrub/public.sql: Regenerated with schema changes

5481 10/12/2012 02:38 PM Aaron Marcuse-Kubitza

input.Makefile: Maps building: %/.map.csv.last_cleanup: Fixed bug where needed to include $(coreMap) as a prerequisite, because even though it is not used directly in this target's recipe, it is used by targets invoked via recursive make after the main recipe runs. In general, whenever targets forward commands to a recursive make target, they also need to forward those recursive targets' prerequisites by including them in their own prerequisites list.

5480 10/12/2012 02:29 PM Aaron Marcuse-Kubitza

mappings/VegCore-VegBIEN.csv: Mapped taxonConceptID, taxonID, scientificNameID to taxonconcept.sourceaccessioncode. Note that taxonconcept stores all of these taxonomic entities, using creator_id+creationdate, taxonname+rank+parent_id, and identifyingtaxonomicname, respectively.

5479 10/12/2012 02:28 PM Aaron Marcuse-Kubitza

mappings/VegCore-VegBIEN.csv: Mapped taxonConceptID, taxonID, scientificNameID to taxonconcept.sourceaccessioncode. Note that taxonconcept stores all of these taxonomic entities, using creator_id+creationdate, taxonname+rank+parent_id, and identifyingtaxonomicname, respectively.

5478 10/12/2012 02:13 PM Aaron Marcuse-Kubitza

mappings/VegCore-VegBIEN.csv: Mapped taxonName

5477 10/12/2012 02:11 PM Aaron Marcuse-Kubitza

mappings/VegCore.csv: Added taxonName

5476 10/12/2012 02:05 PM Aaron Marcuse-Kubitza

schemas/vegbien.ERD.mwb: Fixed lines

5475 10/12/2012 01:55 PM Aaron Marcuse-Kubitza

schemas/vegbien.sql: Copied functions in the functions schema that are also used by the public schema to the public schema, so that reinstalling the functions schema would not cause anything that depends on a function in it to be cascadingly deleted. Currently, this just affects analytical_db_view, which uses _fraction_to_percent().

5474 10/12/2012 01:44 PM Aaron Marcuse-Kubitza

inputs/test_taxonomic_names/_scrub/public.sql: Regenerated with schema changes

5473 10/12/2012 01:36 PM Aaron Marcuse-Kubitza

schemas/vegbien.sql: taxonconcept: Added taxonconcept_2_propagate_accepted_concept_id() trigger to auto-populate the accepted_concept_id

5472 10/12/2012 12:53 PM Aaron Marcuse-Kubitza

schemas/vegbien.sql: taxonconcept.sourceaccessioncode: Added descriptive comment

5471 10/12/2012 12:53 PM Aaron Marcuse-Kubitza

schemas/vegbien.sql: taxonconcept.accepted_concept_id: Added descriptive comment

5470 10/12/2012 12:48 PM Aaron Marcuse-Kubitza

Regenerated vegbien.ERD exports

5469 10/12/2012 12:47 PM Aaron Marcuse-Kubitza

schemas/vegbien.sql: taxonconcept: Added sourceaccessioncode, and allow it to scope the taxonconcept when provided

5468 10/12/2012 12:33 PM Aaron Marcuse-Kubitza

inputs/test_taxonomic_names/_scrub/public.sql: Regenerated with schema changes

5467 10/12/2012 12:29 PM Aaron Marcuse-Kubitza

schemas/vegbien.sql: taxonconcept: Renamed canon_concept_id to matched_concept_id, because this is actually the closest-match taxonconcept in the match hierarchy (datasource concept -> parsed concept -> matched concept -> accepted concept) rather than the accepted synonym, which goes in accepted_concept_id

5466 10/12/2012 05:51 AM Aaron Marcuse-Kubitza

Regenerated vegbien.ERD exports

5465 10/12/2012 05:47 AM Aaron Marcuse-Kubitza

schemas/vegbien.sql: taxonconcept: Renamed canon_concept_id to matched_concept_id, because this is actually the closest-match taxonconcept in the match hierarchy (datasource concept -> parsed concept -> matched concept -> accepted concept) rather than the accepted synonym, which goes in accepted_concept_id

5464 10/12/2012 05:34 AM Aaron Marcuse-Kubitza

schemas/vegbien.sql: taxonconcept: Added accepted_concept_id

5463 10/12/2012 05:27 AM Aaron Marcuse-Kubitza

schemas/vegbien.sql: taxonconcept.canon_concept_id: comment: Changed "accepted synonym" to "closest match", since canon_concept_id is actually a hierarchy from datasource concept -> parsed concept -> matched concept -> accepted concept

5462 10/12/2012 05:22 AM Aaron Marcuse-Kubitza

schemas/vegbien.sql: taxonconcept: Added order # to trigger names so they run in a defined order (triggers are run in alphabetical order)

5461 10/12/2012 04:53 AM Aaron Marcuse-Kubitza

README.TXT: Use new revision # in log filenames to get all the logs for an import. Changed <datetime> to <version> because the rotated public schema now also includes the svn revision.

5460 10/12/2012 04:44 AM Aaron Marcuse-Kubitza

lib/common.Makefile: $(version): Include both the svn revision when make was started as well as the svn revision when the command is actually run (when these values differ), in case svn was updated between the time an import was started and the time a particular table started being imported. Because tables within a datasource are imported sequentially, it is possible that an update would have happened before the last table started importing.

5459 10/12/2012 04:23 AM Aaron Marcuse-Kubitza

Makefile: Moved setting of $(root) before include of lib/common.Makefile because it's used by lib/common.Makefile

5458 10/12/2012 04:21 AM Aaron Marcuse-Kubitza

Factored OS section out from Makefile, input.Makefile into lib/common.Makefile

5457 10/12/2012 04:13 AM Aaron Marcuse-Kubitza

Makefile, input.Makefile: Use new $(version), which unlike $(date) also includes the svn revision, to version log files, etc. This way, the working copy can be put back to the way it was at the time of a given import (excluding changes to nonversioned files). This also makes it easier to get all the log files for a particular import when different tables' imports started at different times.

5456 10/12/2012 04:08 AM Aaron Marcuse-Kubitza

Makefile: Added $(root) for use with $(rootRevision)

5455 10/12/2012 04:08 AM Aaron Marcuse-Kubitza

lib/common.Makefile: Added $(version), to replace $(date) for versioning log files, etc., and helper function $(rootRevision)

5454 10/12/2012 04:07 AM Aaron Marcuse-Kubitza

lib/common.Makefile: Added $(revision)

5453 10/12/2012 04:04 AM Aaron Marcuse-Kubitza

input.Makefile: Removed no longer used $(SED)

5452 10/12/2012 04:03 AM Aaron Marcuse-Kubitza

lib/common.Makefile: Added $(sed)

5451 10/12/2012 03:58 AM Aaron Marcuse-Kubitza

Factored $(date) out from Makefile, input.Makefile into lib/common.Makefile

5450 10/12/2012 03:18 AM Aaron Marcuse-Kubitza

sql_io.py: put_table(): DuplicateKeyException: Fixed bug where indexes with conditions needed to have the input rows filtered by the condition, to prevent trying to retrieve an existing/inserted row using a join on the index columns when the index in fact does not apply. This fixes a bug in the import of taxonconcept where the taxonconcept_0_unique_identifying_name unique index has a condition which was not satisfied for input rows with no identifyingtaxonomicname, causing any input row with NULL in this column to match all taxonconcepts with a NULL identifyingtaxonomicname. This uses ignore_cond()'s new support for constraints that did not fail at least once.

5449 10/12/2012 03:12 AM Aaron Marcuse-Kubitza

sql_io.py: put_table(): ignore_cond(): Added support for constraints that did not fail at least once, and therefore should not be required to simplify to a non-false value. As part of this, only track the failed constraint in the errors table if it actually failed at least once based on the deleted row count or the `failed` param.

5448 10/12/2012 03:05 AM Aaron Marcuse-Kubitza

sql_gen.py: map_expr(): Fixed bug where names were being replaced when they were inside another name. This occurred with combined names created by sql_io.into_table_name().

5447 10/12/2012 01:11 AM Aaron Marcuse-Kubitza

sql.py: ConstraintException: message: Wrap condition in strings.as_tt()

5446 10/12/2012 12:30 AM Aaron Marcuse-Kubitza

sql.py: run_query(): DuplicateKeyException: Also retrieve the index's condition using new index_cond()

5445 10/12/2012 12:28 AM Aaron Marcuse-Kubitza

sql.py: Added index_cond()

5444 10/12/2012 12:11 AM Aaron Marcuse-Kubitza

sql_io.py: put_table(): insert_into_pkeys(): Take a query as the param instead of sql.mk_select()'s params, to allow the caller to pass in any query without needing insert_into_pkeys() to manually pass through those args

5443 10/11/2012 11:40 PM Aaron Marcuse-Kubitza

sql.py: constraint_cond(): Fixed NotImplementedError message to apply to this function

5442 10/11/2012 09:36 PM Aaron Marcuse-Kubitza

sql_io.py: put_table(): ignore_cond(): Log message: Replaced don't with do not so it wouldn't mess up syntax highlighting when viewing the log file in a text editor

5441 10/11/2012 09:07 PM Aaron Marcuse-Kubitza

input.Makefile: Staging tables installation: Don't delete %/header.csv on error, because header.csv is a byproduct rather than the primary output and is created roughly atomically

5440 10/11/2012 08:40 PM Aaron Marcuse-Kubitza

schemas/vegbien.sql: *_ancestor tables: Added descriptive comment that these are ancestor cross link tables

5439 10/11/2012 08:23 PM Aaron Marcuse-Kubitza

csvs.py: sniff(): Support multi-char delims using \t, such as \t|\t used by NCBI. Support custom line suffixes, such as \t| used by NCBI.

5438 10/11/2012 08:18 PM Aaron Marcuse-Kubitza

csvs.py: TsvReader.next(): Remove only the autodetected line ending instead of any standard line ending. Note that this requires all header override files to use the same line ending as the CSV they override, which is now the case.

5437 10/11/2012 08:15 PM Aaron Marcuse-Kubitza

csvs.py: is_tsv(): Support multi-char delimiters by checking only the first char of the delimiter

5436 10/11/2012 08:12 PM Aaron Marcuse-Kubitza

csvs.py: sniff(): Also autodetect the line ending

5435 10/11/2012 08:11 PM Aaron Marcuse-Kubitza

csvs.py: sniff(): Also autodetect the line ending

5434 10/11/2012 08:02 PM Aaron Marcuse-Kubitza

inputs/test_taxonomic_names/Taxon/+header.txt: Changed line endings to \r\n to match testNames.txt line endings. This will be necessary when the line ending is autodetected by csvs.sniff().

5433 10/11/2012 07:59 PM Aaron Marcuse-Kubitza

csvs.py: TsvReader.next(): Renamed raw_contents var to line, since this is just the line with the ending removed

5432 10/11/2012 07:36 PM Aaron Marcuse-Kubitza

strings.py: Replaced no longer used contains_any() with find_any(), which returns any found substring, or None if none of the substrings were found

5431 10/11/2012 07:22 PM Aaron Marcuse-Kubitza

csvs.py: Modify csv.Dialect._validate() to ignore "delimiter must be a 1-character string" errors, in order to support multi-char delimiters used by TsvReader

5430 10/11/2012 07:21 PM Aaron Marcuse-Kubitza

csvs.py: Modify csv.Dialect._validate() to ignore "delimiter must be a 1-character string" errors, in order to support multi-char delimiters used by TsvReader

5429 10/11/2012 06:58 PM Aaron Marcuse-Kubitza

csvs.py: TsvReader: Use str.split() instead of csv.reader().next() to parse the row, for efficiency and to support multi-char delimiters. This is possible because the TSV dialect doesn't use CSV parsing features other than the delimiter and newline-escaping (which is handled separately).

5428 10/11/2012 06:02 PM Aaron Marcuse-Kubitza

Regenerated vegbien.ERD exports

5427 10/10/2012 11:43 AM Aaron Marcuse-Kubitza

input.Makefile: $(exts): Added .dmp

5426 10/10/2012 11:43 AM Aaron Marcuse-Kubitza

csvs.py: delims: Added |

5425 10/10/2012 11:28 AM Aaron Marcuse-Kubitza

Removed no longer used inputs/.public/. Use inputs/.TNRS/ and inputs/.TNRS/tnrs/tnrs.make instead.

5424 10/10/2012 11:23 AM Aaron Marcuse-Kubitza

README.TXT: Documentation: To import and scrub just the test taxonomic names: Added steps to restore the original DB when the test scrub is complete

5423 10/10/2012 11:22 AM Aaron Marcuse-Kubitza

inputs/test_taxonomic_names/test_scrub: Also export the results to inputs/test_taxonomic_names/_scrub/

5422 10/10/2012 11:06 AM Aaron Marcuse-Kubitza

inputs/test_taxonomic_names/test_scrub: Use regular for .. in loop with a list of what's being processed in each iteration (match_input_names, parse_accepted_names)

5421 10/10/2012 10:58 AM Aaron Marcuse-Kubitza

inputs/.TNRS/tnrs/map.csv: Mapped Genus_score, Specific_epithet_score

5420 10/10/2012 10:56 AM Aaron Marcuse-Kubitza

mappings/VegCore-VegBIEN.csv: Mapped matchedGenusFit_fraction, matchedSpeciesFit_fraction. Reordered canon_concept_fit_fraction _maxs in the order they would be used if _alt were being used instead.

5419 10/10/2012 10:52 AM Aaron Marcuse-Kubitza

mappings/VegCore.csv: Added matchedSpeciesFit_fraction

5418 10/10/2012 10:47 AM Aaron Marcuse-Kubitza

mappings/VegCore.csv: matchedFamilyFit_fraction: Source the "matched" to Family_matched, which is a closer fit than Name_matched. matchedGenusFit_fraction: Fixed Genus_matched source to use #detailed_download instead of #simple_download.

5417 10/10/2012 10:42 AM Aaron Marcuse-Kubitza

mappings/VegCore.csv: Added matchedGenusFit_fraction

5416 10/10/2012 10:18 AM Aaron Marcuse-Kubitza

README.TXT: Removed extra trailing whitespace