Releases: CitrineInformatics/citrine-python
GEMD v2.19.0 is released
A handy new option and a little more maintenance.
What's New
- We've added an option when deleting the contents of a dataset to skip templates. This means that, for a pesky corpus that needs to be rebuilt rather than just updated, your templates can persist, and thus all your tables and AI artifacts will still work. #853
Deprecated
- We've deprecated the code associated with some design space reuse approaches the platform no longer supports #852
Full Changelog: v2.17.1...v2.19.0
Citrine v2.17.1 is released!
One new feature for generative design, and a whole bunch of maintenance work.
What's New
- Structure exclusion! As you mutate your base molecules to explore new chemistries, you can now specify what types of groups you don't want to consider. #848
Improvements
- We've reworked the relationships between our various libraries, which should result in faster code in your Jupyter notebooks and ETL scripts.
- And a better safety net: we've added Python 3.11 to our regular testing protocol. #851
Full Changelog: v2.15.0...v2.17.1
Citrine v2.15.0 is released!
Bug fixes, a bit of refinement, and more bug fixes. No new features for this release, but several corrections to make our interfaces work more smoothly.
Improvements
- We've simplified the predictor classes to better reflect how the Platform operates. All Predictors are Graph Predictors and we've added a new class to represent the nodes of that graph. This should reduce the coding effort for defining and interacting with your models. #844
- We've added a method to the Predictor Collection for asynchronously making a default predictor, if that's more your style. #849
Fixes
- We've corrected some issues with how the SDK was defining ingredient ratio constraints #845
- We've made some unsupported routes a little more obvious #846
- And we've cleaned up test around some deprecated methods #847
- Don't forget that gemd-python also fixed some bugs with parsing complex unit expressions and serialization.
Full Changelog: v2.12.0...v2.15.0
Citrine v2.12.0 is released!
In this release of Citrine Python, we are happy to announce some new changes to make developer's lives easier. We've included new predictor endpoints that allows folks to programmatically fix stale models, simplified some of our code around path construction for file_link
s, and updated our allowed fingerprint methods in Generative Design. As always, we hope these changes keep you running smoothly.
What's New
- New endpoints to allow users to identify stale predictors (
predictors.is_stale(uid, version=version)
) and retrain stale predictors in-place (predictors.retrain_stale(uid, version=version)
). This allows users to retrain predictors that have become stale and use single prediction features and Candidate Modification. #843
Improvements
- Simplified our path construction & escaping by centralizing and refactoring methods. #840
- We've updated our documentation and valid fingerprint types accepted in Generative Design strategies. #842
Full Changelog: v2.11.2...v2.12.0
Citrine v2.11.2 is released!
Today's Citrine Python release is primarily solving a bug that was stinging our users. We're also simplifying our code to make Citrine Python easy to use and easy to learn.
Deprecated
- We've simplified some of our predictor nodes by deprecating the need to designate specific formulation descriptors for the
SimpleMixturePredictor
andIngredientsToSimpleMixturePredictor
(#838) and the capability to designate training data sources on any predictors outside of aGraphPredictor
(#839)
Fixes
- Squashed a bug in the deserialization of predictors leveraging our Chemical Formula Featurizer. #841
Full Changelog: v2.10.0...v2.11.2
Citrine v2.10.0 is released!
In this release of Citrine Python, we are excited to improve the quality of life for our users and our contributors. We make it easier to reference branches from IDs available in our web app and also include early functionality that allows users to directly ingest a pre-formatted file into GEMD objects. We've also simplified our testing strategy and included a few bug fixes, all in the effort to keep you running (and contributing) smoothly.
What's New
- You can now
get
the root of a branch, rather than the specific version, using the newBranchCollection.get_by_root_id
. #835 - As alpha functionality, you can now ingest CSV and/or Excel files directly into a GEMD structure, provided the files are formatted according to
gemd-ingest
guidelines. #837
Improvements
- Simplified and centralized testing for faster development. #834
Fixes
- Correction to value types for Chemical Formulae and Molecular Structures. #825
- Ensure labels are included in prediction requests. #836
Full Changelog: v2.8.0...v2.10.0
Citrine v2.8.0 is released!
With this release of Citrine Python, we are ecstatic to release two major pieces of functionality that have been on the wishlist of many of our users for quite some time. Users with valid Predictors can now submit single prediction tasks and return predictions on just one material. We also now support constraining the ratio of ingredients and labels, allowing users to tackle more complex formulation problems with our optimizer. Not to be outdone, we've also added the capability to use conditional "if" statements within Expression predictors. And if that wasn't enough, we continue to add improvements and simplifications to our python client to keep our users running smoothly.
What's New
- You can now make single prediction calls to a valid Predictor by providing it with a
SinglePredictRequest
, containing candidate information in the form akin to aDesignMaterial
. The returned object will contain all the values one is able to predict with the Predictor as well as uncertainty. See an example in our Predictor Documentation. #828, #833 - We now support constraints on the ratio of ingredients in FormulationDesignSpaces. By creating an
IngredientRatioConstraint
, you can constrain the ratio of any combination of ingredients and/or labels to any combination of ingredients and/or labels to be between a minimum and maximum value. We also allow multipliers for each ingredient and label in the numerator or denominator to encode statements such as "constrain 1 part Additive for every 100 parts Solvent". #827
Improvements
- Updated documentation to include the usage of "if" statements inside Expression Predictors. #832
- FileLinks in citrine python have been augmented to include much more additional metadata. Whereas the
dataset.files
endpoint once returned only the filename and url, we now also return created by, created on, and version number fields, among others. #831
Deprecated
- The
FileLink.process
method has been deprecated in favor of UI-driven async ingest methods. #829 - It is no longer needed to designate a
formulation_descriptor
on aGemTableDataSource
- the descriptor is automatically designated to aid future development. #830
Full Changelog: v2.2.1...v2.8.0
Citrine v2.2.1 is released!
A small follow up release for v2.0 taking care of some clean-up that escaped attention during our big release.
Improvements
- We've exposed
status_detail
for design executions, generative design executions, and PEW executions. (#822)
Deprecated
- Accordingly, we've deprecated
status_info
across those and all assets, making it a read-only property which pulls its values fromstatus_detail
.(#822)
Fixes
Full Changelog: v2.0.0...v2.2.1
Citrine version 2 is released!
We are thrilled to announce version 2.0.0 of citrine-python. This release is largely focused on streamlining the SDK, removing deprecated and unused concepts. Upgrading to version 2 will likely necessitate changes to existing scripts.
What's New
- Written documentation of the new "generative molecular design" feature: #816
- An optional random seed has been added to predict requests, to facilitate reproducibility: #819
- An optional
max_candidates
argument has been added to the design workflow executiontrigger
method. Set this value to a small number in order to run a quick design workflow execution. This can be useful for verifying that the candidates look as expected: #806
What's Gone
Processor
s have been removed. They can no longer be registered on the platform and are no longer specified as part of a design workflow. The platform will select the most appropriate processor for the problem.- A
DesignWorkflow
can no longer be registered without a branch. Please create aBranch
on theProject
and usebranch.design_workflows.register(...)
instead. - A new
Citrine
instance now requires keyword arguments forscheme
,host
, andport
. - The deprecated
SimpleMLPredictor
has been removed. Please use aGraphPredictor
instead. - The
.output
field ofAutoMLPredictor
has been removed. Please use.outputs
for a list of all outputs. - The deprecated
RootIdentifier
has been removed. Please useTerminalMaterialIdentifier
instead. - The deprecated
IngredientsToSimpleMixturePredictor
has been removed. Please useIngredientsToFormulationPredictor
instead. - Methods that reference GEMD objects no longer have separate
scope
andid
arguments. Please use aLinkByUID
object to specify a customer scope-id pair. - The deprecated
TableConfigCollection.get_with_version()
has been deprecated in favor of.get()
. - Assets can no longer be archived or restored by modifying the
archived
property. Instead, please use the.archive()
and.restore()
methods. status_info
has been removed in favor of the more detailed.status_detail
property.- The unused
name
anddescription
fields have been removed fromScore
s. Please do not specify them. - The deprecated
list_all()
method has been removed for GEMD object collections. Please uselist()
instead. - The deprecated
page
argument has been removed from all listing methods. - The deprecated
filter_by_attribute_bounds()
method has been removed in favor oflist_by_attribute_bounds()
. - When using
delete_contents()
to delete the contents of a dataset, theprompt_to_confirm
argument must now be specified. - The deprecated
convert_version_to_graph()
andconvert_version_and_update()
methods have been removed in favor ofconvert_to_graph()
andconvert_and_update()
. - The deprecated
ReportResource.get_version()
method has been removed in favor ofReportResource.get()
.
Full Changelog: v1.58.1...v2.0.0
Citrine v1.58.1 is released!
We're very excited about how this release will let our SDK users play with the latest platform features. This includes our new cross-dataset query tools, generative molecular design, and editing with platform-suggested candidates. Plus, of course, the normal maintenance and quality of life updates one expects.
What's New
- We've added some new variables to our GEMTables (#805, #812) that limit attribute and ingredient queries to the immediate material node of interest. These new variables were developed to cope with the extreme diversity we see when trying to meld data from across diverse data imports. This means that grabbing results from multiple experiments and feeding them into a single sequential learning workflow is much easier!
- If you're curious about what impact changing parameter values will have on one of our proposed candidates, you're in luck! Checkout the
PredictRequest
route our platform now offers (#808) - And if you'd like to see what our platform can do to conceive of novel ingredients and what impact those might have on your material performance, we now have the ability to explore the chemical space around the ingredients you have been using to see what a little tweak in those functional groups might enable (#804)
Improvements
- We've gotten rid of obsolete routes (#809)
- We've also updated our setup.py and dependencies to resolve some basic maintenance issues (#810, #814)
Full Changelog: v1.53.1...v1.58.1