riverine.references
===================

.. py:module:: riverine.references


Attributes
----------

.. autoapisummary::

   riverine.references._REF_COLUMNS
   riverine.references._REF_DTYPES
   riverine.references.RefFile
   riverine.references._REF_COLUMNS


Classes
-------

.. autoapisummary::

   riverine.references.Reference


Functions
---------

.. autoapisummary::

   riverine.references._new_ref_df
   riverine.references._parse_idt_coa
   riverine.references.load_reference


Module Contents
---------------

.. py:data:: _REF_COLUMNS
   :value: ['Name', 'Plate', 'Well', 'Concentration (nM)', 'Sequence']


.. py:data:: _REF_DTYPES

.. py:type:: RefFile
   :canonical: 'str | tuple[str, DecimalQuantity | str | dict[str, DecimalQuantity]]'


.. py:function:: _new_ref_df() -> pandas.DataFrame

.. py:class:: Reference

   .. py:attribute:: df
      :type:  pandas.DataFrame


   .. py:property:: loc
      :type: pandas.core.indexing._LocIndexer



   .. py:method:: __getitem__(key: Any) -> Any


   .. py:method:: __eq__(other: object) -> bool


   .. py:method:: __len__() -> int


   .. py:method:: plate_map(name: str, plate_type: riverine.locations.PlateType = PlateType.wells96) -> riverine.mixes.PlateMap

      Return a :class:`PlateMap` for a given plate name in the Reference.

      :param name: Name of plate to make a :class:`PlateMap` for.
      :param plate_type: Either :data:`PlateType.wells96` or :data:`PlateType.wells384`;
                         default is :data:`PlateType.wells96`.

      :returns: * a :class:`PlateMap` consisting of all strands in this Reference object from plate named
                * `name`. Currently always makes a 96-well plate.

      :raises ValueError:: If `name` is not the name of a plate in the reference.



   .. py:method:: search(name: str | None = None, plate: str | None = None, well: str | riverine.locations.WellPos | None = None, concentration: str | riverine.units.DecimalQuantity | None = None, sequence: str | None = None) -> Reference


   .. py:method:: get_concentration(name: str | None = None, plate: str | None = None, well: str | riverine.locations.WellPos | None = None, concentration: str | riverine.units.DecimalQuantity | None = None, sequence: str | None = None) -> riverine.units.DecimalQuantity


   .. py:method:: from_csv(filename_or_file: str | TextIO | os.PathLike[str]) -> Reference
      :classmethod:


      Load reference information from a CSV file.

      The reference information loaded by this function should be compiled manually, fitting the :ref:`mix reference` format, or
      be loaded with :func:`compile_reference` or :func:`update_reference`.



   .. py:method:: to_csv(filename: str | os.PathLike[str]) -> None


   .. py:method:: update(files: Sequence[RefFile] | RefFile, round: int = -1) -> Reference

      Update reference information.

      This updates an existing reference dataframe with new files, with the same methods as :func:`compile_reference`.



   .. py:method:: compile(files: Sequence[RefFile] | RefFile, round: int = -1) -> Reference
      :classmethod:


      Compile reference information.

      This loads information from the following sources:

      - An IDT plate order spreadsheet.  This does not include concentration.  To add concentration information, list it as a tuple of
      :code:`(file, concentration)`.
      - An IDT bulk order entry text file.
      - An IDT plate spec sheet.



.. py:data:: _REF_COLUMNS
   :value: ['Name', 'Plate', 'Well', 'Concentration (nM)', 'Sequence']


.. py:function:: _parse_idt_coa(df: pandas.DataFrame) -> pandas.DataFrame

.. py:function:: load_reference(filename_or_file: str | TextIO) -> Reference

