Release notes
BREAKING CHANGE: Renamed IDT-specific fields
Some names related to the DNA synthesis company [IDT](https://www.idtdna.com/) have been renamed to be more general. You will have to rename these in your own code for it to run:
- class `IDTFields` --> `VendorFields`
- field `Modification.idt_text` --> `Modification.vendor_code`
- field `Strand.idt` --> `Strand.vendor_fields`
Additionally, some keys in the JSON format for `.sc` files have changed as well. Scadnano (both the web interface and the Python package) should be able to read files with the old keys and convert them to the new keys upon saving. However, if you are manually editing the `.sc` file then use the new keys.
Some IDT-specific methods remain, such as [`Design.write_idt_plate_excel_file`](https://scadnano-python-package.readthedocs.io/en/latest/#scadnano.Design.write_idt_plate_excel_file). These use the values in [`Strand.vendor_fields`](https://scadnano-python-package.readthedocs.io/en/latest/#scadnano.Strand.vendor_fields) and [`Modification.vendor_code`](https://scadnano-python-package.readthedocs.io/en/latest/#scadnano.Modification.vendor_code), but since the file format actually is specific to IDT, the method name is unchanged.
Although currently there are no methods for exporting to file formats recognized by other synthesis companies, in the meantime it should be straightforward to use the values in `VendorFields` to write custom code for such exports.
Field `Modification.id` removed
Previously, scadnano used `Modification.id` as a unique identifier for modifications.
The field `id` has been removed. Now, the field `vendor_code` is used as a unique identifier for the modification, where `id` was previously used.
Previously, if no `id` was specified, but `vendor_code`/`idt_text` was, then `id` was set to the latter. Such code should continue to work unmodified. But code referencing `id` should now refer to `vendor_code` instead. Additionally, if a script used the same `vendor_code` for different Modifications, then this will break. Each Modification should now have a unique `vendor_code` field.
Note that some vendors such as Eurofins use the same code for 5'/3' modifications (see issue 283). For this reason, the modifications internally are stored in a way that encodes their location (5', 3', internal). But for any two modifications of the same "location" (both 5' modifications, both 3' modifications, or both internal modifications) the `vendor_code` must be unique to the type of modification.
Commits
- 99e16d2: bumped version (David Doty) [285](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/285)
- bd12d4d: Update scadnano.py (David Doty) [285](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/285)
- dbc1058: Update scadnano.py (David Doty) [285](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/285)
- ddc8eee: Update README.md (David Doty) [285](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/285)
- 34211de: Update scadnano.py (David Doty) [285](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/285)
- 3ed8158: Update scadnano.py (David Doty) [285](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/285)
- 0bd7995: Update scadnano.py (David Doty) [285](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/285)
- d012f17: Update scadnano.py (David Doty) [285](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/285)
- 1c39fbc: closes 279: rename IDTFields to VendorFields (David Doty) [280](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/280)
- 5fefd41: re-ran examples to alter changed name of IDT fields (David Doty) [280](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/280)
- f679027: fixed docstrings (David Doty) [280](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/280)
- 65630f4: fixed docstrings (David Doty) [280](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/280)
- 3bb1373: Update scadnano.py (David Doty) [285](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/285)
- 6356689: closes 281: remove field `Modification.id` (David Doty) [282](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/282)
- 4c52f52: Update scadnano.py (David Doty) [285](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/285)
- 032ebde: Update scadnano.py (David Doty) [285](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/285)
- 4795224: Update scadnano.py (David Doty) [285](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/285)
- b72a5c7: Update scadnano.py (David Doty) [285](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/285)
- db9ec53: Update scadnano.py (David Doty) [285](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/285)
- 41d93e3: removed `Position3D.clone()`, which is unnecessary since `Position3D` is frozen (David Doty) [285](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/285)
- 6465434: Update scadnano.py (David Doty) [285](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/285)
- fc30862: Update scadnano.py (David Doty) [285](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/285)
- 37fa350: fixes 283: deal with non-unique Modification vendor codes (David Doty) [284](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/284)
- 09ad91b: Update scadnano.py (David Doty) [285](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/285)
- 82661bb: Update scadnano.py (David Doty) [285](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/285)