
     i                     ~    d Z ddlZddlZddlmZ ddlmZ ddlmZm	Z	 ddl
m
Z
mZ d	 Z G d
 dej                  ZdS )a  MMTF trajectory reader --- :mod:`MDAnalysis.coordinates.MMTF`
================================================================

Reads coordinates data from the Macromolecular Transmission Format format
(MMTF_). This should generally be a quicker alternative to PDB.

.. versionadded:: 0.16.0
.. versionchanged:: 0.20.0
   Unit cell is now properly treated as optional

Classes
-------

.. autoclass:: MMTFReader
   :members:

.. _MMTF: https://www.rcsb.org/news/feature/65a1af31c76ca3abcc925d0c

    N   )base   )Universe)cachedstore_init_arguments)dueDoic                 |    |                      d          rt          j        |           S t          j        |           S )Ngz)endswithmmtf
parse_gzipparse)fns    e/srv/www/vhosts/g4struct/public_html/venv/lib/python3.11/site-packages/MDAnalysis/coordinates/MMTF.py_parse_mmtfr   4   s4    	{{4 r"""z"~~    c                        e Zd ZdZdZed fd	            Zed             Z e	j
         ed          dd	
          d             Z xZS )
MMTFReadera6  Coordinate reader for the Macromolecular Transmission Format format (MMTF_).


    .. deprecated:: 2.8.0
       The MMTF format is no longer supported / serviced by the
       Protein Data Bank. The Reader will be removed in version 3.0.
       Users are encouraged to instead use alternative PDB formats.
    MMTFTNc                     d}t          j        |t                      t          t          |           j        |||fi | d S )NzMThe MMTF Reader is deprecated and will be removed in MDAnalysis version 3.0.0)warningswarnDeprecationWarningsuperr   __init__)selffilenameconvert_unitsn_atomskwargswmsg	__class__s         r   r   zMMTFReader.__init__G   sa    ' 	 	d.///(j$(mW	
 	
06	
 	
 	
 	
 	
r   c                 6    t          | t          j                  S )zGCan this Reader read *thing*?

        .. versionadded:: 1.0.0
        )
isinstancer   MMTFDecoder)things    r   _format_hintzMMTFReader._format_hintS   s     %!1222r   z10.1371/journal.pcbi.1005575zMMTF ReaderzMDAnalysis.coordinates.MMTF)descriptionpathc                 j   t          | j        t          j                  r| j        }nt	          | j                  }|j        | _         | j        | j        fi | j        x| _	        }|j
        |j        d d df<   |j        |j        d d df<   |j        |j        d d df<   |j        |j        |_        |S )Nr   r   r   )r&   r   r   r'   r   	num_atomsr!   	_Timestep
_ts_kwargstsx_coord_list_posy_coord_listz_coord_list	unit_cell
dimensions)r   topr0   s      r   _read_first_framezMMTFReader._read_first_frame[   s     dmT%566 	--CCdm,,C}%t~dlFFdoFFF"(1(1(1}$MBM	r   )TN)__name__
__module____qualname____doc__formatr   r   staticmethodr)   r	   dciter
   r8   __classcell__)r$   s   @r   r   r   ;   s          F	
 	
 	
 	
 	
 	
 3 3 \3 SY*++!*  
  
    r   r   )r<   r   r    r   core.universer   lib.utilr   r   r	   r
   r   SingleFrameReaderBaser    r   r   <module>rF      s   0 &         $ $ $ $ $ $ 3 3 3 3 3 3 3 3          5 5 5 5 5+ 5 5 5 5 5r   