Digital Photo Slide Show 2005.2 serial key or number

Digital Photo Slide Show 2005.2 serial key or number

Digital Photo Slide Show 2005.2 serial key or number

Digital Photo Slide Show 2005.2 serial key or number

Table of contents

Oracle® Outside In Clean Content Developer's Guide

Release 8.5

F11001-02


Skip Navigation Links


Introduction

Definitions

Features

File Formats

Support

Release Notes

SDK layout

Architecture

Java

C/C++

.NET

Using the API

Initialization

Basic Use

Request

Response

Document IO

Targets

Analysis and Scrubbing

Extraction

Embedding Recursion

Embedding Export

Embedding Replacement

PowerPoint Disassembly/Assembly

Threading

Exception Handling

Install and Coding Guidelines

Java

C/C++

.NET

Technical Notes

The Outside In Clean Content SDK provides all the components, documentation, samples and other resources required by third party developers to integrate Oracle's document analysis, scrubbing, extraction and export technology into their own applications.

Definitions

The following definitions are used throughout this documentation and the Clean Content API.

document
This term is used broadly and generically in the documentation and API to refer to any file such as a word processing document, a spreadsheet, a presentation, a PDF, etc.

target
Some feature or piece of information in a document that can be identified and in many cases removed (see scrub below). Most targets relate to well known security risks in popular file formats although some, like identifying a document as being encrypted, are more general.

analyze
To determine if a given target exists in the document

scrub
To remove a given target from a document

extract
To provide the developer with text, structure and other information in the document

export
To copy objects, images and other artifacts embedded in a document to standalone files

disassembly
To take a document with multiple parts (slides in PowerPoint is the only current example) and split it into multiple standalone documents, one per part

assembly
To take several documents and merge them into a single document

Features

The Clean Content API exposes the following major features;

  • Discovery (analysis) and removal (scrubbing) of over 40 unique pieces of information (targets) inside Microsoft Word, Excel and PowerPoint documents
  • Extraction of the text, structure and other information from Microsoft Office documents and Adobe Acrobat PDF files.
  • Export of embedded objects and images from Microsoft Office documents and Adobe Acrobat PDFs
  • Specialized scrubbing and modification of Fields in Microsoft Word documents
  • Addition, modification and removal of Properties in Microsoft Office documents
  • Recursion into embedded objects for both scrubbing and extraction
  • Replacement of embedded images in Microsoft Office documents
  • Assembly/Disassembly of PowerPoint presentations
  • High performance
  • High stability
  • Multiple APIs including Java, C, C++ and .NET

File formats

TODO new FI!

Clean Content supports the following primary file formats. Many other formats (such as Windows Metafile) that are commonly associated with these primary formats are also supported. Note that hundreds of additional file formats are supported when using the optional integration with Outside In Search Export.

Adobe Acrobat (PDF)includes all versions
Support: Analyze, Extract, Export
Extensions: pdf

Adobe Forms Data Format
Support: Analyze, Extract, Export
Extensions: fdf

Compact Font Format
Support: Analyze, Scrub, Extract
Extensions: cff

Microsoft Docfileincludes formats such as Microsoft Visio, Microsoft Project, etc.
Support: Analyze (properties only), Scrub (properties only), Extract (properties only)

Microsoft Excel 2007 and above
Support: Analyze, Scrub, Extract, Export
Extensions: xlsx xlsb xlsm xltx xltm xlam xlsb xlsm xltx xltm xlam xlsb xlsm xltx xltm xlam

Microsoft Excel 2007 and above binary
Support: Analyze (limited), Scrub (properties and macros only), Extract
Extensions: xlsb

Microsoft Excel 2010 binary
Support: Analyze (limited), Scrub (properties and macros only), Extract
Extensions: xlsb

Microsoft Excel 2013/2016 binary
Support: Analyze (limited), Scrub (properties and macros only), Extract
Extensions: xlsb

Microsoft Excel 97 thru 2003
Support: Analyze, Scrub, Extract, Export
Extensions: xls

Microsoft PowerPoint 2007 and above
Support: Analyze, Scrub, Extract, Export, Assembly, Disassembly
Extensions: pptx pptm potx potm ppsx ppsm ppam pptm potx potm ppsx ppsm ppam pptm potx potm ppsx ppsm ppam

Microsoft PowerPoint 97 thru 2003
Support: Analyze, Scrub, Extract, Export, Assembly, Disassembly
Extensions: ppt pps pot ppa

Microsoft Word 2007 and above
Support: Analyze, Scrub, Extract, Export
Extensions: docx docm dotx dotm docm dotx dotm docm dotx dotm

Microsoft Word 97 thru 2003
Support: Analyze, Scrub, Extract, Export
Extensions: doc dot

Support

For pre-sales support please contact your Oracle sales representative.

Oracle customers have access to electronic support through My Oracle Support.  For information, visit http://www.oracle.com/support/contact.html or visit https://www.oracle.com/corporate/accessibility/learning-support.html#support-tab if you are hearing impaired.

Release Notes

Major changes and fixes for 8.5.0.01

  • IMPORTANT: Added the boolean option BrokenPDFCorrection that tries to recover PDF if Clean Content fails to process the input PDF file.If this boolean option is set to "true" then correctectPDFs are by default placed at "scrubbedDir/CorrectedPDFs", else for extraction the corrected PDFs are placed at "extractDir/CorrectedPDFs".Considering the complex model of PDF and various errorneous struture, please note that Clean Content may not always be able to successfully correct the broken PDF.
  • Multi-threading issue has been resolved in Clean Content
  • Temporary files cleaned up after processing of PDF
  • Clean content now successfully extract and scrub sensitive hyperlinks in 97 powerpoint files
  • Clean Content now successfully completely scrub commentIds from Word 2016 files
  • Issue numbers fixed in this release: 28707449, 25508010, 20357596,26269211,29036401 29338572,30426093,29028172,29488592,29338246,28534481,18482686,27773608,27117481
  • CUSTOMER ALERT: This release of Clean Content requires Java 8

Major changes and fixes for 8.5.4.12

  • Issue numbers fixed in this release: 27773608,27117481

Major changes and fixes for 2018.6.30

  • Issue numbers fixed in this release: 27920409,25889084,25842315,26829340,25267266,27387738

Major changes and fixes for 2018.3.30

  • Issue numbers fixed in this release: 25910751,27244381, 24390869, 23215828

Major changes and fixes for 2018.2.28

  • Issue numbers fixed in this release: 25340818, 27117481, 25267266

Major changes and fixes for 2018.1.24

  • Issue numbers fixed in this release: 25910751, 27244381

Major changes and fixes for 2015.1.4

  • Assembly and disassembly now operates on PDF documents as well as PowerPoint documents.
  • Issue numbers fixed in this release: 22050820, 23595853, 23749554

Major changes and fixes for 2015.1.3

  • IMPORTANT: Added the boolean option TimeoutUsingThreadStop that allows timeout of requests in tight infinite loops. See the new Timeouts section in this document for details and warnings.
  • CUSTOMER CODE CHANGE: Major changes to how file are identified and the FileFormat class are coming for Clean Content 2016.1. Hundreds of new formats will be identified. The change should be mostly backwards compatible but expect FileFormat to become an Enum.
  • CUSTOMER ALERT: A display issue has been found when running the demo application under X-Windows. This will be resolved in Clean Content 2016.1.
  • Scrubbing of Color Obfuscated Text in Microsoft Word 2007 and above when the ColorObfuscatedTextRemediation option is set to ColorObfuscatedTextRemediationOption.AdjustColor has been reworked to avoid setting all text in the document to "Auto" color.
  • Added the boolean option SimulatePowerPointAnimationsDuringAssembly. This option applies to the assembly of PowerPoint 2007 and above (PPTX). When set to true, this option will cause slides that originally contained animation to be expanded into a series of slides that simulate the animations by hiding and restoring slide elements to simulate the entrance and exit of animated elements.
  • PDF files embedded in Office 2007 and above will now behave correctly after being scrubbed.
  • Issue numbers fixed in this release: 19064521, 19582411, 20663115, 20873121, 20898724, 21115231, 21305814, 21848936, 21954498, 22047140, 22293983, 22377985, 22385328, 22386086, 22390140, 22612040, 23215806 

Major changes and fixes for 2015.1.2

  • Issue numbers fixed in this release: 20224163, 20639346, 20890404, 20906536, 21070673, 21084342, 21266459, 21385974, 21975599

Major changes and fixes for 2015.1.1

  • Internal-only release
  • Issue numbers fixed in this release: 20906434

Major changes and fixes for 2015.1

  • CUSTOMER CODE CHANGE: In extracted output, the datacell element (and event) has been removed in favor of type specific elements including numbercell, textcell, datecell and durationcell.
  • Extracted spreadsheet output now includes both the raw data value (in the value attribute) and the data as it appears formatted in the application (as text in the element). For example, a cell that was previously extracted like this, <datacell row="59" column="8" value="2238356.65"/>, is now extracted like this <numbercell row="59" column="8" value="2238356.65">$2,238,356.65</numbercell>.
  • CUSTOMER ALERT: The next major release of Clean Content will require Java 7
  • Removed Outside In Search Export integration. Customers can now use the Outside In Java and .NET APIs directly.
  • Tweaked C include file extracthandlercpp.generated.h to support newer versions of GCC
  • Added a scrub target called HybridExcel9597BookStream
  • Added support for Microsoft Office files in Strict Open XML format
  • Issue numbers fixed in this release: 8206503, 9285746, 9787417, 9787432, 13877473, 20122501, 20205999, 20402739, 20539633, 20561528

Major changes and fixes for 2013.1.6

  • Issue numbers fixed in this release: 18461820, 19307501, 19504465, 19508023, 19516940, 19637681, 19773754, 19807436, 19815782

Major changes and fixes for 2013.1.5

  • Fixed memory leak on Linux when using C/C++ or .NET APIs. The leak was most noticeable when using the BFSetFileOption function. For each call to this function a number of bytes equal to 2 times the length of the file name were being leaked.
  • Issue numbers fixed in this release: 17866823, 18536642, 18697470, 18808601, 18808807, 18967956, 18995179, 18995293, 19074672, 19165003, 19180563

Major changes and fixes for 2013.1.4

  • Added new BFStartupEx function to C API. This allows the path to CleanContent.jar, the path to the JRE, and the JRE options to all be set programatically. See the C/C++ Guidelines for details.
  • Added a new version of SecureHelper.Startup to the .NET API which mirrors the new BEStartupEx function in the C API. See the .NET Guidelines for details.
  • Issue numbers fixed in this release: 18614206, 18553874, 18116944

Major changes and fixes for 2013.1.3

  • Issue numbers fixed in this release: 18420341, 18551449, 18298913, 18507762

Major changes and fixes for 2013.1.2

  • Issue numbers fixed in this release: 18070491, 18298913

Major changes and fixes for 2013.1

  • Customers will see a roughly 70% performance improvement in the analysis of XML-based Microsoft Office 2007-1013 documents, and significant increases in scrubbing and extraction performance.
  • The following scrub or analysis Targets were added for this release: AppsForOffice, ExcelDataModel, UnknownXML, PDFAlternateImages, PDFDeprecatedPostscriptObjects, PDFAlternatePresentations, PDFWebCaptureInformation, PDFLegalAttestation, PDFDigitalSignatures, PDFThumbnailImages, PDFAnnotations, SensitiveContentLinks, XMPMetadataStreams, and GPSData.
  • The following options were added for this release: PDFMinimumImageDimensionRequiredToProcess. See API for details.
  • The option SensitiveHyperlinksRegex was renamed to SensitiveLinksRegex and now applies to both the SensitiveHyperlinks and SensitiveContentLinks targets.
  • Extraction and scrubbing of the Open Office XML format (Microsoft Office) now includes processing of all choices in Alternate Content elements.
  • Added support for XMP embedded in PDF documents.
  • Added support for identification of XMP, RDF, WAV and AIFF file formats.
  • CUSTOMER ALERT: The last public update of Java 6 was Feb 2013. An upcoming version of Clean Content will drop support for Java 6 and require Java 7. Please contact your Oracle sales representative if this change will create an issue for your product.
  • Issue numbers fixed in this release: 9463630, 13377241, 13425435, 13475829, 13582954, 13956841, 14239187, 14509582, 14763715, 15893487, 16403744, 16561941, 17050811, 17337929, 17471338, 17633976

Major changes and fixes for 2012.1.2

  • Added clarification on custom property modification to this document.
  • Issue numbers fixed in this release: 16895155, 16914757

Major changes and fixes for 2012.1.1

  • Verified against Microsoft Office 2013. Verification means that Office 2013 documents are correctly extracted and that scrubbed documents of any supported Microsoft Office version will open correctly in Office 2013. Support for Office 2013 schema changes, additional scrub targets, etc. will be available in a later version of Clean Content.
  • Clarified the validity of output in exception and error cases. Details are here.
  • Scrubbing of Unknown Fields in Word 2007-2013 files now works as documented
  • The demo application now uses net.java.awt.Desktop class to open browser windows
  • Issue numbers fixed in this release: 11677587, 16284559, 16297194, 16396281, 16515824, 16516432, 16601120, 16673293

Major changes and fixes for 2012.1

  • Scrubbing of PDF documents as well as many PDF related targets have been added including ClippedText, PDFActions (and it's sub-targets like PDFJavaScriptActions), and PDFPrivateApplicationData.
  • Integration with Oracle's Outside In Search Export has been added. Customers who choose to purchase that product will be able to extract text, metadata and structure from over 500 additional file formats through the Clean Content API. Details are here.
  • XML processing is now more forgiving of XML that does not follow its XML Schema. An InvalidXML target and logged warnings have been added to alert developers to invalid XML elements in case they require strict schema conformance
  • PDF seach hit highlighting support has been removed from the demo application. See related Customer Alert under 2011.2 changes
  • Clean Content now requires Java 6 or higher
  • The XML schema used for extraction has been extended with many additional elements and attributes in the message, archive and database areas to support the Outside In Search Export integration
  • Fixes were made to how XML output is produced allowing use of Saxon and other third-party XSLT processors that plug-in to the Java JAXP infrastructure.
  • Added UninitializedDocfileData target
  • CUSTOMER ALERT: In an upcoming revision the Clean Content options that are enumerations will become real Java Enums in the Java API. This may end up being transparent to the customer's code but please expect this change.
  • Issue numbers fixed in this release: 13636289, 13940798, 13987464, 14038681, 14051875, 14064291, 14120406, 14188819, 14193959, 14198083, 14251214, 14304898, 14527636, 14539010

Major changes and fixes for 2011.2.7:

  • Tweaked the XML structure of scrubbed Word documents (.docx) to work around a bug in Apple's iPhone/iPad email attachment preview feature
  • Normalized the definition and implementation of the Weak Protections target
  • Added more descriptive reporting of invalid XML elements
  • Resolved significant issue in PowerPoint .pptx disassembly
  • Issue numbers fixed in this release: 13068853, 13796206, 13972531, 14019099, 14051609, 14078741, 14128837

Major changes and fixes for 2011.2.6:

  • Scrubbing of ImplicitRef, Formula and Unknown fields now supported in Word
  • Added Weak Protection support in Excel 2007/2010. See the Weak Protections target description for more information.
  • Added Custom XML support for Word 97-2003. See the Custom XML target description for more information.
  • Tracked Changes in Word 2007/2010 that indicate moves are now supported for scrubbing
  • Issue numbers fixed in this release: 13041497, 13257351, 13388342, 13425420, 13576875, 13641062, 13642206, 13682781, 13682823, 13465121, 13776088

Major changes and fixes for 2011.2.5:

  • CUSTOMER ALERT: The next major version of Clean Content will require Java 6 or above, Java 5 will no longer be supported
  • Fields without structured data (PRIVATE, RD, TA, TC and XE) will be scrubbed correctly in Microsoft Word 97, 2000, XP & 2003 documents
  • Unknown fields (that is fields that don't have a structured data type and don't match any field name) will be scrubbed in Microsoft Word 97, 2000, XP & 2003 documents based on the new SecureOptions.Fields.Unknown field type
  • Added missing GetEnumResult method to BFSecureResponse class in the C/C++ API
  • Added missing GetResult(EnumOption) method to the SecureResponse class in the .NET API
  • Fixed declaration of .NET enumeration option values from 'static' to 'const' so they can be used in a switch statement
  • Updated C/C++ and .NET sample code in the Response section of this document to use the new ProcessingStatus option
  • In previous versions the SecureResponse class had references to other large objects trees causing the collection and later processing of a large number of these objects to be very memory intensive. The code has be refactored to produce a very light SecureResponse object allowing collection of a large number of responses without huge memory overhead.
  • In version 2011.2.4 the UNKNOWN FileFormat was accidentally moved to be a sibling of the ALL FileFormat instead of its child, this has been corrected
  • Issue numbers fixed in this release: 13345226, 13332027, 13325655, 13253127, 13103312, 13087267, 13082906, 13042424, 13361562, 13345226

Major changes and fixes for 2011.2.4:

  • CUSTOMER ALERT: The behavior of property modification has been altered so that the actions None and Scrub when specified for individual properties will propogate down into embedded documents. The Replace and AddOrReplace actions will behave as before in that they will not affect properties in embedded documents.
  • Changed processing of Word and PowerPoint XML element types to allow certain unusual documents to be processed correctly.
  • Changed processing of Microsoft Office 2007-2010 documents to recover from malformed VML
  • Fixed the C function BFHelperGetDateString
  • Fixed infinite loop cases in certain malformed Microsoft Office documents

Major changes and fixes for 2011.2.3:

  • Changed methodology for scrubbing Comments in Word 97-2003 documents. The earlier method could, in exceptional circumstances, produce documents unreadable by specific versions of Word. The new method fixes this issue while still passing Word 2010's Office File Validation test.
  • Fixed small issues in property categorization and scrubbing

Major changes and fixes for 2011.2.2:

  • Added array allocation checks in generated code to avoid OutOfMemoryError being thrown in cases where malformed documents drive the code with unexpected data
  • Removed all use of the String object's intern method to avoid filling PermGen space and causing OutOfMemoryError

Major changes and fixes for 2011.2.1:

  • Small, document specific fixes to the PowerPoint 97-2003, PowerPoint 2007/2010, Word 2007/2010 and PDF transforms
  • BMP is now a valid image replacement format in Office 2007/2010 documents

Major changes and fixes for 2011.2:

  • CUSTOMER ALERT: Two fixes have been made to the C API (and therefore the C++ and .NET APIs built on top) to solve issues where certain documents processed through these API's could cause untrapped segmentation faults in the Java Virtual Machine. All customers using the C, C++ or .NET APIs on Clean Content 2010.1 or above should upgrade ASAP to 2011.2. A patch to Clean Content 2011.1 for this issue is also available on My Oracle Support at Doc ID 1307556.1. This is not an issue in the Java API.
  • CUSTOMER ALERT: In Acrobat X, Adobe Systems has chosen to remove the "hit highlighting" feature Clean Content can leverage to highlight search terms in PDF documents. This feature was available but disabled in Acrobat 9. These changes call into question the usefulness of the GenerateAcrobatHighlightPositions option in Clean Content.
  • Added OfficeXMLPartValidation option and associated analysis targets: OfficeXMLUnanalyzedParts, OfficeXMLUnexpectedParts, OfficeXMLAlternateContentParts and OfficeXMLRogueParts. Details may be found in the Microsoft Office Open XML Support Technical Note.
  • CUSTOMER CODE CHANGE: The little used getCharBuffer method in the ElementHandler interface has been modified. It now takes a single parameter specifying the minimum allowable size of the returned character buffer.
  • In Microsoft Word and PowerPoint 2007/2010 formats the line break element is now being handled correctly, avoiding cases where text separated by line breaks world run together in the extracted output.
  • Several enhancements have been made to PDF extraction in the areas of vertical text and space inference.
  • Added ability to scrub of PRIVATE and BIDIOUTLINE fields in all supported versions of Microsoft Word
  • Fixed issue where images and embeddings with the hidden character property were not being scrubbed when the HiddenText target is set to SCRUB in Microsoft Word 2007/2010.

Major changes and fixes for 2011.1:

  • Added support for encrypted Microsoft Office and PDF documents and associated PasswordList and DecryptionStatus options. Details may be found in the Encrypted Document Support Technical Note.
  • Added ToTextEncoding option allowing either UTF-16 or UTF-8 encoding when extracting text with OutputType set to ToText. In addition, some small improvements were made to the extracted text itself.
  • Added ProcessingProblem response to make response handling easier to write. The WasProcessed, WasIdentified, WasSupported, WasTimeout and WasException responses are still available but deprecated. The Response section has been updated to reflect these changes.
  • Added support for field modification in Office 2007/2010 documents.
  • Added ability to change the starting page number of a Microsoft Word 2007/2010 document through the new ChangeStartingPageNumber (boolean) and StartingPageNumber (integer) options.
  • Added analysis and scrubbing of document variables in Microsoft Word 2007/2010 under the DocumentVariables target.
  • Moved analysis and scrubbing of document variables in Microsoft Word 97-2003 from the MacrosAndCode target to the DocumentVariables target.
  • CUSTOMER ALERT: Microsoft Office 2010 added a security feature called Office File Validation. This feature (enabled by default) adds numerous document integrity tests when opening pre-Office 2007 binary formats for Word, Excel and PowerPoint. This is an effort by Microsoft to prevent specially crafted pre-Office 2007 documents from compromising system security. Unfortunately this feature will also flag some documents that have been scrubbing by earlier versions of Clean Content causing the Office 2010 application to enter Protected View and warn the user. Note that such documents open correctly and with no warning in all previous versions of Microsoft Office. The Clean Content scrubbing process has been modified so that pre-Office 2007 documents scrubbed by this version will not receive this warning in Office 2010.
  • CUSTOMER CODE CHANGE: Customers are able to apply an XSLT transform to the extracted XML output using the TransformResult (boolean) and ResultTransform (file) options. Up until this version the XSLT provided was required to treat XML attributes in the extracted output as "qualified" even through the untransformed XML output shows them as "unqualified". This issue has been fixed and XSLT passed to the ResultTransform option should be modified to treat XML attributes as "unqualified".

Major changes and fixes for 2010.2:

  • Full support for Office 2010. Details may be found in the Microsoft Office Open XML Support Technical Note.
  • Changed the way the Comments target is scrubbed out of Microsoft Word 97-2003 documents to avoid a warning when opening such scrubbed documents in Microsoft Word 2010.

Major changes and fixes for 2010.1:

  • Added C/C++ API support for 64 bit versions of Windows and Linux on the x86-64 architecture.
  • Added .NET API support for 64 bit versions of Windows on the x86-64 architecture.
  • Numerous PDF extraction and analysis features have been added with this release. These include the detection of JavaScript (Macros and Code) and Incremental Updates (Fast Save Data) and the extraction of Document Outlines, Thumbnail Images, Article Thread Information, Interactive Forms, and XFA Forms. Enhancements have also been made for AES Encrypted documents, PDF Portfolio support, and Malformed PDF document parsing. Additionally, numerous heuristic enhancements have been made to the line detection and character mapping algorithms that further improve extraction from poorly crafted PDF documents. Details may be found in the PDF Extraction and Analysis Support Technical Note.
  • Processing of PDF documents with AES 256 bit encryption requires the Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files. See the PDF Extraction and Analysis Support Technical Note for details.
  • CUSTOMER CODE CHANGE: The C interface (and by extension the C++ and .NET interfaces built on top) has been largely rewritten to be thinner, faster and more portable. As part of this rewrite several small changes have been made to the C API itself, these include...
    • Access to actions and new values for scrubbing and changing Properties and Word Fields has been changed. The former API defined a structure like SecureOptions_Properties_Author which contained option id's for the action and newValue on the Author Property. The new API simply defines static constants for the two option ids. So all a developer needs to do in their code is change things like SecureOptions_Properties_Author.newValue to SecureOptions_Properties_Author_newValue.
    • Arrays listing the options of various types used to be directly available through arrays like AllScrubOptions or AllStringOptions. These arrays and the count of their elements are now available only through function calls like BFGetAllScrubOptions and BFGetAllStringOptions.
    • The two changes above (and other changes not visible in the API) were undertaken to allow multiple source files to include secureapi.h without the cumbersome #define BFDONTDEFINE method used in earlier versions.
  • The C interface library is now buildable by the OEM customer in order to support the C/C++ API on any reasonable unix-like platform with a Java 1.5 JDK and a recent GNU toolchain. This also allows the customers using Linux to relink libCleanContentAPI.so with standard library versions of their choice.
  • This release ships static (libCleanContentAPI.a) versions of the C interface library for Linux as well as the shared (libCleanContentAPI.so) versions.
  • As of Sun JVM version 1.5 the requirement on Linux to add the Java library paths (like /usr/java/j2re1.4.2_05/lib/i386 and /usr/java/j2re1.4.2_05/lib/i386/client) to an applications library search path (either using -rpath at link time or LD_LIBRARY_PATH at run time) has been removed.
  • The granularity of the RequestTimeout option has been improved to roughly half a second. Previous versions had a timeout resolution of about 10 seconds.

Major changes and fixes for 2009.1.1:

  • Fixed problem with certain PDF documents were never timing out
  • Fixed .NET API issue where dates out of a certain range cause an untrapped exception
  • Fixed issue where the Content Properties target was not being set for Microsoft Office 2007 files containing content properties
  • Fixed issue where the Headers and Footers target was not being set for Microsoft Word 2007 documents containing headers or footers
  • Fixed issue where Open Office 3.1 would not open Microsoft Office 2007 documents scrubbed by Clean Content
  • Updated the Targets section of this guide to more clearly list the formats that can contain each target
  • CUSTOMER CODE CHANGE: The ExportMaximumReplacementSize option retrieved during the startEmbeddedContent and processEmbeddedContent methods may now be 0 (zero) indicating that any size replacement is allowable.
  • Fixed issues with C, C++ and .NET documentation

Major changes and fixes for 2009.1:

  • Full support for extraction, analysis and scrubbing of Office 2007 Word (.docx, .docm, .dotx, .dotm), Excel (.xlsx, .xlsm, .xltx, .xltm, .xlam), PowerPoint (.pptx, .pptm, .potx, .potm, .ppsx, .ppsm, .ppam) documents.
  • Full support for Microsoft PowerPoint 2007 assembly and disassembly.
  • Full support for extraction and extensive analysis support of Office 2007 Excel Binary (.xlsb) documents. Property and Macro scrubbing is also included for this format.
  • CUSTOMER CODE CHANGE: Added ScrubbedFormat option and new code examples in the Response section. It is critical that existing customers that would like to correctly scrub Office 2007 formats read this new information and update their code accordingly. In short, Office 2007 files may need to have their extensions changed when scrubbed. For example, when scrubbing macros from a .docm file it must be changed to a .docx file or it will not open in Word. The ScrubbedFormat option allows the developer to understand when this is required and change the name accordingly. See the Response section for details.
  • Added the CustomXML and StructuredDocumentTags scrub targets.
  • CUSTOMER CODE CHANGE: The hyperlinkbegin and hyperlinkend elements in the extraction schema have been changed as follows. The url and sensitive attributes have been removed in favor of always using a contentref or linkedcontent child. This normalizes how hyperlinking and external references are accomplished in the schema.
  • CUSTOMER CODE CHANGE: The signatures of the StartEmbeddedContent and ProcessEmbeddedContent methods in BFBaseElementHandler have changed. In both cases the exportOptions parameter is now part of the BFEmbeddedContentElement structure instead of being an additional parameter. In the case of C++ users extending BFBaseElementHandler the exportOptions handle will now need to be used with the C option functions or used to create a BFOptionSet. See the Embedding Replacement sample code for an example of this.
  • Java 1.4 is no longer supported. Clean Content now supports only Java 1.5 and above.
  • The demo application now includes an improved single file processing UI and allows setting of nearly all options available in the API.
  • In a change in behavior, SecureRequest will now delete the newly created scrubbed document when processing fails. This avoids leaving partially constructed, corrupt documents floating around. This is only the case where the ScrubbedDocument option is set using a File object in Java, a path in C/C++ or a FileInfo object in .NET.
  • FEATURE CHANGE: The ScrubInPlace option has been removed. Unlike the binary Microsoft Office file formats, the XML Microsoft Office file formats need to be completely rewritten in order to be correctly scrubbed. This requirement makes ScrubInPlace impossible or at least highly inefficient to implement. This, along with other more technical issues, have led us to remove this feature from the API.

Major changes and fixes for 2008.1.5:

  • Fixed PowerPoint 2000 assembly issue

Major changes and fixes for 2008.1.4:

  • Added image extraction from Adobe Acrobat PDFs
  • Various fixes and enhancements for Adobe Acrobat PDF (see Technical Notes)
  • CUSTOMER CODE FLASH: The 2008.2 release will operate only on Java 1.5 and above. Java 1.4 will no longer be supported.

Major changes and fixes for 2008.1.3:

  • Various fixes for PowerPoint assembly/disassembly

Major changes and fixes for 2008.1.2:

  • Added property extraction support for Office 2007 XML (MSOOX) files
  • This document now meets Oracle Global HTML Accessibility Guidelines
  • Miscellaneous fixes for a number of file formats including several for PDF
  • CUSTOMER CODE CHANGE: This release includes an update to SimpleChannel and its C, C++ derivatives to include a truncate method. Any developer providing or consuming data through a SimpleChannel (or its C, C++ derivatives) will need to update their implementation and recompile to work with the 2008.1.2 release. The equivalent functionality in C# is provided through the .NET Stream class and C# developers should need no changes to their code.

Major changes and fixes for 2008.1.1 (Oracle internal only):

  • Added property modification support for Office 2007 XML (MSOOX) files. Currently only supports addition/deletion/modification of custom properties
  • Added PowerPoint slide fingerprinting support (see technical note at end of this document)
  • Added extended support for identifying Office documents with incorrect CLSIDs
  • Demo application now supports additional PDF, PowerPoint and Excel options
  • CUSTOMER CODE FLASH: The 2008.2 release will update SimpleChannel and its C, C++ and C# derivatives to include a truncate method. Any developer providing or consuming data through a SimpleChannel (or its C, C++ or C# derivatives) will need to update their implementation and recompile to work with the 2008.2 release.

Major changes and fixes for 2008.1:

  • Added PDF extraction with hit highlighting support
  • Added logging support in Java
  • Published XML schema for extracted XML and ElementHandler events
  • CUSTOMER CODE CHANGE: Addition of a published XML Schema has lead us to do some cleanup on the XML output (and consequently the ElementHandler events). These changes should not affect most customers but anyone post-processing the XML or coding for specific series of ElementHandler events should review the new XML Schema and modify their code, xslt, etc. accordingly. In the future we may refine and tweak the XML Schema but no drastic changes are envisioned in the short to medium term.
  • Fast Save data in Word can now be exported for processing
  • Added PDF technical notes

Major changes and fixes for 2007.2.1:

  • Added PowerPoint Assembly/Disassembly

Major changes and fixes for 2007.2:

  • Added ExtremeCells, ExtremeIndenting, ExtremeObjects and OverlappedObjects targets
  • Added regex-based Header/Footer removal and modification
  • Added .NET API
  • Property modification and scrubbing will now work on any Microsoft Docfile format document not just the formats (Word, Excel and PowerPoint) where more comprehensive scrubbing occurs. This mean that property modification can now occur on formats like Microsoft Visio and others that use the DocFile container format.
  • Reworked documentation and extended sample code

Major changes and fixes for 2007.1:

  • CUSTOMER CODE CHANGE: Property and Field scrubbing/modification API has been reworked to avoid specialized methods/functions and decrease the API footprint. If you use Property or Field scrubbing/modification you will need to change your code to conform to the new API. This is true of both the C/C++ and Java APIs.
  • JAVA CUSTOMER CODE CHANGE: All trapped and many untrapped exceptions are now being caught and reported through a TransformException (a subclass of IOException). As a result, developers now need only catch IOException on the request's execute method. Existing code will work if it followed the earlier guidelines but many of the catch blocks will never be reached.
  • Added Size Obfuscated Text scrub target
  • Added Color Obfuscated Text scrub target
  • Added table in table support in Microsoft Word
  • Removed Scenario Comments scrub target in favor of new Scenarios scrub target
  • The WasIdentified, WasSupported, WasException and WasTimeout boolean results have been added to improve error reporting.
  • Demo application now has GUI support for all Clean Content options.
  • Demo application now provides more statistics about groups of documents being processed.
  • Demo application now provides better reporting of exceptions and other errors.
  • A timeout mechanism has been added to interrupt very long or looping requests. See the RequestTimeout option for details.
  • The C/C++ API now has a setting that allows easier debugging of the Java startup process that occurs during BFStartup function or BFSecureRequest.Startup method.
  • In Microsoft Word the bit that indicates a document is Fast Save is now cleared when Fast Save Data is scrubbed.
  • Rebranded to Oracle
  • SDKs now ship with the Sun's 1.4.2_13 JRE which resolved some vulnerabilities in earlier JREs.
    See http://www.us-cert.gov/cas/techalerts/TA07-022A.html

Major changes and fixes for 2006.2:

  • Added ability to remove, modify and add document properties in Microsoft Office documents.
  • Added ability to remove hyperlinks based regular expression matching.
  • Rebranded to Stellent

Major changes and fixes for 2006.1:

  • CUSTOMER BUILD CHANGE: Rebranded to Clean Content SDK. JAR, DLL and SO file names have changed. Customers should inspect and update their build process.
  • Performance on all formats has roughly doubled.
  • Added the ability to extract the text and structure from documents as they are processed.
  • Added the ability to export embedded objects for further processing or display.
  • Added the ability to recur into embedded objects for scrubbing, analysis, extraction and/or export purposes.
  • Added the ability to replace images and embedded objects.
  • Added option to extract only properties in order to increase performance for those customers needing only document properties.
  • Extracted XML now includes better delineation and referencing of items like headers, footers, footnotes, etc.
  • Several new scrub targets have been added including: Alternative Text, DocumentVariables, Fields (including individual field type removal and text replacement) and Meeting Minutes.
  • Added the ability to 'unhide' hidden cells in Excel.
  • Added the ability to define a global default scrub behavior and changed the default value of all scrub target options to use this default.
  • The Secure sample application can now extract to XML as well as produce an HTML report.
  • JAVA CUSTOMER CODE CHANGE: In order to avoid difficulty in writing Java code all options available in Secure are now available in the SecureOptions class. The ExtractOptions and SharedOptions classes still exist but Stellent recommends using SecureOptions class instead.
  • C/C++ CUSTOMER CODE CHANGE: In order to support both Secure's and Extract's options in the C/C++ interface the option names which were formerly things like SourceDocument, AuthorHistory and OutputType have now been namspaced by prefixing with 'SecureOptions_'. So the above are now called SecureOptions_SourceDocument, SecureOptions_AuthorHistory, SecureOptions_OutputType. In addition, a C++ cover class on these options has also been added so C++ customers can use BFSecureOptions::SourceDocument, BFSecureOptions::AuthorHistory and BFSecureOptions::OutputType. Customer's C/C++ code will need to be modified to reflect this change.

Major changes and fixes for 2005.2:

  • Added C/C++ API.
  • Added several new ways to provide the SourceDocment and ResultDocument options including as a block of memory, as a FileChannel and as a SimpleChannel (defined in this SDK) which allows arbitrary IO redirection.
  • Many small fixes to analysis, scrubbing and reporting behavior.

Major changes and fixes for 2005.1:

  • The information content and look of the reports has been improved substantially.
  • Many small fixes to analysis, scrubbing and reporting behavior.
  • Many small fixes to the BitformSecureSDK application.
  • Performance on Microsoft Word documents has been almost doubled.
  • The TransformReport option now has its documented effect.

The SDK's directory structure provides easy access to all the components, samples, documentation and other files needed to integrate the Clean Content SDK into your application.

CleanContentSDK

The root directory of the SDK

CleanContentSDKDemoWin32.exe
CleanContentSDKDemoWin64.exe
CleanContentSDKDemoLinux32.sh
CleanContentSDKDemoLinux64.sh

OS specific launchers for the Clean Content SDK demo application. This Java application is designed to demonstrate the full potential of the Clean Content API and allow developers to explore the analysis, scrubbing, extraction and export behavior of this SDK in a full featured GUI environment.

CleanContentSDKDemoGeneric.sh

A generic launcher for the Clean Content SDK demo application on Unix style operating systems. It will use the JAVA_HOME environment variable followed by locate bin/java to find an appropriate Java Runtime Environment to use. Requires the bash shell.

index.html

The Clean Content Developer's Guide

app

Directory containing components and documentation for the CleanContentSDKDemo application

c

Directory containing libraries, include files, samples and other files required to use the Clean Content C/C++ API.

include

Directory containing include files required to use the C/C++ API. Most importantly it contains secureapi.h which is the only file your code needs to include.

lib

Directory containing native code libraries needed to use the C/C++ API plus the test and sample app executables.

Windows

Directory containing DLLs and LIBs needed to use the C/C++ API on Microsoft Windows plus the test and sample application EXEs . This directory will include one or more sub-directories that correspond to the processor architecture for which Clean Content is available. Currently x86 and x64 architectures are available.

Linux

Directory containing library archives and shared objects needed to use the C/C++ API on Linux plus the test and sample applications. This directory will include one or more sub-directories that correspond to the processor architecture for which Clean Content is available. Currently x86 and x64 architectures are available.

api

Directory containing the full source code to the C/C++ API.

apitest

Directory containing a cross-platform, pure C, test application designed to exercise the C API.

sanitytest

Directory containing a cross-platform, C++, test application that uses the files in CleanContentSDK/samplefiles/targets to verify that basic document analysis is working correctly.

csample

Directory containing a cross-platform, pure C, sample application.

cppsample

Directory containing a cross-platform, C++, sample application.

dumptext

Directory containing a cross-platform, C++ sample application that shows how to retrieve the text out of a document using an element handler.

docs

Directory containing documentation for the SDK

cdoc

Directory containing C/C++ API documentation

javadoc

Directory containing Java API documentation

dotnetdoc

Directory containing .NET API documentation

technotes

Directory containing technical notes

java

Directory containing components, samples and other files required to use the Clean Content Java API

lib

Directory containing CleanContent.jar that should be shipped with your application. See Install and Coding Guidelines.

sample

Directory containing Java API sample applications. Sample directories include batch files and shell scripts to build and run each application.

AnalyzeDirectorySample

Directory containing a command line sample application that analyzes all the documents in a given directory.

dotnet

Directory containing components, samples and other files required to use the Clean Content .NET API

lib

Directory containing CleanContentNET.dll that should be shipped with your application plus the test app executables. Just shipping this dll is not enough, please see the .NET Install and Coding Guidelines.

apitest

Directory containing a .NET test application designed to exercise the basics of the .NET API.

sanitytest

Directory containing a .NET test application that uses the files in CleanContentSDK/samplefiles/targets to verify that basic document analysis is working correctly.

jres

Directory containing four Java Runtime Environments (Win32, Win64, Linux32 and Linux64) needed to run the CleanContentSDKDemo application and the Java sample applications on the supported operating systems. These JREs may also be distributed with the developer's application. Oracle chooses to ship these JREs along with its SDK instead of requiring developers to "install Java" before using the demo app.

samplefiles

Directory containing documents that can be used to test Clean Content's behavior and your application. See the readme.txt file in this directory for detailed information.

samples

Directory containing the original set of Clean Content sample documents.

targets

Directory containing documents that exercise all the targets Clean Content can identify for the various supported file formats. Oracle uses these documents internally as one part of Clean Content's automated QA process.

exception

Directory containing a series of Microsoft Word documents built specifically to trigger Clean Content to generate certain exceptions, including null pointer exception and out of memory exception. The document names indicate the Java exception they generate. These documents were developed to help customers build QA processes that include exception testing. It should be noted that these documents do not exercise flaws in Clean Content rather certain bytes have been modified and are tested by Clean Content's Microsoft Word transform which in turn triggers these specific exceptions on purpose.

Java

The core of the SDK is a set of Java classes that perform the actual analysis, scrubbing, extraction and export. These classes are delivered as CleanContent.jar. If your application is written in Java or has direct access to Java classes (a web site using Java Server Pages for example) the jar can be used directly through the Clean Content Java API.

What Java runtime to use?

If you are already using Java then you probably have an existing Java Runtime Environment (JRE) that you use and/or require. If you plan on using Clean Content's C/C++ or .NET interfaces then this might be the first time you've been exposed to the JRE choices available to you. Clean Content requires a Java Standard Edition 6 compatible JRE and ships with four version of Oracle's JRE 6 (in the jres subdirectory of the SDK).

C/C++

Clean Content's C/C++ API is built on top of the Clean Content Java API allowing your C or C++ application to run Clean Content "in process" for maximum performance while getting all the stability and safety features of Java. This is accomplished by providing a native code library (CleanContentAPI.dll or libCleanContentAPI.so for example) that does all the work of loading the Java VM into your process and interfacing with Clean Content's Java core. This is done without requiring that you or your customer "install Java" on the target system. The Java components (CleanContent.jar and the JRE subdirectory) may be local to your application with no impact on the rest of the system. In this instance, Java is simply a number of extra DLLs or SOs that are being dynamically loaded into your process.

This architecture was selected in order to meet the requirement of high performance in-process parsing while still protecting your process from the problems often caused by the limitless variations of complex, malformed, hacked and truncated documents. The C and C++ APIs provide the interfaces that meet your application's needs while the Java VM provides a stable and well tested platform that protects your application from wild pointers and buffer overflows that plague parsers written in native code. Running these documents inside a VM protects your applications while avoiding the complexity and performance problems of "out of process" solutions.

.NET

Clean Content's .NET API is built on top of the C API using .NET's interop services. As with the C/C++ API the .NET API runs Clean Content "in process" (the Common Language Runtime and the Java Virtual Machine can coexist in the same process) for maximum performance and ease of integration all without requiring you or your customer to "install Java". Please review the C/C++ section above for further details.

Initialization

The Java API requires no per-process or per-thread initialization and your code may immediately begin creating SecureRequest objects. The C/C++ and .NET APIs however require per-process and per-thread initialization in order to interface correctly with the underlying Java VM. In these environments the following guidelines must be followed for initialization...

  • BFStartup (in C/C++) or SecureHelper.Startup (in .NET) must be called before any other calls to this API.
  • BFShutdown or SecureHelper.Shutdown must be called after all other calls to the API and must be called in the same thread that called BFStartup/SecureHelper.Startup
  • Each new thread that wants to process documents must call BFAttachThread or SecureHelper.AttachThread before any other calls to this API. This is not required for the thread that calls BFStartup/SecureHelper.Startup.
  • A thread that called BFAttachThread/SecureHelper.AttachThread must call BFDetachThread or SecureHelper.DetachThread after its last call to this API. This is not required for the thread that calls BFStartup/SecureHelper.Startup.
  • Each thread should create its own SecureRequest and use it only in that thread. This is not a hard and fast rule but it is simplest and safest. For example, an application that has thousands of threads might choose instead to create a small pool of SecureRequest objects to service those threads as long as each SecureRequest is used only in one thread at a time and the thread follows the rules above.
  • Please contact Oracle pre or post sales support if you need additional clarification on the API's threading behavior.

Basic Use

A developer's primary interaction in this API is with a SecureRequest object or handle in the case of the C API (from now on this document will use object/class/method semantics, C API users should be aware that a SecureRequest handle is equivalent to a SecureRequest object). This class contains mostly methods that allow the developer to get and set a collection of typesafe options found in the SecureOptions object. In addition, SecureRequest contains methods for executing the request and for getting the results. This follows Clean Content's basic design philosophy for long term APIs which favors extensible, typesafe, self-describing options over more concrete methods attached directly to the SecureRequest.

The basic execution flow of a simple application that needs to process multiple documents is as follows.

  1. Call Startup (C, C++ and .NET only)
  2. Create a new SecureRequest object
  3. Use that object's various setOption methods with the options in SecureOptions to define what parts of the each document should be analyzed or scrubbed and/or to set extraction, export and other processing parameters.
  4. Set the SourceDocument option to define the next document to be processed. If all documents are done go to step 8.
  5. Call the SecureRequest's execute method.
  6. Use the SecureRequest's getResponse method to determine the outcome of the operation.
  7. Return to step #4
  8. Call Shutdown (C, C++ and .NET only)

Below are code samples for complete Java, C++ and C# programs that show how to analyze a single document for targets. Notice that the .NET API requires explicit Close methods for SecureRequest and SecureResponse objects. For more details see the .NET Install and Coding Guidelines.

Java

C++

C#

Request

The SecureRequest object represents a reusable request to perform actions on a document. A single SecureRequest is created and reused to process as many documents as necessary within a single thread (see Threading for details).

Источник: [https://torrent-igruha.org/3551-portal.html]
, Digital Photo Slide Show 2005.2 serial key or number

PMC

This article has been cited by other articles in PMC.

Abstract

Teeth are a classic model system of organogenesis, as repeated and reciprocal epithelial and mesenchymal interactions pattern placode formation and outgrowth. Less is known about the developmental and genetic bases of tooth formation and replacement in polyphyodonts, which are vertebrates with continual tooth replacement. Here, we leverage natural variation in the threespine stickleback fish Gasterosteus aculeatus to investigate the genetic basis of tooth development and replacement. We find that two derived freshwater stickleback populations have both convergently evolved more ventral pharyngeal teeth through heritable genetic changes. In both populations, evolved tooth gain manifests late in development. Using pulse-chase vital dye labeling to mark newly forming teeth in adult fish, we find that both high-toothed freshwater populations have accelerated tooth replacement rates relative to low-toothed ancestral marine fish. Despite the similar evolved phenotype of more teeth and an accelerated adult replacement rate, the timing of tooth number divergence and the spatial patterns of newly formed adult teeth are different in the two populations, suggesting distinct developmental mechanisms. Using genome-wide linkage mapping in marine-freshwater F2 genetic crosses, we find that the genetic basis of evolved tooth gain in the two freshwater populations is largely distinct. Together, our results support a model whereby increased tooth number and an accelerated tooth replacement rate have evolved convergently in two independently derived freshwater stickleback populations using largely distinct developmental and genetic mechanisms.

KEY WORDS: Convergent evolution, Odontogenesis, Stickleback, Polyphyodonty, Tooth replacement

INTRODUCTION

Teeth are a classic model system for studying organogenesis in vertebrates, as repeated epithelial-mesenchymal interactions orchestrate odontogenesis (Ahn, 2015; Biggs and Mikkola, 2014; Jernvall and Thesleff, 2012). The developmental genetic basis of tooth formation has been most intensively studied in the mouse (Tucker and Sharpe, 2004), which has revealed detailed genetic networks that specify primary tooth formation and placement (Bei, 2009; Jernvall and Thesleff, 2000; Lan et al., 2014; O'Connell et al., 2012; Tummers and Thesleff, 2009). However, since mice are monophyodont rodents that do not replace their teeth, other vertebrate models are needed to study the developmental basis of tooth replacement. The ancestral vertebrate dental phenotype is polyphyodonty, or continuous tooth replacement, a trait retained in sharks, fish and reptiles (Jernvall and Thesleff, 2012; Tucker and Fraser, 2014). These replacement teeth may appear adjacent or beneath primary teeth and are often retained in the tooth field before the primary tooth is shed. In sharks, up to 200 teeth can develop as replacements for a single position (Reif, 1984).

Recent studies on tooth replacement have supported the hypothesis that genetic networks controlling primary tooth formation are redeployed during tooth replacement in both polyphyodont vertebrates (Fraser et al., 2006, 2013; Handrigan and Richman, 2010) and diphyodont mammals (which have two successive sets of teeth) (Jussila et al., 2014). Genetic studies in humans also demonstrate that shared genetic networks pattern primary and replacement teeth (Nieminen, 2009; van den Boogaard et al., 2012). Induction of tooth replacement has been proposed to be regulated by odontogenic stem cells, and candidate pathways, stem cell niches and markers have been proposed (Abduweli et al., 2014; Gaete and Tucker, 2013; Handrigan et al., 2010; Huysseune and Thesleff, 2004; Juuri et al., 2013; Smith et al., 2009b; Wu et al., 2013).

Fish retain the polyphyodont mode of tooth replacement and offer several advantages for developmental genetic studies, including external development and large numbers of offspring per mating. Many fish also have two sets of tooth-covered jaws – an oral jaw in their mandibular arch primarily for grasping prey, as well as a pharyngeal jaw in the posterior branchial segments in their throat for manipulation and mastication (Hulsey et al., 2005; Lauder, 1983; Sibbing, 1991; Wainwright, 2006). Oral and pharyngeal teeth form via highly similar developmental genetic mechanisms and are developmentally homologous (Fraser et al., 2009). For example, the Eda/Edar pathway is required for the proper formation of oral teeth in mammals (Mikkola and Thesleff, 2003), both oral and pharyngeal teeth in medaka fish (Atukorala et al., 2011), and for the only teeth that form in zebrafish – ventral pharyngeal teeth (Harris et al., 2008).

To study the developmental genetic basis of tooth formation and replacement, we leveraged natural variation in dental patterning in threespine stickleback fish (Gasterosteus aculeatus). Sticklebacks have undergone a dramatic adaptive radiation in which ancestral marine populations have repeatedly colonized and rapidly adapted to thousands of freshwater lakes and creeks throughout the Northern Hemisphere (Bell and Foster, 1994). Colonization of freshwater environments is accompanied by a variety of adaptations to the head skeleton, many of which are likely to be due to a major shift in diet from small zooplankton in the ocean to larger prey in freshwater (Schluter and McPhail, 1992). Recent studies (Miller et al., 2014; Cleves et al., 2014) have identified a major dental patterning polymorphism: a near twofold increase in ventral pharyngeal tooth number in a derived freshwater benthic (adapted to live on the bottom of a lake) population from Paxton Lake in Canada, possibly adaptive for crushing larger prey in the benthic niche. The increase in tooth number is accomplished by both expanding the size of the tooth field and by decreasing intertooth spacing (Cleves et al., 2014). Marine and freshwater sticklebacks can be intercrossed and their F1 hybrids are fertile, allowing forward genetic mapping of genomic regions controlling morphological differences. Genetic mapping revealed that tooth plate area (field size) and intertooth spacing are genetically separable, being controlled by largely non-overlapping genomic regions (Cleves et al., 2014). One genomic region with the largest effects on tooth number, tooth plate area and intertooth spacing maps to chromosome 21 and contains a cis-regulatory allele of the Bone morphogenetic protein 6 (Bmp6) gene (Cleves et al., 2014).

Little is known about the developmental mechanisms underlying this evolved tooth gain. Additionally, whether increased tooth number has evolved in other freshwater populations and, if so, whether similar or different developmental genetic mechanisms are used remain open questions. Here we identify a second derived freshwater stickleback population with convergently evolved tooth gain. In both freshwater populations, increased tooth number arises late in development and is associated with increased rates of new tooth formation in adults. However, the two freshwater populations have different timing of tooth number divergence, strikingly different spatial patterns of tooth addition in adults, and mostly non-overlapping genomic regions controlling tooth number. Thus, convergently evolved tooth gain in the two freshwater populations arises via largely distinct underlying developmental and genetic bases.

RESULTS

Two freshwater stickleback populations exhibit evolved tooth gain

To test the hypothesis that independently derived freshwater stickleback populations have repeatedly evolved increases in pharyngeal tooth number, we compared pharyngeal tooth morphology of three adult laboratory-reared stickleback populations: a marine population from Rabbit Slough (RABS) in Alaska, USA; a freshwater benthic population from Paxton Lake (PAXB) in British Columbia, Canada [previously shown to have evolved tooth gain (Cleves et al., 2014)]; and a second freshwater population from Cerrito Creek (CERC) in California, USA (supplementary material Fig. S1).

Sticklebacks have three sets of bilateral pharyngeal tooth plates near the back of the throat (Fig. 1A) (Anker, 1974): a ventral pair on the fifth ceratobranchials, hereafter referred to as ventral tooth plates (VTP); a small dorsal pair on the anterior pharyngobranchials, hereafter referred to as dorsal tooth plates 1 (DTP1); and a large dorsal pair on the posterior pharyngobranchials, hereafter referred to as dorsal tooth plates 2 (DTP2). Relative to ancestral marine fish, both freshwater populations have evolved increased ventral and dorsal DTP1 pharyngeal tooth number (Fig. 1B,D; supplementary material Fig. S2A-C). By contrast, no significant differences in DTP2 tooth number were found. As increased tooth number could result from a larger field of teeth and/or reduced intertooth spacing (Cleves et al., 2014), we quantified tooth plate area and intertooth spacing on the ventral pharyngeal tooth plate, which is the tooth plate with the largest magnitude difference in tooth number (Fig. 1C). Both freshwater populations have also evolved increased tooth plate area and decreased intertooth spacing compared with ancestral marine fish (Fig. 1E,F). Thus, both derived freshwater populations have convergently evolved increased ventral pharyngeal tooth number, increased tooth plate area and decreased intertooth spacing.

Two freshwater stickleback populations exhibit evolved tooth gain. (A) Location of three pharyngeal tooth plates in the stickleback head: VTP, ventral tooth plate on the fifth ceratobranchial; DTP1, dorsal tooth plate 1 (on the anterior pharyngobranchial); DTP2, dorsal tooth plate 2 (on the posterior pharyngobranchial); all three are bilaterally paired (only a unilateral set is shown). (B) Representative 3D projections of adult stickleback unilateral ventral tooth plates from three populations. Scale bar: 500 µm. (C) Depiction of tooth number, tooth plate area and intertooth spacing phenotypes. (D-F) Quantification of size-corrected total tooth number (D), tooth plate area (mm2) (E), and intertooth spacing (mm) (F) in ventral pharyngeal tooth plates of laboratory-reared adults. ***P<0.001 (one-way ANOVA using a Tukey-Kramer post-hoc test). (D-F) Respective sample size for each trait: RABS, n=19, 18, 18; PAXB, n=35, 32, 33; CERC, n=29, 29, 30.

Evolved tooth gain manifests late in development

Previous work showed that, compared with marine tooth number, the increased tooth number in PAXB fish manifests late in development (Cleves et al., 2014). We hypothesized that the independently derived freshwater population CERC also gains an increase in tooth number late in development. In support of this hypothesis, in sets of laboratory-reared developmental timecourse fish, both freshwater populations had similar tooth numbers to marine fish early in development. Later in development, however, CERC diverges earliest by ∼10-15 mm, whereas PAXB diverges slightly later than CERC at ∼20-25 mm (Fig. 2). Post 25 mm, both freshwater populations continue to increase total tooth number while marine tooth number plateaus.

In both freshwater populations, evolved tooth gain manifests late in development. Developmental timecourse of total ventral pharyngeal tooth number in the marine (RABS) and two freshwater (PAXB and CERC) populations. Total length is used as a proxy for age. CERC tooth number diverges at ∼10-15 mm [binned CERC versus PAXB, and CERC versus RABS: P<0.01; PAXB versus RABS: not significant (ns); one-way ANOVA using a Tukey-Kramer post-hoc test], whereas PAXB tooth number diverges at ∼20-25 mm (PAXB versus RABS, and CERC versus RABS: P<0.01; PAXB versus CERC: ns). Previously published points for RABS and PAXB are shown in gray in supplementary material Fig. S3.

As fish replace their teeth continuously, the differences in tooth number could result from an increase in new tooth formation and/or from a difference in tooth shedding dynamics. We hypothesized that the increased tooth number in freshwater fish results from a developmentally late increase in the tooth replacement rate, with more newly forming replacement teeth retained on the tooth plate. This model predicts that tooth germ number would differ at late but not early developmental stages. To test this hypothesis, we cut serial sections across different time points of each population to compare developing tooth germs over time. Similar to other vertebrates, stickleback teeth form at the interface of the epithelium and mesenchyme following stereotypic tooth development stages (these stages are reviewed by Thesleff, 2003) (Fig. 3A). At 15 mm and 25 mm, the populations do not have significantly different germ numbers, but by 25 mm both freshwater populations are trending towards having more developing germs. By 40 mm, both freshwater populations had significantly more tooth germs than marine fish, showing that both high-toothed freshwater populations form more teeth late in development and that the change in tooth number cannot only be attributed to differential tooth loss rates (Fig. 3B).

Tooth germ number, but not area, differs between marine and freshwater fish late in development. (A) Stereotypic stages of tooth development from initial budding to tooth replacement, with schematic representations above and 6 µm stickleback sections beneath. Scale bars: 25 µm. The white dotted line outlines the adult tooth in an adjacent section. (B) Number of developing tooth germs from serially sectioned animals at 15, 25 and 40 mm across populations. n=5 for each population, except n=6 for 25 mm RABS and n=4 for 40 mm RABS and PAXB. (C) Tooth germ area at early to mid-bell stage. 15 mm: n=37 RABS, n=23 PAXB, n=28 CERC; 25 mm: n=33 RABS, n=36 PAXB, n=44 CERC; 40 mm: n=70 RABS, n=85 PAXB, n=72 CERC. No pairwise comparisons are significant. Average germ size for each animal between populations was also not significant. (D) Distribution of tooth germs by developmental stage from post tooth number divergence. Pooled 25 and 40 mm; n=200 RABS, n=254 PAXB, n=244 CERC. **P<0.01, *P<0.05 (one-way ANOVA using a Tukey-Kramer post-hoc test).

During the development of teeth and other epithelial appendages that develop from placodes, lateral signals from placodal cells inhibit interplacodal cells from adopting placode fates (Chuong et al., 2013; Jung et al., 1998; Mou et al., 2011; Noramly and Morgan, 1998). We hypothesized that the derived increase in tooth number in freshwater fish might result from smaller tooth germs, which may generate a reduced lateral inhibition signal, resulting in smaller intertooth spaces and more teeth. To test this, we measured tooth germ size by quantifying the area of individual developing tooth germs at early to mid-bell stage between populations at three time points: 15, 25 and 40 mm. Contrary to this hypothesis, tooth germ area was not significantly different between populations at each time point, although CERC trended towards exhibiting smaller germ size (Fig. 3C). Alternatively, the increase in tooth number could result from an additional wave of late-forming primary teeth, which would predict a shift towards younger germ stages in the freshwater populations. However, comparing the distribution of germ stages in all three populations revealed no significant differences (Fig. 3D), arguing against a model in which an additional single wave of teeth is added late, but instead suggesting differential replacement dynamics.

We further tested the hypothesis that tooth size might differ between populations, and that smaller teeth in freshwater fish might result in a smaller zone of lateral inhibition (Osborn, 1971, 1978), by comparing tooth size from serial sections of erupted adult functional teeth. We found the adult teeth in both freshwater populations to be significantly narrower, but not shorter, than marine teeth (supplementary material Fig. S4). In addition to possibly creating a smaller zone of lateral inhibition, decreased tooth width might indicate reduced time retained on the tooth plate in freshwater fish, further suggesting a difference in tooth cycling dynamics.

Increased rate of new tooth formation late in development underlies evolved tooth gain

To further test the hypothesis that increased tooth number in freshwater fish results from increased replacement rates, we quantified the rate of tooth replacement in adult fish using a pulse-chase method with vital dyes to mark new tooth formation. By pulsing first with Alizarin, waiting 2 weeks, then chasing with Calcein, ossifying teeth are marked at two points in time with red and green fluorescence, respectively, allowing the visualization of new teeth that formed between the two dye soaks (Calcein-positive, Alizarin-negative teeth; Fig. 4A). Using this method, we found that both freshwater populations have an increased number of new teeth compared with marine fish (Fig. 4B). To account for the total difference in tooth number between populations, we divided the number of new teeth by the total tooth number to quantify a normalized rate of tooth gain. Both freshwater populations have a similarly increased normalized rate of tooth gain as compared with marine fish, both in adults and in ∼20 mm juveniles (Fig. 4C; supplementary material Fig. S5).

Pulse-chase reveals that both freshwater populations have elevated rates of new tooth formation. (A) Schematic of pulse-chase method using Alizarin and Calcein to mark developing teeth in living fish. Examples of a field of teeth (right) and individually classified teeth (beneath) are included. Alizarin is false colored magenta. White asterisks denote new teeth. (B) Number of new teeth. (C) Normalized rates of tooth gain (new teeth divided by total teeth). ***P<0.001 (one-way ANOVA using a Tukey-Kramer post-hoc test). (B,C) Sample size: n=33 RABS, n=25 PAXB, n=22 CERC.

As tooth loss rates during replacement could also affect tooth number, we tested the hypothesis that freshwater fish also have differential tooth shedding rates. Because we quantified the number of teeth observed in the developmental timecourses, as well as the new tooth gain rates quantified by pulse-chase experiments at both early and late stages, the number of teeth shed in each population could be inferred. We found that tooth shedding rates also differ between marine and freshwater populations (Table 1). These data show that two freshwater populations not only gain teeth late at an increased rate, but also shed teeth at a different rate, suggesting that the entire tooth replacement program has been sped up.

Localization of new teeth varies between freshwater populations

To examine whether marine and freshwater populations add new teeth in similar spatial patterns, we marked the position of newly formed teeth in adults. Surprisingly, we found that adult PAXB fish preferentially form new teeth on the medial edge or off the tooth plate medially, whereas CERC fish and marine RABS fish form most new teeth on the tooth plate, without an apparent medial bias (Fig. 5A). Comparing the number of new teeth off the tooth plate medially, PAXB is significantly different to CERC (Fig. 5B). However, the number of new teeth on the tooth plate is not significantly different between the two freshwater populations (Fig. 5C). Comparing total numbers of teeth on and off the tooth plate for all three populations (supplementary material Table S1) shows that although PAXB makes more new teeth off the tooth plate than either CERC or RABS, the number of total teeth on the tooth plate is still significantly larger in PAXB compared with CERC and RABS. Therefore, distinct developmental mechanisms in the two high-toothed freshwater populations result in different timing of tooth number divergence and different spatial patterns of new tooth formation, supporting a different mechanism of evolved tooth gain.

Unique genetic basis of evolved tooth gain

To begin to understand the genetic basis of evolved tooth gain in the CERC population, we performed genome-wide linkage mapping of tooth patterning traits. Previous work on a large PAXB×marine F2 cross identified five genomic regions controlling evolved tooth gain in PAXB fish (Miller et al., 2014). We generated a CERC×marine F2 cross and determined genome-wide genotypes using Genotyping-by-Sequencing (GBS) (Elshire et al., 2011; Glazer et al., 2015) to test whether the convergently evolved tooth gain in freshwater fish (PAXB and CERC) occurs through a similar genetic architecture. Since, during development, CERC fish gain teeth earlier than PAXB fish (Fig. 2) and form new teeth in adults in a different spatial pattern (Fig. 5), we hypothesized that the genetic basis controlling evolved tooth gain would differ in at least some respects between the two high-toothed freshwater populations.

Supporting this hypothesis, we identified six genomic regions (quantitative trait loci, or QTL) controlling ventral pharyngeal tooth patterning in the CERC cross (Fig. 6; supplementary material Fig. S7, Tables S2 and S3), including five tooth number QTL, two intertooth spacing QTL, and no area QTL. One tooth number and one spacing QTL map to the same region on chromosome 18. In these CERC×marine F2 fish, as was found for a PAXB×marine F2 cross (Cleves et al., 2014), tooth number is highly correlated with tooth plate area and intertooth spacing, yet tooth plate area and intertooth spacing were not significantly correlated with each other (supplementary material Fig. S6), further supporting the idea that tooth plate area and intertooth spacing are genetically separable. We also detected two DTP1 tooth number QTL and a single DTP2 tooth number QTL (supplementary material Fig. S8, Tables S2 and S3). Of all identified CERC cross QTL, only one QTL on chromosome 21 overlaps the QTL previously identified in the PAXB cross (Miller et al., 2014; Cleves et al., 2014) (Fig. 6). However, the peak marker for the PAXB QTL is not in the CERC interval, suggesting that these might be two distinct loci.

Largely distinct genetic bases underlie evolved tooth gain in two high-toothed freshwater populations. Summary of identified tooth patterning QTL from a CERC×marine F2 cross (this study) compared with a PAXB×marine F2 cross (Cleves et al., 2014; Miller et al., 2014). Each black horizontal line represents a chromosome and each vertical line is a genetic marker. Each colored bar represents the 1.5 LOD interval with the black dot denoting the peak marker. The overlap between CERC and PAXB QTL is depicted in the Venn diagram.

The QTL on chromosome 21 has the largest effect on tooth number in each cross, and the PAXB QTL has recently been associated with cis-regulatory changes in an excellent candidate gene, Bmp6 (Cleves et al., 2014). Candidate genes within the CERC cross QTL include another BMP pathway member, Bmp7a, and a downstream effector of BMP signaling, Msxe, both located on chromosome 17. The mammalian homologs of Bmp7a and Msxe cause tooth agenesis when deleted in mice (Satokata and Maas, 1994; Zouvelou et al., 2009). Another candidate gene, Pitx2, maps near the peak marker of the chromosome 4 QTL and is expressed early in the tooth field and later in the epithelium of both primary and replacement teeth in other fish (Smith et al., 2009b).

Overall, the largely non-overlapping sets of genomic regions controlling dental patterning in PAXB and CERC suggest that the convergent evolution of tooth gain in these two freshwater populations is controlled by largely distinct genetic mechanisms.

DISCUSSION

Evolved tooth gain occurs through a developmentally late increased rate of new tooth formation in two independently derived freshwater populations

Here we identify a second derived freshwater stickleback population (Cerrito Creek, CERC) that has evolved more teeth than ancestral marine fish. This increase in tooth number, like the increased tooth number in the Canadian Paxton benthic (PAXB) population (Cleves et al., 2014), occurs at least in part through an expansion of the tooth plate area (tooth field) as well as a decrease in intertooth spacing. In both freshwater populations, the increased tooth number occurs late in development, is associated with an increased number of tooth germs in juveniles and adults, and an increased rate of new tooth formation in adults. Thus, evolved differences have resulted in the convergent evolution of changes in dental patterning in the two independently derived freshwater populations. In freshwater×marine F2 crosses from both freshwater populations, tooth number is highly correlated with tooth plate area (field size) and intertooth spacing, whereas tooth plate area and intertooth spacing are not correlated. This lack of correlation between tooth plate area and intertooth spacing suggests separable mechanisms for specifying the area of the tooth plate and the spacing of the teeth, which is supported by findings in mice that tooth field size is specified by Osr2 without any reported tooth spacing phenotype (Zhang et al., 2009).

Both freshwater populations have an increased number of teeth through an increase in tooth germ number, ruling out the possibility that the differences in adult tooth number arise solely through differential shedding dynamics. Despite having more developing tooth germs, the germs are not smaller in area in the high-toothed freshwater populations, arguing against an increase in tooth number via reduced lateral inhibition signals due to a smaller tooth germ. Unlike in cichlids, where developing tooth germ size has been shown to correlate with intertooth spacing (Fraser et al., 2008), we found no significant difference in germ sizes between populations despite different intertooth spacing. However, this cichlid study measured spacing of the first few Shh-expressing germs in the oral jaws of wholemount embryos, whereas we measured pharyngeal tooth germ size in histological sections and pharyngeal tooth spacing in juveniles and adults by ossified tooth pattern. Nevertheless, both freshwater populations have adult teeth that are narrower than marine teeth, which could result in a reduced zone of inhibition from adult teeth, perhaps consistent with the observed activation of the tooth replacement process in alligators upon adult tooth removal (Wu et al., 2013). The increased number of tooth germs combined with the increased new tooth formation rates in adults support a model (Fig. 7) whereby the tooth replacement program has been sped up in the two independently derived freshwater populations, and this increased replacement rate underlies evolved tooth gain.

Model for convergent evolution of tooth gain in two freshwater populations. Evolved tooth gain in two independently derived freshwater stickleback populations (PAXB and CERC) occurs through increased tooth replacement rates and multiple distinct mechanisms, such as the different spatial placement of new teeth and a largely non-overlapping genetic basis. Shading indicates preferred regions of new tooth placement. Green and red arrow size is representative of the relative levels of tooth gain and shedding rates between populations. The PAXB and CERC QTL on chromosome 21 overlap, whereas the PAXB and CERC QTL on chromosome 4 do not.

Most polyphyodonts, unlike diphyodont humans, have replacement teeth adjacent to the functional teeth they replace and that do not physically dislodge the older primary tooth. In basal polyphyodont vertebrates, like sharks, tooth replacement occurs in tooth families, where discrete tooth positions contain a developmentally staggered series of replacement teeth (Reif, 1984; Smith et al., 2009a). Although a few fish species, such as zebrafish, medaka and gobies, have been reported to have tooth families (Abduweli et al., 2014; Huysseune, 2006; Huysseune et al., 1998; Moriyama et al., 2010; Van der heyden and Huysseune, 2000), most teleosts lack obvious multigerm tooth families, instead appearing to replace teeth on an individual basis – as has been termed one-for-one replacement, such as in rainbow trout, Lake Malawi cichlids, Mexican tetra, among others (Atukorala and Franz-Odendaal, 2014; Bemis et al., 2005; Fraser et al., 2006, 2013; Kerr, 1960; Motta, 1984; Wakita et al., 1977). In both cases, replacement teeth can be present on the tooth plate before the previous tooth is shed and can contribute to the functional dentition. Recently, Tucker and Fraser (2014) proposed that dental diversity could arise in a system of continuous tooth replacement by shifting the replacement program to produce an adaptive advantage. Supporting that proposal, here we find that the rate of new tooth formation is significantly higher in both freshwater populations than in their marine counterpart, resulting in increased tooth number late in development. Although it is formally possible that newly formed teeth in adults could be late-forming primary teeth, we interpret the majority of late-forming new teeth to be replacement teeth based on their frequent proximity to large old teeth or craters of recently shed teeth.

Distinct developmental bases underlie convergently evolved tooth gain

A second main finding of this study is that despite converging on the same adult phenotype of increased tooth number through an increased rate of new tooth formation late in development, two independently derived freshwater stickleback populations have increased tooth number via distinct developmental mechanisms, with different timing of divergence and spatially different patterns of new tooth formation.

First, comparing the developmental timecourse trajectories shows that although both high-toothed freshwater populations increase tooth number late, but not early, the increase in tooth number appears to occur earlier in development in CERC (10-15 mm) than in PAXB (20-25 mm) fish. Second, although both freshwater populations add new teeth on and off the tooth plate late, many new teeth in PAXB fish form medially off the edge of the tooth plate whereas most new teeth in CERC fish form on the tooth plate. We hypothesize that newly formed teeth off the tooth plate in the PAXB population function to expand the area of the tooth plate, which is larger in PAXB than in marine or CERC fish, which add fewer teeth off the tooth plate. The different spatial patterns of new tooth formation could result from different programs of primary tooth placement (e.g. the PAXB population but not the CERC population might add a medial row of primary teeth late during development). Arguing against this model is the lack of any difference in the distribution of germ sizes in the three populations, instead suggesting a model of altered replacement dynamics. Together, our findings suggest that some features of tooth development appear more constrained (e.g. the size of early tooth germs, early larval tooth number) than others (e.g. the rate and the spatial pattern of new tooth formation in adults).

Distinct genetic bases underlie convergently evolved tooth gain

A third main finding of this study is that two independently derived freshwater stickleback populations have evolved more teeth via largely distinct genetic mechanisms. These different genetic mechanisms are perhaps surprising as previous work in sticklebacks has shown that the genetic basis of many derived traits, including loss of armored plates (Colosimo et al., 2005), reduced pelvis (Chan et al., 2010; Shapiro et al., 2004), reduced pigmentation (Miller et al., 2007), reduced gill raker number (Glazer et al., 2014) and increased branchial bone length (Erickson et al., 2014), have similar genetic bases in multiple freshwater populations. Largely distinct genetic bases of evolved tooth gain could result from differences in available genetic variation in the two freshwater populations, pleiotropy of tooth patterning with other traits that differ in the two freshwater populations, and/or different diets in the two freshwater niches being better processed by differently patterned pharyngeal jaws. Additionally, serially repeated structures, such as teeth, that might be functionally redundant could be less constrained genetically to evolve changes than previously studied traits.

Despite the polygenic nature of evolved tooth gain, our genome-wide linkage mapping using GBS identified eight unlinked genomic regions that control pharyngeal tooth patterning in the high-toothed CERC freshwater population. For ventral pharyngeal tooth patterning, we identified five tooth number QTL and two intertooth spacing QTL. Only one genomic region on chromosome 21 is shared between the two high-toothed freshwater populations. This QTL also has the largest effect on tooth number in each cross. However, the peak marker for the PAXB QTL is not included in the CERC QTL interval, suggesting the two chromosome 21 QTL might have distinct genetic bases as well. Thus, it appears that similar changes in morphology (more teeth) have evolved via largely distinct developmental genetic mechanisms, as has been found in sex comb patterning (Tanaka et al., 2009) and wing size (Zwaan et al., 2000) in Drosophila, trunk elongation in salamanders (Parra-Olea and Wake, 2001) and eye loss in different cavefish species (Stemmer et al., 2015).

A largely distinct genetic basis of evolved tooth gain was also detected for dorsal pharyngeal tooth number. We detected two genomic regions controlling tooth number on DTP1 and only a single genomic region controlling tooth number on DTP2, although DTP2 tooth number was not significantly different between marine and freshwater fish. However, CERC freshwater fish trended towards having more DTP2 teeth than marine fish (P=0.09). Also, detecting QTL does not require phenotypic differences between populations, as different populations can have the same quantitative phenotype due to different combinations of positive and negative allelic effects. None of the three detected QTL from the CERC cross had any significant effect on dorsal pharyngeal tooth number in the PAXB cross.

The genetic basis of dorsal and ventral tooth patterning is also largely modular, as two of the three dorsal tooth number QTL have no significant effects on ventral pharyngeal tooth number in either the CERC or PAXB cross. Similar modularity for evolved differences in dorsal and ventral pharyngeal tooth number was also previously reported in sticklebacks (Miller et al., 2014). Thus, tooth number is highly modular at a genetic level, with different loci controlling dorsal and ventral pharyngeal tooth number in both crosses. Modularity of the dentition can be seen across vertebrate lineages, as in Cypriniformes such as zebrafish, which have uncoupled tooth patterning in the dorsal and ventral pharynx, completely losing dorsal pharyngeal teeth while retaining ventral pharyngeal teeth (Stock, 2007). In zebrafish, the addition of a single transgene driving ubiquitous Ectodysplasin is sufficient to drive the formation of ancestrally lost dorsal pharyngeal teeth (Aigler et al., 2014). In mice, strong support for genetic modularity of the dentition has also been found. Dlx1/Dlx2 double mutants lack dorsal (maxillary) molars but other teeth are unaffected (Qiu et al., 1997; Thomas et al., 1997), and activin βA mutants lack incisors and ventral (mandibular) molars whereas dorsal molars are unaffected (Ferguson et al., 1998). Similarly, in Gli2–/–; Gli3+/ mice dorsal (maxillary) incisors are more severely affected than ventral (mandibular) incisors (Hardcastle et al., 1998).

Several outstanding candidate genes lie within the QTL detected in the CERC×marine cross. Pitx2 lies close to the peak marker on the chromosome 4 QTL and is required for tooth development in mice (Lu et al., 1999) and humans (Childers and Wright, 1986; Semina et al., 1996). Pitx2 is also expressed in the epithelium connecting the primary tooth to the replacement tooth in some polyphyodonts (Fraser et al., 2013; Smith et al., 2009b) and has been hypothesized to be important for the tooth replacement process. Pitx homeodomain proteins have been shown to bind a mouse Bmp4 tooth enhancer, with this binding site required for Bmp4 enhancer activity (Jumlongras et al., 2012). Pitx2 has also been shown to inhibit the BMP antagonists Bmper and Nog through miR200c in dental epithelium in mice (Cao et al., 2013) and to regulate the Wnt signaling pathway (Vadlamudi et al., 2005). Msxe, on chromosome 17, is a downstream effector of BMP signaling, and mutations in the mammalian ortholog, Msx1, cause tooth agenesis in mice (Satokata and Maas, 1994) and humans (Nieminen, 2009; Vastardis et al., 1996). Bmp7a, a close paralog of Bmp6, also lies on chromosome 17 in a region controlling tooth number in CERC, and has been shown to promote dental ossification when added exogenously (Sloan et al., 2000) and to be required for tooth development in mice (Zouvelou et al., 2009).

Although convergent evolution of increased tooth number has occurred using largely distinct sets of genes, different components of the same genetic circuitry might be altered in the two high-toothed populations (e.g. Bmp6, Bmp7, Msx1). Future work will test the hypothesis that the convergently evolved tooth gain presented here occurs through modulating different components of the BMP signaling pathway to altertooth replacement stem cell dynamics.

MATERIALS AND METHODS

Stickleback husbandry

Fish were raised at 18°C in 110 l aquaria in a common brackish salinity (3.5 g/l Instant Ocean salt, 0.217 ml/l 10% sodium bicarbonate). Fish were fed a common diet of live Artemia as young fry, live Artemia and frozen Daphnia as juveniles and frozen bloodworms and Mysis shrimp as adults. All experiments were performed with approval of the Institutional Animal Care and Use Committees of the University of California-Berkeley (protocol # R330).

Skeletal staining and visualization

Laboratory-reared fish were fixed in 10% neutral buffered formalin (NBF) overnight at 4°C, washed in water, and stained with 0.008% (>20 mm) or 0.004% (<20 mm) Alizarin Red S in 1% KOH for 24 h. Fish were rinsed again in water and cleared in 50% glycerol and 0.25% KOH. Branchial skeletons were dissected and mounted as described (Miller et al., 2014). Tooth number was scored on a Leica DM2500 under a TX2 filter (with PAXB adult tooth number in Fig. 1D from Cleves et al., 2014). Area and spacing measurements were performed as described (Cleves et al., 2014). Phenotype quantifications are left and right combined for tooth number and the average of left and right for area and spacing. Representative tooth plate z-stack projections were collected on a Zeiss 700 confocal microscope. See supplementary material Methods for details of statistical analysis and phenotype corrections.

Live vital dye bone staining was adapted from Kimmel et al. (2010) and performed by pulsing fish with 100 µg/ml Alizarin Red S buffered with 1 mM HEPES (pH 7.0) in tank water for 12 h in the dark. After replacing Alizarin with clean tank water, fish were returned to tanks for 14 days, and then chased with 50 µg/ml Calcein buffered with 1 mM sodium phosphate (pH 8.0) in tank water for 12 h in the dark. After replacing Calcein with clean tank water, fish were fixed overnight in 10% NBF at 4°C and stored in 100% ethanol in the dark at 4°C until dissection and clearing as described above. Preparations were phenotyped on a Leica DM2500 using GFP and TX2 filter sets. Two month pulse-chase was performed as described above with 50 µg/ml Alizarin Red S, 25 µg/ml Calcein, and 6 h dye soaks.

Histology

Fish were fixed in 10% NBF overnight at 4°C, dissected, and decalcified as required in Humason's formic acid A (Humason, 1962). Tissue was processed pre-embedding as described (Schulte-Merker, 2002) using Histoclear (National Diagnostics) in place of xylene. Tissue was transferred, oriented, and embedded in Paraplast (Fisher) using plastic molds. Serial sections were collected using a Microm HM340E (Thermo Scientific). Sections were baked on slides overnight at 50°C then stained with Hematoxylin and Eosin using a Varistain Gemini ES automated stainer (Thermo Scientific) and cover-slipped with Permount (Fisher) mounting media. Stained sections were imaged under brightfield optics on a Leica DM2500. See supplementary material Methods for details of tooth germ quantification.

Heat maps

Small, newly erupted teeth that (1) were in a deeper focal plane than adult teeth, (2) had a translucent enameloid cap and (3) had a clearly visible dental pulp (i.e. a cone within a cone visible with DIC optics) were counted and their position marked on an idealized tooth plate in ImageJ (Schneider et al., 2012). A custom R script generated bins across the tooth plate and assigned a color score based on the number of teeth within each bin per population using color schemes from ColorBrewer (http://colorbrewer2.org). Individual teeth were scored as off the tooth plate if >90% of the base of the tooth failed to overlap with the underlying tooth plate.

Preparation of Genotyping-by-Sequencing (GBS) libraries

DNA was isolated by phenol-chloroform extraction or with a DNeasy 96 Blood and Tissue Kit (Qiagen). Genomic DNA concentration was assessed using a NanoDrop 1000 spectrophotometer (Thermo Scientific) and by Quant-iT PicoGreen Assay (Invitrogen). GBS Illumina sequencing libraries were constructed as described (Elshire et al., 2011; Glazer et al., 2015). Briefly, genomic DNA was digested with ApeKI, ligated to Y-shaped adapters, and PCR amplified. Libraries were analyzed on an Agilent 2100 Bioanalyzer High-Sensitivity Chip for quality control and sequenced with 100 base pair, paired-end sequencing on an Illumina HiSeq 2000 sequencer. 174 F2 fish were barcoded into a single lane of Illumina sequencing together with 190 samples not used in this study. See supplementary material Methods for detail on read processing.

Quantitative trait loci (QTL) mapping

QTL mapping was initially performed with stepwiseqtl using Haley-Knott regressions in R/qtl (Broman and Sen, 2009). Scantwo penalty scores for tooth number, area and spacing were 3.9, determined via 1000 permutations at α=0.05. The top three models for each phenotype were identified and further explored using scanone and addqtl adjusting for QTL found using stepwise scanning. Genome-wide LOD (logarithm of the odds) significance thresholds for each phenotype were determined with scanone via 10,000 permutations at α=0.05 resulting in a median threshold of 3.9. QTL peaks, LOD scores and percent variance explained were calculated with refineqtl and fitqtl. PAXB×marine QTL were previously identified and included for comparison (Miller et al., 2014; Cleves et al., 2014). Genotypes, phenotypes and map used are listed in supplementary material Table S4.

Acknowledgements

We thank Emily Killingbeck for generating CERC cross sequencing libraries; Priscilla Erickson for helpful suggestions and generating a subset of the PAXB animals; Marvalee Wake for sectioning advice; Alisha Ellis for pulse-chase assistance; and Anthony Lee for excellent fish husbandry and phenotyping assistance.

Footnotes

Competing interests

The authors declare no competing or financial interests.

Funding

This work was supported in part by the National Institutes of Health (NIH) [R01-DE021475 to C.T.M.]; National Science Foundation (NSF) Graduate Research Fellowships (N.A.E., A.M.G., P.A.C.); an Achievement Rewards for College Scientists (ARCS) Fellowship (N.A.E.); and NIH Genetics Training Grant [5T32GM007127 to A.M.G., P.A.C.]. The Vincent J. Coates Genomics Sequencing Laboratory at UC Berkeley is generously supported by NIH S10 Instrumentation Grants [S10RR029668 and S10RR027303]. Deposited in PMC for release after 12 months.

Author contributions

N.A.E., A.M.G., P.A.C., C.T.M. conceived and designed the experiments; N.A.E., A.M.G., N.N.D., P.A.C. and R.M.A. performed the experiments; N.A.E., A.M.G., N.N.D., P.A.C. and C.T.M. analyzed the data; N.A.E. and C.T.M. wrote the manuscript, with input from all authors.

Supplementary material

Supplementary material available online at http://dev.biologists.org/lookup/suppl/doi:10.1242/dev.124248/-/DC1

References

  • Abduweli D., Baba O., Tabata M. J., Higuchi K., Mitani H. and Takano Y. (2014). Tooth replacement and putative odontogenic stem cell niches in pharyngeal dentition of medaka (Oryzias latipes). Microscopy63, 141-153. 10.1093/jmicro/dft085 [PubMed] [CrossRef] [Google Scholar]
  • Ahn Y. (2015). Signaling in tooth, hair, and mammary placodes. Curr. Top. Dev. Biol.111, 421-459. 10.1016/bs.ctdb.2014.11.013 [PubMed] [CrossRef] [Google Scholar]
  • Aigler S. R., Jandzik D., Hatta K., Uesugi K. and Stock D. W. (2014). Selection and constraint underlie irreversibility of tooth loss in cypriniform fishes. Proc. Natl. Acad. Sci. USA111, 7707-7712. 10.1073/pnas.1321171111 [PMC free article] [PubMed] [CrossRef] [Google Scholar]
  • Anker G. C. H. (1974). Morphology and kinetics of the head of the stickleback, Gasterosteus aculeatus. Trans. Zool. Soc. Lond.32, 311-416. 10.1111/j.1096-3642.1974.tb00030.x [CrossRef] [Google Scholar]
  • Atukorala A. D. S. and Franz-Odendaal T. A. (2014). Spatial and temporal events in tooth development of Astyanax mexicanus. Mech. Dev.134, 42-54. 10.1016/j.mod.2014.09.002 [PubMed] [CrossRef] [Google Scholar]
  • Atukorala A. D. S., Inohaya K., Baba O., Tabata M. J., Ratnayake R. A. R. K., Abduweli D., Kasugai S., Mitani H. and Takano Y. (2011). Scale and tooth phenotypes in medaka with a mutated ectodysplasin-A receptor: implications for the evolutionary origin of oral and pharyngeal teeth. Arch. Histol. Cytol.73, 139-148. 10.1679/aohc.73.139 [PubMed] [CrossRef] [Google Scholar]
  • Bei M. (2009). Molecular genetics of tooth development. Curr. Opin. Genet. Dev.19, 504-510. 10.1016/j.gde.2009.09.002 [PMC free article] [PubMed] [CrossRef] [Google Scholar]
  • Bell M. A. and Foster S. A. ed. (1994).
Источник: [https://torrent-igruha.org/3551-portal.html]
Digital Photo Slide Show 2005.2 serial key or number

Streamlined Construction of Silicon-Stereogenic Silanes by Tandem Enantioselective C–H Silylation/Alkene Hydrosilylation

A rhodium-catalyzed tandem enantioselective C–H silylation/alkene hydrosilylation of dihydrosilanes, which enables the streamlined construction of a wide range of silicon-stereogenic silanes, is successfully developed. This process involves a SiH2-steered highly enantioselective C–H silylation to furnish the corresponding desymmetric monohydrosilanes, which are subsequently trapped with alkenes in a stereospecific fashion to build functionally diverse asymmetrically tetrasubstituted silanes. This general strategy combines readily available dihydrosilanes and alkenes to construct various enantioenriched silicon-stereogenic silanes, including 9-silafluorenes, Si-bridged ladder compounds, and benzosilolometallocenes, in a single step with good to excellent yields and enantioselectivities.

Источник: [https://torrent-igruha.org/3551-portal.html]
.

What’s New in the Digital Photo Slide Show 2005.2 serial key or number?

Screen Shot

System Requirements for Digital Photo Slide Show 2005.2 serial key or number

Add a Comment

Your email address will not be published. Required fields are marked *