<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://webchemwiki.biodata.ceitec.cz/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Lukas</id>
	<title>WebChemistry Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://webchemwiki.biodata.ceitec.cz/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Lukas"/>
	<link rel="alternate" type="text/html" href="https://webchemwiki.biodata.ceitec.cz/Special:Contributions/Lukas"/>
	<updated>2026-04-21T19:13:21Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.44.0</generator>
	<entry>
		<id>https://webchemwiki.biodata.ceitec.cz/index.php?title=Mole:Plugins&amp;diff=2433</id>
		<title>Mole:Plugins</title>
		<link rel="alternate" type="text/html" href="https://webchemwiki.biodata.ceitec.cz/index.php?title=Mole:Plugins&amp;diff=2433"/>
		<updated>2017-10-22T08:32:14Z</updated>

		<summary type="html">&lt;p&gt;Lukas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Informations=&lt;br /&gt;
 {{large| &#039;&#039;&#039;Notice:&#039;&#039;&#039;}} MOLE 2.5 extension requires MOLE 2.5 binary and the other way round MOLE 2.0 extension requires 2.0 binary! PyMOL 2.0 is presently not supported.&lt;br /&gt;
&lt;br /&gt;
MOLE 2.5 provides a means how to take advantage of the MOLE algorithm in the environment of popular molecular browsers such as [http://pymol.org/ PyMOL] or [https://www.cgl.ucsf.edu/chimera/ UCSF Chimera]. Therefore, the results can be readily visualized and prepared for publication in high-quality figures. The extension is available for download [https://webchem.ncbr.muni.cz/Platform/AppsBin/Mole/2.5.17.4.24/Mole2_plugin.zip here].&lt;br /&gt;
&lt;br /&gt;
 Please note, that running MOLE software on any other platform but Windows, requires [http://mono-project.com Mono] to be installed &lt;br /&gt;
&lt;br /&gt;
[[File:Mole-Plugin.png|500px|thumb|center|MOLE 2.5 plugin]]&lt;br /&gt;
&lt;br /&gt;
=Working with the plugin=&lt;br /&gt;
* Start PyMol/Chimera from the writable directory&lt;br /&gt;
* Set up path to the &#039;&#039;&#039;working directory&#039;&#039;&#039;, &#039;&#039;&#039;MOLE 2.5 executable&#039;&#039;&#039;, &#039;&#039;optional:&#039;&#039; In case you are running MacOS or Linux(Unix), please specify &#039;&#039;&#039;mono executable.&lt;br /&gt;
* &#039;&#039;Optional:&#039;&#039; in order to get starting point suggestion from the CSA database, please specify CSA flat file location.&lt;br /&gt;
* Select input structure from the structure list&lt;br /&gt;
* Set calculation parameters&lt;br /&gt;
* Compute!&lt;br /&gt;
&lt;br /&gt;
=Installation=&lt;br /&gt;
==PyMOL==&lt;br /&gt;
Installation of the MOLE 2.5 extension in the PyMOL environment is fairly simple. First, select in the PyMOL menu &#039;&#039;Plugin&#039;&#039; -&amp;gt; &#039;&#039;Plugin Manager&#039;&#039;. Click &#039;&#039;Install New Plugin&#039;&#039; tab and select the *.zip directory with the programmatic extension. After the PyMOL restart, &#039;&#039;MOLE 2.5 extension&#039;&#039; can be found in the &#039;&#039;Plugin tab&#039;&#039;. The entire process is highlighted at the following figures:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&#039;packed-hover&#039;&amp;gt;&lt;br /&gt;
File:PyMOL_plugin_install_1.png | Fig. 1&lt;br /&gt;
File:PyMOL_plugin_install_2.png | Fig. 2&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Chimera==&lt;br /&gt;
Installation of the MOLE 2.5 extension in the UCSF Chimera environment can be summarized in the following steps:&lt;br /&gt;
* Click &#039;Favorites tab&#039; and select &#039;&#039;Add to Favorites/Toolbar&#039;&#039; (Fig. 1)&lt;br /&gt;
* Click &#039;Add button&#039; and select parent directory with the unzipped extension archive (Fig. 2)&lt;br /&gt;
&lt;br /&gt;
The MOLE 2.5 extension is available from the Tool icons menu by clicking on its icon and in the menu Tools-&amp;gt;Surface/Binding Analysis-&amp;gt; MOLE 2.5&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&#039;packed-hover&#039;&amp;gt;&lt;br /&gt;
File:Chimera_plugin_install_1.png | Fig. 1&lt;br /&gt;
File:Chimera_plugin_install_2.png | Fig. 2&lt;br /&gt;
File:Chimera_plugin_install_3.png | Fig. 3&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lukas</name></author>
	</entry>
	<entry>
		<id>https://webchemwiki.biodata.ceitec.cz/index.php?title=ValidatorDB:Plugin&amp;diff=2432</id>
		<title>ValidatorDB:Plugin</title>
		<link rel="alternate" type="text/html" href="https://webchemwiki.biodata.ceitec.cz/index.php?title=ValidatorDB:Plugin&amp;diff=2432"/>
		<updated>2017-07-19T15:21:47Z</updated>

		<summary type="html">&lt;p&gt;Lukas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ValidatorDB extension allows for download and display validation reports from the Protein Data Bank. This process is useful for analyses of structural discrepancies found in ligands and non-standard residues within the PDB archive. The plugin archive for PyMOL and UCSF Chimera software is available for download [https://webchem.ncbr.muni.cz/Platform/AppsBin/ValidatorDB/ValidatorDB_plugin.zip here].&lt;br /&gt;
 &lt;br /&gt;
=Installation=&lt;br /&gt;
==PyMOL==&lt;br /&gt;
Installation of the ValidatorDB extension in the PyMOL environment is fairly simple. First, select in the PyMOL menu &#039;&#039;Plugin&#039;&#039; -&amp;gt; &#039;&#039;Plugin Manager&#039;&#039;. Click &#039;&#039;Install New Plugin&#039;&#039; tab and select the *.zip directory with the programmatic extension. After the PyMOL restart, &#039;&#039;ValidatorDB extension&#039;&#039; can be found in the &#039;&#039;Plugin tab&#039;&#039;. The entire process is highlighted at the following figures:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&#039;packed-hover&#039;&amp;gt;&lt;br /&gt;
File:PyMOL_plugin_install_1.png | Fig. 1&lt;br /&gt;
File:PyMOL_plugin_install_2.png | Fig. 2&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Chimera==&lt;br /&gt;
Installation of the ValidatorDB extension in the UCSF Chimera environment can be summarized in the following steps:&lt;br /&gt;
* Click &#039;Favorites tab&#039; and select &#039;&#039;Add to Favorites/Toolbar&#039;&#039; (Fig. 1)&lt;br /&gt;
* Click &#039;Add button&#039; and select parent directory with the unzipped extension archive (Fig. 2)&lt;br /&gt;
&lt;br /&gt;
The ValiatorDB extension is available from the Tool icons menu by clicking on its icon and in the menu Tools-&amp;gt;Structure Analysis-&amp;gt; ValidatorDB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&#039;packed-hover&#039;&amp;gt;&lt;br /&gt;
File:Chimera_plugin_install_1.png | Fig. 1&lt;br /&gt;
File:Chimera_plugin_install_2.png | Fig. 2&lt;br /&gt;
File:Chimera_plugin_install_3.png | Fig. 3&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lukas</name></author>
	</entry>
	<entry>
		<id>https://webchemwiki.biodata.ceitec.cz/index.php?title=ValidatorDB:Plugin&amp;diff=2431</id>
		<title>ValidatorDB:Plugin</title>
		<link rel="alternate" type="text/html" href="https://webchemwiki.biodata.ceitec.cz/index.php?title=ValidatorDB:Plugin&amp;diff=2431"/>
		<updated>2017-07-19T15:21:31Z</updated>

		<summary type="html">&lt;p&gt;Lukas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ValidatorDB extension allows for download and display validation reports from the Protein Data Bank. This process is useful for analyses of structural discrepancies found in ligands and non-standard residues within the PDB archive. The plugin archive for PyMOL and UCSF Chimera software is availabe for download [https://webchem.ncbr.muni.cz/Platform/AppsBin/ValidatorDB/ValidatorDB_plugin.zip here].&lt;br /&gt;
 &lt;br /&gt;
=Installation=&lt;br /&gt;
==PyMOL==&lt;br /&gt;
Installation of the ValidatorDB extension in the PyMOL environment is fairly simple. First, select in the PyMOL menu &#039;&#039;Plugin&#039;&#039; -&amp;gt; &#039;&#039;Plugin Manager&#039;&#039;. Click &#039;&#039;Install New Plugin&#039;&#039; tab and select the *.zip directory with the programmatic extension. After the PyMOL restart, &#039;&#039;ValidatorDB extension&#039;&#039; can be found in the &#039;&#039;Plugin tab&#039;&#039;. The entire process is highlighted at the following figures:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&#039;packed-hover&#039;&amp;gt;&lt;br /&gt;
File:PyMOL_plugin_install_1.png | Fig. 1&lt;br /&gt;
File:PyMOL_plugin_install_2.png | Fig. 2&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Chimera==&lt;br /&gt;
Installation of the ValidatorDB extension in the UCSF Chimera environment can be summarized in the following steps:&lt;br /&gt;
* Click &#039;Favorites tab&#039; and select &#039;&#039;Add to Favorites/Toolbar&#039;&#039; (Fig. 1)&lt;br /&gt;
* Click &#039;Add button&#039; and select parent directory with the unzipped extension archive (Fig. 2)&lt;br /&gt;
&lt;br /&gt;
The ValiatorDB extension is available from the Tool icons menu by clicking on its icon and in the menu Tools-&amp;gt;Structure Analysis-&amp;gt; ValidatorDB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&#039;packed-hover&#039;&amp;gt;&lt;br /&gt;
File:Chimera_plugin_install_1.png | Fig. 1&lt;br /&gt;
File:Chimera_plugin_install_2.png | Fig. 2&lt;br /&gt;
File:Chimera_plugin_install_3.png | Fig. 3&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lukas</name></author>
	</entry>
	<entry>
		<id>https://webchemwiki.biodata.ceitec.cz/index.php?title=ValidatorDB:UserManual&amp;diff=2430</id>
		<title>ValidatorDB:UserManual</title>
		<link rel="alternate" type="text/html" href="https://webchemwiki.biodata.ceitec.cz/index.php?title=ValidatorDB:UserManual&amp;diff=2430"/>
		<updated>2017-07-19T15:20:11Z</updated>

		<summary type="html">&lt;p&gt;Lukas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ValidatorDB&#039;&#039;&#039; is a database of precomputed validation results for all ligands and non-standard residues in the Protein Data Bank (PDB). The molecules deemed relevant for validation are all ligands and non-standard residues with 7 or more heavy atoms. Standard nucleotides, standard amino acids and selenomethionine are not covered. The models from the wwPDB Chemical Component Dictionary (wwPDB CCD) are used as reference structures during validation. The database is updated on a weekly basis.&lt;br /&gt;
&lt;br /&gt;
Below you can find the &#039;&#039;&#039;ValidatorDB&#039;&#039;&#039; user manual, which contains all the information you need in order to make efficient use of &#039;&#039;&#039;ValidatorDB&#039;&#039;&#039;. Additional support is provided on the &#039;&#039;&#039;ValidatorDB&#039;&#039;&#039; web pages. When you first access the &#039;&#039;&#039;ValidatorDB&#039;&#039;&#039; page, you will find basic information in the &#039;&#039;&#039;Quick Help&#039;&#039;&#039; tab, and useful examples of database snippets in the &#039;&#039;&#039;Samples&#039;&#039;&#039; tab. Moreover, various interactive guides are accessible at all times by a green button at the top right corner of some tabs. We recommend that you make use of these as often as you need.&lt;br /&gt;
&lt;br /&gt;
===[http://www.slideshare.net/lukypravda/validatordb-first-time-user-guide-37728902 First time user guide to ValidatorDB]===&lt;br /&gt;
If you are a first time user, we recommend that you go through the basic presentation specifically prepared to help you get oriented.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
===[[ValidatorDB:Introduction | Introduction]]===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===[[ValidatorDB:Terminology | Terminology]]===&lt;br /&gt;
* [[ValidatorDB:Terminology#Residue | Residue ]]&lt;br /&gt;
* [[ValidatorDB:Terminology#Non-standard_residue | Non-standard residue ]]&lt;br /&gt;
* [[ValidatorDB:Terminology#Ligand | Ligand ]]&lt;br /&gt;
* [[ValidatorDB:Terminology#Molecule | Molecule ]]&lt;br /&gt;
* [[ValidatorDB:Terminology#Model | Model ]]&lt;br /&gt;
* [[ValidatorDB:Terminology#Input_motif | Input motif ]]&lt;br /&gt;
&lt;br /&gt;
===[[ValidatorDB:Principles | Principles]]===&lt;br /&gt;
* [[ValidatorDB:Principles#Validation_procedure | Validation procedure ]]&lt;br /&gt;
* [[ValidatorDB:Principles#Validation_analyses | Validation analyses ]]&lt;br /&gt;
* [[ValidatorDB:Principles#Validation_results | Validation results ]]&lt;br /&gt;
* [[ValidatorDB:Principles#Validation_reports | Validation reports ]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===[[ValidatorDB:Database_contents | Database contents]]=== &lt;br /&gt;
# [[ValidatorDB:Database_contents#Incomplete_structures | Incomplete structures ]]&lt;br /&gt;
# [[ValidatorDB:Database_contents#Complete_structures | Complete structures ]]&lt;br /&gt;
## [[ValidatorDB:Database_contents#Wrong_chirality | Wrong chirality ]]&lt;br /&gt;
## [[ValidatorDB:Database_contents#Correct_chirality | Correct chirality ]]&lt;br /&gt;
# [[ValidatorDB:Database_contents#Warnings | Warnings ]]&lt;br /&gt;
# [[ValidatorDB:Database_contents#Processing_warnings | Processing warnings ]]&lt;br /&gt;
----&lt;br /&gt;
===[[ValidatorDB:Database_organization | Database organization]]===&lt;br /&gt;
# [[ValidatorDB:Database_organization#Synopsis_page | Synopsis page ]]&lt;br /&gt;
## [[ValidatorDB:Database_organization#Search | Search ]]&lt;br /&gt;
## [[ValidatorDB:Database_organization#Overview | Overview ]]&lt;br /&gt;
## [[ValidatorDB:Database_organization#Details_by_molecule | Details by molecule ]]&lt;br /&gt;
## [[ValidatorDB:Database_organization#Details_by_PDB_entry | Details by PDB entry ]]&lt;br /&gt;
# [[ValidatorDB:Database_organization#Specifics_page | Specifics page ]]&lt;br /&gt;
## [[ValidatorDB:Database_organization#Overview_2 | Overview ]]&lt;br /&gt;
## [[ValidatorDB:Database_organization#Summary | Summary ]]&lt;br /&gt;
## [[ValidatorDB:Database_organization#Details | Details ]]&lt;br /&gt;
## [[ValidatorDB:Database_organization#Single_molecule_report | Single molecule report ]]&lt;br /&gt;
## [[ValidatorDB:Database_organization#Processing_warnings | Processing warnings ]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===[[ValidatorDB:Limitations| Limitations]]===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
===[[ValidatorDB:CaseStudies | Case studies]]===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
===[[ValidatorDB:Plugin | Molecular browsers extension ]]===&lt;br /&gt;
# [[ValidatorDB:Plugin#Installation#PyMOL | PyMOL ]]&lt;br /&gt;
# [[ValidatorDB:Plugin#Installation#Chimera | Chimera ]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
===[[ValidatorDB:Technical_details | Technical details ]]===&lt;/div&gt;</summary>
		<author><name>Lukas</name></author>
	</entry>
	<entry>
		<id>https://webchemwiki.biodata.ceitec.cz/index.php?title=ValidatorDB:Plugin&amp;diff=2429</id>
		<title>ValidatorDB:Plugin</title>
		<link rel="alternate" type="text/html" href="https://webchemwiki.biodata.ceitec.cz/index.php?title=ValidatorDB:Plugin&amp;diff=2429"/>
		<updated>2017-07-19T15:15:46Z</updated>

		<summary type="html">&lt;p&gt;Lukas: Created page with &amp;quot;ValidatorDB extension allows for download and display validation reports from the Protein Data Bank. This process is useful for analyses of structural discrepancies found in l...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ValidatorDB extension allows for download and display validation reports from the Protein Data Bank. This process is useful for analyses of structural discrepancies found in ligands and non-standard residues within the PDB archive.&lt;br /&gt;
 &lt;br /&gt;
=Installation=&lt;br /&gt;
==PyMOL==&lt;br /&gt;
Installation of the ValidatorDB extension in the PyMOL environment is fairly simple. First, select in the PyMOL menu &#039;&#039;Plugin&#039;&#039; -&amp;gt; &#039;&#039;Plugin Manager&#039;&#039;. Click &#039;&#039;Install New Plugin&#039;&#039; tab and select the *.zip directory with the programmatic extension. After the PyMOL restart, &#039;&#039;ValidatorDB extension&#039;&#039; can be found in the &#039;&#039;Plugin tab&#039;&#039;. The entire process is highlighted at the following figures:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&#039;packed-hover&#039;&amp;gt;&lt;br /&gt;
File:PyMOL_plugin_install_1.png | Fig. 1&lt;br /&gt;
File:PyMOL_plugin_install_2.png | Fig. 2&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Chimera==&lt;br /&gt;
Installation of the ValidatorDB extension in the UCSF Chimera environment can be summarized in the following steps:&lt;br /&gt;
* Click &#039;Favorites tab&#039; and select &#039;&#039;Add to Favorites/Toolbar&#039;&#039; (Fig. 1)&lt;br /&gt;
* Click &#039;Add button&#039; and select parent directory with the unzipped extension archive (Fig. 2)&lt;br /&gt;
&lt;br /&gt;
The ValiatorDB extension is available from the Tool icons menu by clicking on its icon and in the menu Tools-&amp;gt;Structure Analysis-&amp;gt; ValidatorDB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&#039;packed-hover&#039;&amp;gt;&lt;br /&gt;
File:Chimera_plugin_install_1.png | Fig. 1&lt;br /&gt;
File:Chimera_plugin_install_2.png | Fig. 2&lt;br /&gt;
File:Chimera_plugin_install_3.png | Fig. 3&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lukas</name></author>
	</entry>
	<entry>
		<id>https://webchemwiki.biodata.ceitec.cz/index.php?title=Mole:Plugins&amp;diff=2428</id>
		<title>Mole:Plugins</title>
		<link rel="alternate" type="text/html" href="https://webchemwiki.biodata.ceitec.cz/index.php?title=Mole:Plugins&amp;diff=2428"/>
		<updated>2017-07-19T15:11:42Z</updated>

		<summary type="html">&lt;p&gt;Lukas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Informations=&lt;br /&gt;
 {{large| &#039;&#039;&#039;Notice:&#039;&#039;&#039;}} MOLE 2.5 extension requires MOLE 2.5 binary and the other way round MOLE 2.0 extension requires 2.0 binary!&lt;br /&gt;
&lt;br /&gt;
MOLE 2.5 provides a means how to take advantage of the MOLE algorithm in the environment of popular molecular browsers such as [http://pymol.org/ PyMOL] or [https://www.cgl.ucsf.edu/chimera/ UCSF Chimera]. Therefore, the results can be readily visualized and prepared for publication in high-quality figures. The extension is available for download [https://webchem.ncbr.muni.cz/Platform/AppsBin/Mole/2.5.17.4.24/Mole2_plugin.zip here].&lt;br /&gt;
&lt;br /&gt;
 Please note, that running MOLE software on any other platform but Windows, requires [http://mono-project.com Mono] to be installed &lt;br /&gt;
&lt;br /&gt;
[[File:Mole-Plugin.png|500px|thumb|center|MOLE 2.5 plugin]]&lt;br /&gt;
&lt;br /&gt;
=Working with the plugin=&lt;br /&gt;
* Start PyMol/Chimera from the writable directory&lt;br /&gt;
* Set up path to the &#039;&#039;&#039;working directory&#039;&#039;&#039;, &#039;&#039;&#039;MOLE 2.5 executable&#039;&#039;&#039;, &#039;&#039;optional:&#039;&#039; In case you are running MacOS or Linux(Unix), please specify &#039;&#039;&#039;mono executable.&lt;br /&gt;
* &#039;&#039;Optional:&#039;&#039; in order to get starting point suggestion from the CSA database, please specify CSA flat file location.&lt;br /&gt;
* Select input structure from the structure list&lt;br /&gt;
* Set calculation parameters&lt;br /&gt;
* Compute!&lt;br /&gt;
&lt;br /&gt;
=Installation=&lt;br /&gt;
==PyMOL==&lt;br /&gt;
Installation of the MOLE 2.5 extension in the PyMOL environment is fairly simple. First, select in the PyMOL menu &#039;&#039;Plugin&#039;&#039; -&amp;gt; &#039;&#039;Plugin Manager&#039;&#039;. Click &#039;&#039;Install New Plugin&#039;&#039; tab and select the *.zip directory with the programmatic extension. After the PyMOL restart, &#039;&#039;MOLE 2.5 extension&#039;&#039; can be found in the &#039;&#039;Plugin tab&#039;&#039;. The entire process is highlighted at the following figures:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&#039;packed-hover&#039;&amp;gt;&lt;br /&gt;
File:PyMOL_plugin_install_1.png | Fig. 1&lt;br /&gt;
File:PyMOL_plugin_install_2.png | Fig. 2&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Chimera==&lt;br /&gt;
Installation of the MOLE 2.5 extension in the UCSF Chimera environment can be summarized in the following steps:&lt;br /&gt;
* Click &#039;Favorites tab&#039; and select &#039;&#039;Add to Favorites/Toolbar&#039;&#039; (Fig. 1)&lt;br /&gt;
* Click &#039;Add button&#039; and select parent directory with the unzipped extension archive (Fig. 2)&lt;br /&gt;
&lt;br /&gt;
The MOLE 2.5 extension is available from the Tool icons menu by clicking on its icon and in the menu Tools-&amp;gt;Surface/Binding Analysis-&amp;gt; MOLE 2.5&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&#039;packed-hover&#039;&amp;gt;&lt;br /&gt;
File:Chimera_plugin_install_1.png | Fig. 1&lt;br /&gt;
File:Chimera_plugin_install_2.png | Fig. 2&lt;br /&gt;
File:Chimera_plugin_install_3.png | Fig. 3&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lukas</name></author>
	</entry>
	<entry>
		<id>https://webchemwiki.biodata.ceitec.cz/index.php?title=File:Chimera_plugin_install_3.png&amp;diff=2427</id>
		<title>File:Chimera plugin install 3.png</title>
		<link rel="alternate" type="text/html" href="https://webchemwiki.biodata.ceitec.cz/index.php?title=File:Chimera_plugin_install_3.png&amp;diff=2427"/>
		<updated>2017-07-18T06:50:36Z</updated>

		<summary type="html">&lt;p&gt;Lukas: Lukas uploaded a new version of File:Chimera plugin install 3.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Lukas</name></author>
	</entry>
	<entry>
		<id>https://webchemwiki.biodata.ceitec.cz/index.php?title=Mole:Plugins&amp;diff=2426</id>
		<title>Mole:Plugins</title>
		<link rel="alternate" type="text/html" href="https://webchemwiki.biodata.ceitec.cz/index.php?title=Mole:Plugins&amp;diff=2426"/>
		<updated>2017-07-18T06:48:27Z</updated>

		<summary type="html">&lt;p&gt;Lukas: /* Chimera */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Informations=&lt;br /&gt;
 {{large| &#039;&#039;&#039;Notice:&#039;&#039;&#039;}} MOLE 2.5 extension requires MOLE 2.5 binary and the other way round MOLE 2.0 extension requires 2.0 binary!&lt;br /&gt;
&lt;br /&gt;
MOLE 2.5 provides a means how to take advantage of the MOLE algorithm in the environment of popular molecular browsers such as [http://pymol.org/ PyMOL] or [https://www.cgl.ucsf.edu/chimera/ UCSF Chimera]. Therefore, the results can be readily visualized and prepared for publication in high-quality figures. The extension is available for download [https://webchem.ncbr.muni.cz/Platform/AppsBin/Mole/2.5.17.4.24/Mole2_plugin.zip here].&lt;br /&gt;
&lt;br /&gt;
 Please note, that running MOLE software on any other platform but Windows, requires [http://mono-project.com Mono] to be installed &lt;br /&gt;
&lt;br /&gt;
[[File:Mole-Plugin.png|500px|thumb|center|MOLE 2.5 plugin]]&lt;br /&gt;
&lt;br /&gt;
=Working with the plugin=&lt;br /&gt;
* Start PyMol/Chimera from the writable directory&lt;br /&gt;
* Set up path to the &#039;&#039;&#039;working directory&#039;&#039;&#039;, &#039;&#039;&#039;MOLE 2.5 executable&#039;&#039;&#039;, &#039;&#039;optional:&#039;&#039; In case you are running MacOS or Linux(Unix), please specify &#039;&#039;&#039;mono executable.&lt;br /&gt;
* &#039;&#039;Optional:&#039;&#039; in order to get starting point suggestion from the CSA database, please specify CSA flat file location.&lt;br /&gt;
* Select input structure from the structure list&lt;br /&gt;
* Set calculation parameters&lt;br /&gt;
* Compute!&lt;br /&gt;
&lt;br /&gt;
=Installation=&lt;br /&gt;
==PyMOL==&lt;br /&gt;
Installation of the MOLE 2.5 extension in the PyMOL environment is fairly simple. First, select in the PyMOL menu &#039;&#039;Plugin&#039;&#039; -&amp;gt; &#039;&#039;Plugin Manager&#039;&#039;. Click &#039;&#039;Install New Plugin&#039;&#039; tab and select the *.zip directory with the programmatic extension. After the PyMOL restart, &#039;&#039;MOLE 2.5 extension&#039;&#039; can be found in the &#039;&#039;Plugin tab&#039;&#039;. The entire process is highlighted at the following figures:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&#039;packed-hover&#039;&amp;gt;&lt;br /&gt;
File:PyMOL_plugin_install_1.png | Fig. 1&lt;br /&gt;
File:PyMOL_plugin_install_2.png | Fig. 2&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Chimera==&lt;br /&gt;
Installation of the MOLE 2.5 extension in the UCSF Chimera environment is a bit complicated, but can be summarized in the following steps:&lt;br /&gt;
* Click &#039;Favorites tab&#039; and select &#039;&#039;Add to Favorites/Toolbar&#039;&#039; (Fig. 1)&lt;br /&gt;
* Click &#039;Add button&#039; and select parent directory with the unzipped extension archive (Fig. 2)&lt;br /&gt;
&lt;br /&gt;
The MOLE 2.5 extension is available from the Tool icons menu by clicking on its icon and in the menu Tools-&amp;gt;Surface/Binding Analysis-&amp;gt; MOLE 2.5&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&#039;packed-hover&#039;&amp;gt;&lt;br /&gt;
File:Chimera_plugin_install_1.png | Fig. 1&lt;br /&gt;
File:Chimera_plugin_install_2.png | Fig. 2&lt;br /&gt;
File:Chimera_plugin_install_3.png | Fig. 3&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lukas</name></author>
	</entry>
	<entry>
		<id>https://webchemwiki.biodata.ceitec.cz/index.php?title=Mole:Plugins&amp;diff=2425</id>
		<title>Mole:Plugins</title>
		<link rel="alternate" type="text/html" href="https://webchemwiki.biodata.ceitec.cz/index.php?title=Mole:Plugins&amp;diff=2425"/>
		<updated>2017-07-18T06:28:01Z</updated>

		<summary type="html">&lt;p&gt;Lukas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Informations=&lt;br /&gt;
 {{large| &#039;&#039;&#039;Notice:&#039;&#039;&#039;}} MOLE 2.5 extension requires MOLE 2.5 binary and the other way round MOLE 2.0 extension requires 2.0 binary!&lt;br /&gt;
&lt;br /&gt;
MOLE 2.5 provides a means how to take advantage of the MOLE algorithm in the environment of popular molecular browsers such as [http://pymol.org/ PyMOL] or [https://www.cgl.ucsf.edu/chimera/ UCSF Chimera]. Therefore, the results can be readily visualized and prepared for publication in high-quality figures. The extension is available for download [https://webchem.ncbr.muni.cz/Platform/AppsBin/Mole/2.5.17.4.24/Mole2_plugin.zip here].&lt;br /&gt;
&lt;br /&gt;
 Please note, that running MOLE software on any other platform but Windows, requires [http://mono-project.com Mono] to be installed &lt;br /&gt;
&lt;br /&gt;
[[File:Mole-Plugin.png|500px|thumb|center|MOLE 2.5 plugin]]&lt;br /&gt;
&lt;br /&gt;
=Working with the plugin=&lt;br /&gt;
* Start PyMol/Chimera from the writable directory&lt;br /&gt;
* Set up path to the &#039;&#039;&#039;working directory&#039;&#039;&#039;, &#039;&#039;&#039;MOLE 2.5 executable&#039;&#039;&#039;, &#039;&#039;optional:&#039;&#039; In case you are running MacOS or Linux(Unix), please specify &#039;&#039;&#039;mono executable.&lt;br /&gt;
* &#039;&#039;Optional:&#039;&#039; in order to get starting point suggestion from the CSA database, please specify CSA flat file location.&lt;br /&gt;
* Select input structure from the structure list&lt;br /&gt;
* Set calculation parameters&lt;br /&gt;
* Compute!&lt;br /&gt;
&lt;br /&gt;
=Installation=&lt;br /&gt;
==PyMOL==&lt;br /&gt;
Installation of the MOLE 2.5 extension in the PyMOL environment is fairly simple. First, select in the PyMOL menu &#039;&#039;Plugin&#039;&#039; -&amp;gt; &#039;&#039;Plugin Manager&#039;&#039;. Click &#039;&#039;Install New Plugin&#039;&#039; tab and select the *.zip directory with the programmatic extension. After the PyMOL restart, &#039;&#039;MOLE 2.5 extension&#039;&#039; can be found in the &#039;&#039;Plugin tab&#039;&#039;. The entire process is highlighted at the following figures:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&#039;packed-hover&#039;&amp;gt;&lt;br /&gt;
File:PyMOL_plugin_install_1.png | Fig. 1&lt;br /&gt;
File:PyMOL_plugin_install_2.png | Fig. 2&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Chimera==&lt;br /&gt;
Installation of the MOLE 2.5 extension in the UCSF Chimera environment is a bit complicated, but can be summarized in the following steps:&lt;br /&gt;
* Click &#039;Favorites tab&#039; and select &#039;&#039;Add to Favorites/Toolbar&#039;&#039; (Fig. 1)&lt;br /&gt;
* Click &#039;Add button&#039; and select parent directory with the unzipped extension archive (Fig. 2)&lt;br /&gt;
* Open IDLE console from the following location &#039;&#039;Tools&#039;&#039; -&amp;gt; &#039;&#039;General Controls&#039;&#039; -&amp;gt; &#039;&#039;IDLE&#039;&#039; (Fig. 3)&lt;br /&gt;
* Type in &#039;&#039;import FolderName&#039;&#039; (e.g. &#039;&#039;import MOLE2_5&#039;&#039;) in the IDLE console and press &#039;&#039;Enter&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
The MOLE 2.5 extension is available from the Tool icons menu by clicking on its icon.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&#039;packed-hover&#039;&amp;gt;&lt;br /&gt;
File:Chimera_plugin_install_1.png | Fig. 1&lt;br /&gt;
File:Chimera_plugin_install_2.png | Fig. 2&lt;br /&gt;
File:Chimera_plugin_install_3.png | Fig. 3&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lukas</name></author>
	</entry>
	<entry>
		<id>https://webchemwiki.biodata.ceitec.cz/index.php?title=Mole:Plugins&amp;diff=2424</id>
		<title>Mole:Plugins</title>
		<link rel="alternate" type="text/html" href="https://webchemwiki.biodata.ceitec.cz/index.php?title=Mole:Plugins&amp;diff=2424"/>
		<updated>2017-07-17T15:43:01Z</updated>

		<summary type="html">&lt;p&gt;Lukas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Informations=&lt;br /&gt;
 {{large| &#039;&#039;&#039;Notice:&#039;&#039;&#039;}} MOLE 2.5 extension requires MOLE 2.5 binary and the other way round MOLE 2.0 extension requires 2.0 binary!&lt;br /&gt;
&lt;br /&gt;
MOLE 2.5 provides a means how to take advantage of the MOLE algorithm in the environment of popular molecular browsers such as [http://pymol.org/ PyMOL] or [https://www.cgl.ucsf.edu/chimera/ UCSF Chimera]. Therefore, the results can be readily visualized and prepared for publication in high-quality figures. The extension is available for download [https://webchem.ncbr.muni.cz/Platform/AppsBin/Mole/2.5.17.4.24/Mole2_plugin.zip here].&lt;br /&gt;
&lt;br /&gt;
 Please note, that running MOLE software on any other platform but Windows, requires [http://mono-project.com Mono] to be installed &lt;br /&gt;
&lt;br /&gt;
[[File:Mole-Plugin.png|500px|thumb|center|MOLE 2.5 plugin]]&lt;br /&gt;
&lt;br /&gt;
=Installation=&lt;br /&gt;
&lt;br /&gt;
=Working with the plugin=&lt;br /&gt;
* Start PyMol/Chimera from the writable directory&lt;br /&gt;
* Set up path to the &#039;&#039;&#039;working directory&#039;&#039;&#039;, &#039;&#039;&#039;MOLE 2.5 executable&#039;&#039;&#039;, &#039;&#039;optional:&#039;&#039; In case you are running MacOS or Linux(Unix), please specify &#039;&#039;&#039;mono executable.&lt;br /&gt;
* &#039;&#039;Optional:&#039;&#039; in order to get starting point suggestion from the CSA database, please specify CSA flat file location.&lt;br /&gt;
* Select input structure from the structure list&lt;br /&gt;
* Set calculation parameters&lt;br /&gt;
* Compute!&lt;br /&gt;
&lt;br /&gt;
==PyMOL==&lt;br /&gt;
Installation of the MOLE 2.5 extension in the PyMOL environment is fairly simple. First, select in the PyMOL menu &#039;&#039;Plugin&#039;&#039; -&amp;gt; &#039;&#039;Plugin Manager&#039;&#039;. Click &#039;&#039;Install New Plugin&#039;&#039; tab and select the *.zip directory with the programmatic extension. After the PyMOL restart, &#039;&#039;MOLE 2.5 extension&#039;&#039; can be found in the &#039;&#039;Plugin tab&#039;&#039;. The entire process is highlighted at the following figures:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&#039;packed-hover&#039;&amp;gt;&lt;br /&gt;
File:PyMOL_plugin_install_1.png | Fig. 1&lt;br /&gt;
File:PyMOL_plugin_install_2.png | Fig. 2&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Chimera==&lt;br /&gt;
Installation of the MOLE 2.5 extension in the UCSF Chimera environment is a bit complicated, but can be summarized in the following steps:&lt;br /&gt;
* Click &#039;Favorites tab&#039; and select &#039;&#039;Add to Favorites/Toolbar&#039;&#039; (Fig. 1)&lt;br /&gt;
* Click &#039;Add button&#039; and select parent directory with the unzipped extension archive (Fig. 2)&lt;br /&gt;
* Open IDLE console from the following location &#039;&#039;Tools&#039;&#039; -&amp;gt; &#039;&#039;General Controls&#039;&#039; -&amp;gt; &#039;&#039;IDLE&#039;&#039; (Fig. 3)&lt;br /&gt;
* Type in &#039;&#039;import FolderName&#039;&#039; (e.g. &#039;&#039;import MOLE2_5&#039;&#039;) in the IDLE console and press &#039;&#039;Enter&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
The MOLE 2.5 extension is available from the Tool icons menu by clicking on its icon.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&#039;packed-hover&#039;&amp;gt;&lt;br /&gt;
File:Chimera_plugin_install_1.png | Fig. 1&lt;br /&gt;
File:Chimera_plugin_install_2.png | Fig. 2&lt;br /&gt;
File:Chimera_plugin_install_3.png | Fig. 3&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lukas</name></author>
	</entry>
	<entry>
		<id>https://webchemwiki.biodata.ceitec.cz/index.php?title=File:Mole-Plugin.png&amp;diff=2423</id>
		<title>File:Mole-Plugin.png</title>
		<link rel="alternate" type="text/html" href="https://webchemwiki.biodata.ceitec.cz/index.php?title=File:Mole-Plugin.png&amp;diff=2423"/>
		<updated>2017-07-17T15:33:27Z</updated>

		<summary type="html">&lt;p&gt;Lukas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Lukas</name></author>
	</entry>
	<entry>
		<id>https://webchemwiki.biodata.ceitec.cz/index.php?title=Mole:Plugins&amp;diff=2422</id>
		<title>Mole:Plugins</title>
		<link rel="alternate" type="text/html" href="https://webchemwiki.biodata.ceitec.cz/index.php?title=Mole:Plugins&amp;diff=2422"/>
		<updated>2017-07-12T14:53:19Z</updated>

		<summary type="html">&lt;p&gt;Lukas: Created page with &amp;quot; {{large| &amp;#039;&amp;#039;&amp;#039;Notice:&amp;#039;&amp;#039;&amp;#039;}} MOLE 2.5 extension requires MOLE 2.5 binary and the other way round MOLE 2.0 extension requires 2.0 binary!  MOLE 2.5 provides a means how to take ad...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; {{large| &#039;&#039;&#039;Notice:&#039;&#039;&#039;}} MOLE 2.5 extension requires MOLE 2.5 binary and the other way round MOLE 2.0 extension requires 2.0 binary!&lt;br /&gt;
&lt;br /&gt;
MOLE 2.5 provides a means how to take advantage of the MOLE algorithm in the environment of popular molecular browsers such as [http://pymol.org/ PyMOL] or [https://www.cgl.ucsf.edu/chimera/ UCSF Chimera]. Therefore, the results can be readily visualized and prepared for publication in high-quality figures. The extension is available for download here.&lt;br /&gt;
&lt;br /&gt;
=PyMOL=&lt;br /&gt;
Installation of the MOLE 2.5 extension in the PyMOL environment is fairly simple. First, select in the PyMOL menu &#039;&#039;Plugin&#039;&#039; -&amp;gt; &#039;&#039;Plugin Manager&#039;&#039;. Click &#039;&#039;Install New Plugin&#039;&#039; tab and select the *.zip directory with the programmatic extension. After the PyMOL restart, &#039;&#039;MOLE 2.5 extension&#039;&#039; can be found in the &#039;&#039;Plugin tab&#039;&#039;. The entire process is highlighted at the following figures:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&#039;packed-hover&#039;&amp;gt;&lt;br /&gt;
File:PyMOL_plugin_install_1.png | Fig. 1&lt;br /&gt;
File:PyMOL_plugin_install_2.png | Fig. 2&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Chimera=&lt;br /&gt;
Installation of the MOLE 2.5 extension in the UCSF Chimera environment is a bit complicated, but can be summarized in the following steps:&lt;br /&gt;
* Click &#039;Favorites tab&#039; and select &#039;&#039;Add to Favorites/Toolbar&#039;&#039; (Fig. 1)&lt;br /&gt;
* Click &#039;Add button&#039; and select parent directory with the unzipped extension archive (Fig. 2)&lt;br /&gt;
* Open IDLE console from the following location &#039;&#039;Tools&#039;&#039; -&amp;gt; &#039;&#039;General Controls&#039;&#039; -&amp;gt; &#039;&#039;IDLE&#039;&#039; (Fig. 3)&lt;br /&gt;
* Type in &#039;&#039;import FolderName&#039;&#039; (e.g. &#039;&#039;import MOLE2_5&#039;&#039;) in the IDLE console and press &#039;&#039;Enter&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
The MOLE 2.5 extension is available from the Tool icons menu by clicking on its icon.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&#039;packed-hover&#039;&amp;gt;&lt;br /&gt;
File:Chimera_plugin_install_1.png | Fig. 1&lt;br /&gt;
File:Chimera_plugin_install_2.png | Fig. 2&lt;br /&gt;
File:Chimera_plugin_install_3.png | Fig. 3&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lukas</name></author>
	</entry>
	<entry>
		<id>https://webchemwiki.biodata.ceitec.cz/index.php?title=File:PyMOL_plugin_install_1.png&amp;diff=2421</id>
		<title>File:PyMOL plugin install 1.png</title>
		<link rel="alternate" type="text/html" href="https://webchemwiki.biodata.ceitec.cz/index.php?title=File:PyMOL_plugin_install_1.png&amp;diff=2421"/>
		<updated>2017-07-12T14:49:02Z</updated>

		<summary type="html">&lt;p&gt;Lukas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Lukas</name></author>
	</entry>
	<entry>
		<id>https://webchemwiki.biodata.ceitec.cz/index.php?title=File:PyMOL_plugin_install_2.png&amp;diff=2420</id>
		<title>File:PyMOL plugin install 2.png</title>
		<link rel="alternate" type="text/html" href="https://webchemwiki.biodata.ceitec.cz/index.php?title=File:PyMOL_plugin_install_2.png&amp;diff=2420"/>
		<updated>2017-07-12T14:48:18Z</updated>

		<summary type="html">&lt;p&gt;Lukas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Lukas</name></author>
	</entry>
	<entry>
		<id>https://webchemwiki.biodata.ceitec.cz/index.php?title=File:Chimera_plugin_install_3.png&amp;diff=2419</id>
		<title>File:Chimera plugin install 3.png</title>
		<link rel="alternate" type="text/html" href="https://webchemwiki.biodata.ceitec.cz/index.php?title=File:Chimera_plugin_install_3.png&amp;diff=2419"/>
		<updated>2017-07-12T14:44:01Z</updated>

		<summary type="html">&lt;p&gt;Lukas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Lukas</name></author>
	</entry>
	<entry>
		<id>https://webchemwiki.biodata.ceitec.cz/index.php?title=File:Chimera_plugin_install_2.png&amp;diff=2418</id>
		<title>File:Chimera plugin install 2.png</title>
		<link rel="alternate" type="text/html" href="https://webchemwiki.biodata.ceitec.cz/index.php?title=File:Chimera_plugin_install_2.png&amp;diff=2418"/>
		<updated>2017-07-12T14:43:40Z</updated>

		<summary type="html">&lt;p&gt;Lukas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Lukas</name></author>
	</entry>
	<entry>
		<id>https://webchemwiki.biodata.ceitec.cz/index.php?title=File:Chimera_plugin_install_1.png&amp;diff=2417</id>
		<title>File:Chimera plugin install 1.png</title>
		<link rel="alternate" type="text/html" href="https://webchemwiki.biodata.ceitec.cz/index.php?title=File:Chimera_plugin_install_1.png&amp;diff=2417"/>
		<updated>2017-07-12T14:43:13Z</updated>

		<summary type="html">&lt;p&gt;Lukas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Lukas</name></author>
	</entry>
	<entry>
		<id>https://webchemwiki.biodata.ceitec.cz/index.php?title=Mole:News&amp;diff=2416</id>
		<title>Mole:News</title>
		<link rel="alternate" type="text/html" href="https://webchemwiki.biodata.ceitec.cz/index.php?title=Mole:News&amp;diff=2416"/>
		<updated>2017-07-12T14:12:02Z</updated>

		<summary type="html">&lt;p&gt;Lukas: Created page with &amp;quot;=MOLE 2.5 release=  Mole 2.5 release contains among several bugfixes these main features: * Support of the new PDB standard - the [http://mmcif.wwpdb.org/ mmCIF file format]....&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=MOLE 2.5 release=&lt;br /&gt;
&lt;br /&gt;
Mole 2.5 release contains among several bugfixes these main features:&lt;br /&gt;
* Support of the new PDB standard - the [http://mmcif.wwpdb.org/ mmCIF file format].&lt;br /&gt;
* Definition of user end points, where the channel should exit.&lt;br /&gt;
* Integration of [[PatternQuery:UserManual | PatternQuery language]] for definition channel start points as well as parts of the structure which should be discarded prior to the calculation&lt;br /&gt;
* New weight function suitable for pore identification, and improved weight function for identification of buried tunnels.&lt;br /&gt;
* Results can be exported in [https://cs.wikipedia.org/wiki/JavaScript_Object_Notation JSON format]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On the top of these features, which are available in the command-line version of the tool, other features are available on the web server&lt;br /&gt;
* Automatic identification of transmembrane pores&lt;br /&gt;
* Integration of &#039;&#039;[[LiteMol:UserManual | LiteMol Viewer]]&#039;&#039;, a powerful 3D molecular viewer which requires only modern web browser&lt;/div&gt;</summary>
		<author><name>Lukas</name></author>
	</entry>
	<entry>
		<id>https://webchemwiki.biodata.ceitec.cz/index.php?title=Mole:UserManual&amp;diff=2415</id>
		<title>Mole:UserManual</title>
		<link rel="alternate" type="text/html" href="https://webchemwiki.biodata.ceitec.cz/index.php?title=Mole:UserManual&amp;diff=2415"/>
		<updated>2017-07-12T13:58:10Z</updated>

		<summary type="html">&lt;p&gt;Lukas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Biomacromolecular channels and pores play significant biological roles, e.g., in molecular recognition and enzyme substrate specificity. We present an advanced software tool entitled MOLE 2.5, which has been designed to analyze molecular channels and pores. Benchmark tests against other available software tools showed that MOLE 2.5 is by comparison quicker, more robust and more versatile. As a new feature, MOLE 2.5 estimates physicochemical properties of the identified channels.&lt;br /&gt;
&lt;br /&gt;
===[[Mole:News | Mole 2.5 features]]===&lt;br /&gt;
----&lt;br /&gt;
===[[Mole:Plugins | Plugins]]===&lt;br /&gt;
# [[Mole:Plugins#PyMOL | PyMOL plugin]]&lt;br /&gt;
# [[Mole:Plugins#Chimera | Chimera plugin]]&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Lukas</name></author>
	</entry>
	<entry>
		<id>https://webchemwiki.biodata.ceitec.cz/index.php?title=Mole:UserManual&amp;diff=2414</id>
		<title>Mole:UserManual</title>
		<link rel="alternate" type="text/html" href="https://webchemwiki.biodata.ceitec.cz/index.php?title=Mole:UserManual&amp;diff=2414"/>
		<updated>2017-07-12T13:57:02Z</updated>

		<summary type="html">&lt;p&gt;Lukas: Created page with &amp;quot;Biomacromolecular channels and pores play significant biological roles, e.g., in molecular recognition and enzyme substrate specificity. We present an advanced software tool e...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Biomacromolecular channels and pores play significant biological roles, e.g., in molecular recognition and enzyme substrate specificity. We present an advanced software tool entitled MOLE 2.5, which has been designed to analyze molecular channels and pores. Benchmark tests against other available software tools showed that MOLE 2.5 is by comparison quicker, more robust and more versatile. As a new feature, MOLE 2.5 estimates physicochemical properties of the identified channels.&lt;br /&gt;
&lt;br /&gt;
===[[Mole:News | Mole 2.5 features]]===&lt;br /&gt;
----&lt;br /&gt;
===[[Mole:Plugins | Plugins]]===&lt;br /&gt;
====[[Mole:Plugins#PyMOL | PyMOL plugin]]====&lt;br /&gt;
====[[Mole:Plugins#Chimera | Chimera plugin]]====&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Lukas</name></author>
	</entry>
	<entry>
		<id>https://webchemwiki.biodata.ceitec.cz/index.php?title=LiteMol:Functionality&amp;diff=2396</id>
		<title>LiteMol:Functionality</title>
		<link rel="alternate" type="text/html" href="https://webchemwiki.biodata.ceitec.cz/index.php?title=LiteMol:Functionality&amp;diff=2396"/>
		<updated>2017-04-19T12:05:20Z</updated>

		<summary type="html">&lt;p&gt;Lukas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{large| &#039;&#039;&#039;LiteMol is a powerful and blazing-fast cross-platform tool for handling 3D macromolecular data in the browser. [https://webchemdev.ncbr.muni.cz/LiteMol/Viewer/ Try it now!]&#039;&#039;&#039;}}&lt;br /&gt;
&lt;br /&gt;
=Classic features=&lt;br /&gt;
* Supports all major structural data formats ([http://mmcif.wwpdb.org/ PDBx/mmcif], [https://www.wwpdb.org/documentation/file-format PDB], [http://pubs.acs.org/doi/pdf/10.1021/ci00007a012 SDF]).&lt;br /&gt;
* All common visualization models (&#039;balls-n-sticks&#039;/cartoon/Cα-trace/VDW spheres/surfaces).&lt;br /&gt;
* Displays x-ray electron densities and electric potential cryo-EM maps.&lt;br /&gt;
* Available as a [https://webchemdev.ncbr.muni.cz/LiteMol/Viewer/ standalone viewer] or as a [https://github.com/dsehnal/LiteMol library} for embedding into third party applications.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:LiteMol-Models.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
=Advanced features=&lt;br /&gt;
* Introduces the [https://github.com/dsehnal/BinaryCIF BinaryCIF] a compression format compatible with standard PDBx/mmCIF format &#039;&#039;greatly reducing&#039;&#039; amount of transferred data.&lt;br /&gt;
* [https://webchem.ncbr.muni.cz/CoordinateServer CoordinateServer] allows for streaming only parts of the structure models relevant for user deemed visualization. This further &#039;&#039;decreases&#039;&#039; the amount of &#039;&#039;transferred data&#039;&#039; and facilitates &#039;&#039;near instant responsiveness&#039;&#039; even for huge structures like ribosomes and viral capsids. All in your web browser.&lt;br /&gt;
* [http://webchem.ncbr.muni.cz/DensityServer DensityServer ] allows &#039;&#039;instant access&#039;&#039; to full resolution user deemed slices of &#039;&#039;electron density&#039;&#039; (e.g. binding sites) and down sampled surface of the entire biomacromolecular structure.&lt;br /&gt;
* Displays [https://www.wwpdb.org/validation/validation-reports PDB validation reports] and [[ValidatorDB:UserManual | ValidatorDB ligand validation]].&lt;br /&gt;
* Displays &#039;&#039;sequence annotations&#039;&#039; from [http://pfam.xfam.org/ Pfam], [https://www.ebi.ac.uk/interpro/ InterPro], [www.cathdb.info CATH], [http://scop.berkeley.edu/ SCOP], [http://www.uniprot.org/ UniProt].&lt;br /&gt;
* Visualizer which requires only an up to date &#039;&#039;web browser&#039;&#039; with no dependencies needed. Runs on all &#039;&#039;mobile devices&#039;&#039;.&lt;br /&gt;
* Minimal &#039;&#039;memory footprint&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:LiteMol-Performance.png|center|800px]]&lt;/div&gt;</summary>
		<author><name>Lukas</name></author>
	</entry>
	<entry>
		<id>https://webchemwiki.biodata.ceitec.cz/index.php?title=File:LiteMol-logo.png&amp;diff=2395</id>
		<title>File:LiteMol-logo.png</title>
		<link rel="alternate" type="text/html" href="https://webchemwiki.biodata.ceitec.cz/index.php?title=File:LiteMol-logo.png&amp;diff=2395"/>
		<updated>2017-04-13T15:22:34Z</updated>

		<summary type="html">&lt;p&gt;Lukas: Lukas uploaded a new version of File:LiteMol-logo.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Lukas</name></author>
	</entry>
	<entry>
		<id>https://webchemwiki.biodata.ceitec.cz/index.php?title=File:LiteMol-hierarchy.png&amp;diff=2394</id>
		<title>File:LiteMol-hierarchy.png</title>
		<link rel="alternate" type="text/html" href="https://webchemwiki.biodata.ceitec.cz/index.php?title=File:LiteMol-hierarchy.png&amp;diff=2394"/>
		<updated>2017-04-13T15:21:23Z</updated>

		<summary type="html">&lt;p&gt;Lukas: Lukas uploaded a new version of File:LiteMol-hierarchy.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Lukas</name></author>
	</entry>
	<entry>
		<id>https://webchemwiki.biodata.ceitec.cz/index.php?title=LiteMol:UserManual&amp;diff=2393</id>
		<title>LiteMol:UserManual</title>
		<link rel="alternate" type="text/html" href="https://webchemwiki.biodata.ceitec.cz/index.php?title=LiteMol:UserManual&amp;diff=2393"/>
		<updated>2017-04-13T15:14:43Z</updated>

		<summary type="html">&lt;p&gt;Lukas: /*  Hierarchy of Entities */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
[[File:LiteMol-logo.png | 350px | right]]&lt;br /&gt;
&#039;&#039;&#039;LiteMol&#039;&#039;&#039; is a web tool for visualization of protein structures. It is designed to be user-friendly yet flexible, interactive, and very fast even for extremely large protein structures. &#039;&#039;&#039;LiteMol&#039;&#039;&#039; can be run directly from your web browser.&lt;br /&gt;
&lt;br /&gt;
Apart from standard functionality of visualization tools, &#039;&#039;&#039;LiteMol&#039;&#039;&#039; can visualize electron densities, cryo-EM data, validation and annotation data from several databases.&lt;br /&gt;
&lt;br /&gt;
This user manual provides the necessary information about &#039;&#039;&#039;LiteMol&#039;s&#039;&#039;&#039; functionality and the instructions for its use. It also shows the most typical use cases with step by step instructions. Additional hints are available in &#039;&#039;&#039;LiteMol&#039;&#039;&#039; itself when hovering above the &#039;&#039;i&#039;&#039; icons.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;LiteMol&#039;&#039;&#039; is available at the following address: [https://webchemdev.ncbr.muni.cz/Litemol webchemdev.ncbr.muni.cz/Litemol].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
===[[LiteMol:Introduction | Introduction]]===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===[[LiteMol:Hierarchy | Hierarchy of Entities]]===&lt;br /&gt;
#[[LiteMol:Hierarchy#Structures| Structures]]&lt;br /&gt;
#[[LiteMol:Hierarchy#Visualization| Visualization]]&lt;br /&gt;
#[[LiteMol:Hierarchy#Annotations | Annotations]]&lt;br /&gt;
#[[LiteMol:Hierarchy#Raw Data | Raw Data]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===[[LiteMol:Functionality | Functionality]]===&lt;br /&gt;
#[[LiteMol:Functionality#Classic features| Features]]&lt;br /&gt;
#[[LiteMol:Functionality#Advanced features| Advanced]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===[[LiteMol:SelectionAlgebra | Selection Algebra]]===&lt;br /&gt;
#[[LiteMol:SelectionAlgebra#Basic queries| Basic]]&lt;br /&gt;
#[[LiteMol:SelectionAlgebra#Advanced queries| Advanced]]&lt;br /&gt;
#[[LiteMol:SelectionAlgebra#Logical queries| Logical]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===[[LiteMol:Use Cases | Use Cases]]===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===[[LiteMol:Embedding | Embedding in Your Web]]===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===[[LiteMol:Integration | Integration with other services]]===&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Lukas</name></author>
	</entry>
	<entry>
		<id>https://webchemwiki.biodata.ceitec.cz/index.php?title=LiteMol:Integration&amp;diff=2373</id>
		<title>LiteMol:Integration</title>
		<link rel="alternate" type="text/html" href="https://webchemwiki.biodata.ceitec.cz/index.php?title=LiteMol:Integration&amp;diff=2373"/>
		<updated>2017-04-10T15:00:54Z</updated>

		<summary type="html">&lt;p&gt;Lukas: Initiall commit&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;You can find &#039;&#039;&#039;LiteMol&#039;&#039;&#039; integrated into other services dealing with 3D macromolecular data.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery heights=70px mode=&amp;quot;packed-hover&amp;quot; caption=&amp;quot;Examples of integration&amp;quot;&amp;gt;&lt;br /&gt;
File:PDBe-letterhead-charcoal-RGB 2013.png | [http://www.ebi.ac.uk/pdbe/  Protein Data Bank in Europe]&lt;br /&gt;
File:Sugarbind_logo.jpg | [http://sugarbind.expasy.org SugarBindDB ]&lt;br /&gt;
File:Logo bandeau.png | [http://glyco3d.cermav.cnrs.fr/home.php Lectin3D]&lt;br /&gt;
File:GlycoSiteAlign.png | [http://glycoproteome.expasy.org/glycositealign/ GlycoSiteAlign]&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lukas</name></author>
	</entry>
	<entry>
		<id>https://webchemwiki.biodata.ceitec.cz/index.php?title=File:GlycoSiteAlign.png&amp;diff=2372</id>
		<title>File:GlycoSiteAlign.png</title>
		<link rel="alternate" type="text/html" href="https://webchemwiki.biodata.ceitec.cz/index.php?title=File:GlycoSiteAlign.png&amp;diff=2372"/>
		<updated>2017-04-10T14:31:42Z</updated>

		<summary type="html">&lt;p&gt;Lukas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Lukas</name></author>
	</entry>
	<entry>
		<id>https://webchemwiki.biodata.ceitec.cz/index.php?title=File:Logo_bandeau.png&amp;diff=2371</id>
		<title>File:Logo bandeau.png</title>
		<link rel="alternate" type="text/html" href="https://webchemwiki.biodata.ceitec.cz/index.php?title=File:Logo_bandeau.png&amp;diff=2371"/>
		<updated>2017-04-10T14:25:44Z</updated>

		<summary type="html">&lt;p&gt;Lukas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Lukas</name></author>
	</entry>
	<entry>
		<id>https://webchemwiki.biodata.ceitec.cz/index.php?title=File:Sugarbind_logo.jpg&amp;diff=2370</id>
		<title>File:Sugarbind logo.jpg</title>
		<link rel="alternate" type="text/html" href="https://webchemwiki.biodata.ceitec.cz/index.php?title=File:Sugarbind_logo.jpg&amp;diff=2370"/>
		<updated>2017-04-10T14:11:24Z</updated>

		<summary type="html">&lt;p&gt;Lukas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Lukas</name></author>
	</entry>
	<entry>
		<id>https://webchemwiki.biodata.ceitec.cz/index.php?title=File:PDBe-letterhead-charcoal-RGB_2013.png&amp;diff=2369</id>
		<title>File:PDBe-letterhead-charcoal-RGB 2013.png</title>
		<link rel="alternate" type="text/html" href="https://webchemwiki.biodata.ceitec.cz/index.php?title=File:PDBe-letterhead-charcoal-RGB_2013.png&amp;diff=2369"/>
		<updated>2017-04-10T14:05:16Z</updated>

		<summary type="html">&lt;p&gt;Lukas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Lukas</name></author>
	</entry>
	<entry>
		<id>https://webchemwiki.biodata.ceitec.cz/index.php?title=LiteMol:UserManual&amp;diff=2368</id>
		<title>LiteMol:UserManual</title>
		<link rel="alternate" type="text/html" href="https://webchemwiki.biodata.ceitec.cz/index.php?title=LiteMol:UserManual&amp;diff=2368"/>
		<updated>2017-04-10T13:59:31Z</updated>

		<summary type="html">&lt;p&gt;Lukas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
[[File:LiteMol-logo.png | 350px | right]]&lt;br /&gt;
&#039;&#039;&#039;LiteMol&#039;&#039;&#039; is a web tool for visualization of protein structures. It is designed to be user-friendly yet flexible, interactive, and very fast even for extremely large protein structures. &#039;&#039;&#039;LiteMol&#039;&#039;&#039; can be run directly from your web browser.&lt;br /&gt;
&lt;br /&gt;
Apart from standard functionality of visualization tools, &#039;&#039;&#039;LiteMol&#039;&#039;&#039; can visualize electron densities, cryo-EM data, validation and annotation data from several databases.&lt;br /&gt;
&lt;br /&gt;
This user manual provides the necessary information about &#039;&#039;&#039;LiteMol&#039;s&#039;&#039;&#039; functionality and the instructions for its use. It also shows the most typical use cases with step by step instructions. Additional hints are available in &#039;&#039;&#039;LiteMol&#039;&#039;&#039; itself when hovering above the &#039;&#039;i&#039;&#039; icons.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;LiteMol&#039;&#039;&#039; is available at the following address: [https://webchemdev.ncbr.muni.cz/Litemol webchemdev.ncbr.muni.cz/Litemol].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
===[[LiteMol:Introduction | Introduction]]===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===[[LiteMol:Hierarchy | Hierarchy of Entities]]===&lt;br /&gt;
#[[LiteMol:Hierarchy#Structures| Structures]]&lt;br /&gt;
#[[LiteMol:Hierarchy#Visual| Visualization]]&lt;br /&gt;
#[[LiteMol:Hierarchy#Annotations | Annotations]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===[[LiteMol:Functionality | Functionality]]===&lt;br /&gt;
#[[LiteMol:Functionality#Classic features| Features]]&lt;br /&gt;
#[[LiteMol:Functionality#Advanced features| Advanced]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===[[LiteMol:SelectionAlgebra | Selection Algebra]]===&lt;br /&gt;
#[[LiteMol:SelectionAlgebra#Basic queries| Basic]]&lt;br /&gt;
#[[LiteMol:SelectionAlgebra#Advanced queries| Advanced]]&lt;br /&gt;
#[[LiteMol:SelectionAlgebra#Logical queries| Logical]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===[[LiteMol:Use Cases | Use Cases]]===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===[[LiteMol:Embedding | Embedding in Your Web]]===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===[[LiteMol:Integration | Integration with other services]]===&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Lukas</name></author>
	</entry>
	<entry>
		<id>https://webchemwiki.biodata.ceitec.cz/index.php?title=LiteMol:UserManual&amp;diff=2367</id>
		<title>LiteMol:UserManual</title>
		<link rel="alternate" type="text/html" href="https://webchemwiki.biodata.ceitec.cz/index.php?title=LiteMol:UserManual&amp;diff=2367"/>
		<updated>2017-04-10T13:59:11Z</updated>

		<summary type="html">&lt;p&gt;Lukas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
[[File:LiteMol-logo.png | 350px | right]]&lt;br /&gt;
&#039;&#039;&#039;LiteMol&#039;&#039;&#039; is a web tool for visualization of protein structures. It is designed to be user-friendly yet flexible, interactive, and very fast even for extremely large protein structures. &#039;&#039;&#039;LiteMol&#039;&#039;&#039; can be run directly from your web browser.&lt;br /&gt;
&lt;br /&gt;
Apart from standard functionality of visualization tools, &#039;&#039;&#039;LiteMol&#039;&#039;&#039; can visualize electron densities, cryo-EM data, validation and annotation data from several databases.&lt;br /&gt;
&lt;br /&gt;
This user manual provides the necessary information about &#039;&#039;&#039;LiteMol&#039;s&#039;&#039;&#039; functionality and the instructions for its use. It also shows the most typical use cases with step by step instructions. Additional hints are available in &#039;&#039;&#039;LiteMol&#039;&#039;&#039; itself when hovering above the &#039;&#039;i&#039;&#039; icons.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;LiteMol&#039;&#039;&#039; is available at the following address: [https://webchemdev.ncbr.muni.cz/Litemol webchemdev.ncbr.muni.cz/Litemol].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
===[[LiteMol:Introduction | Introduction]]===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===[[LiteMol:Hierarchy | Hierarchy of Entities]]===&lt;br /&gt;
#[[LiteMol:Hierarchy#Structures| Structures]]&lt;br /&gt;
#[[LiteMol:Hierarchy#Visual| Visualization]]&lt;br /&gt;
#[[LiteMol:Hierarchy#Annotations | Annotations]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===[[LiteMol:Functionality | Functionality]]===&lt;br /&gt;
#[[LiteMol:Functionality#Classic features| Features]]&lt;br /&gt;
#[[LiteMol:Functionality#Advanced features| Advanced]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===[[LiteMol:SelectionAlgebra | Selection Algebra]]===&lt;br /&gt;
#[[LiteMol:SelectionAlgebra#Basic queries| Basic]]&lt;br /&gt;
#[[LiteMol:SelectionAlgebra#Advanced queries| Advanced]]&lt;br /&gt;
#[[LiteMol:SelectionAlgebra#Logical queries| Logical]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===[[LiteMol:Use Cases | Use Cases]]===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===[[LiteMol:Embedding | Embedding in Your Web]]===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===[[LiteMol:Integration | Integration with other services]]===&lt;/div&gt;</summary>
		<author><name>Lukas</name></author>
	</entry>
	<entry>
		<id>https://webchemwiki.biodata.ceitec.cz/index.php?title=LiteMol:Functionality&amp;diff=2366</id>
		<title>LiteMol:Functionality</title>
		<link rel="alternate" type="text/html" href="https://webchemwiki.biodata.ceitec.cz/index.php?title=LiteMol:Functionality&amp;diff=2366"/>
		<updated>2017-04-10T13:59:05Z</updated>

		<summary type="html">&lt;p&gt;Lukas: /* Advanced Features */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{large| &#039;&#039;&#039;LiteMol is a powerful and blazing-fast cross-platform tool for handling 3D macromolecular data in the browser. [https://webchemdev.ncbr.muni.cz/LiteMol/Viewer/ Try it now!]&#039;&#039;&#039;}}&lt;br /&gt;
&lt;br /&gt;
=Classic features=&lt;br /&gt;
* Supports all major structural data formats ([http://mmcif.wwpdb.org/ PDBx/mmcif], [https://www.wwpdb.org/documentation/file-format PDB], [http://pubs.acs.org/doi/pdf/10.1021/ci00007a012 SDF]).&lt;br /&gt;
* All common visualization models (&#039;balls-n-sticks&#039;/cartoon/Cα-trace/VDW spheres/surfaces).&lt;br /&gt;
* Displays x-ray electron densities and electric potential cryo-EM maps.&lt;br /&gt;
* Available as a standalone viewer or as a library for embedding into third party applications.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:LiteMol-Models.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
=Advanced features=&lt;br /&gt;
* Introduces the [https://github.com/dsehnal/BinaryCIF BinaryCIF] a compression format compatible with standard PDBx/mmCIF format &#039;&#039;greatly reducing&#039;&#039; amount of transferred data.&lt;br /&gt;
* [https://webchem.ncbr.muni.cz/CoordinateServer CoordinateServer] allows for streaming only parts of the structure models relevant for user deemed visualization. This further &#039;&#039;decreases&#039;&#039; the amount of &#039;&#039;transferred data&#039;&#039; and facilitates &#039;&#039;near instant responsiveness&#039;&#039; even for huge structures like ribosomes and viral capsids. All in your web browser.&lt;br /&gt;
* [http://webchem.ncbr.muni.cz/DensityServer DensityServer ] - allows &#039;&#039;instant access&#039;&#039; to full resolution slices of &#039;&#039;electron density&#039;&#039; (e.g. binding sites) and down sampled surface of the entire macromolecular structure.&lt;br /&gt;
* Displays [https://www.wwpdb.org/validation/validation-reports PDB validation reports] and [[ValidatorDB:UserManual | ValidatorDB ligand validation]].&lt;br /&gt;
* Displays &#039;&#039;sequence annotations&#039;&#039; from [http://pfam.xfam.org/ Pfam], [https://www.ebi.ac.uk/interpro/ InterPro], [www.cathdb.info CATH}, [http://scop.berkeley.edu/ SCOP], [http://www.uniprot.org/ UniProt].&lt;br /&gt;
* The only visualizer which requires only an up to date &#039;&#039;web browser&#039;&#039; with no dependencies needed. Runs on all &#039;&#039;mobile devices&#039;&#039;.&lt;br /&gt;
* Minimal &#039;&#039;memory footprint&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:LiteMol-Performance.png|center|800px]]&lt;/div&gt;</summary>
		<author><name>Lukas</name></author>
	</entry>
	<entry>
		<id>https://webchemwiki.biodata.ceitec.cz/index.php?title=LiteMol:Functionality&amp;diff=2365</id>
		<title>LiteMol:Functionality</title>
		<link rel="alternate" type="text/html" href="https://webchemwiki.biodata.ceitec.cz/index.php?title=LiteMol:Functionality&amp;diff=2365"/>
		<updated>2017-04-10T13:58:53Z</updated>

		<summary type="html">&lt;p&gt;Lukas: /* Classic Features */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{large| &#039;&#039;&#039;LiteMol is a powerful and blazing-fast cross-platform tool for handling 3D macromolecular data in the browser. [https://webchemdev.ncbr.muni.cz/LiteMol/Viewer/ Try it now!]&#039;&#039;&#039;}}&lt;br /&gt;
&lt;br /&gt;
=Classic features=&lt;br /&gt;
* Supports all major structural data formats ([http://mmcif.wwpdb.org/ PDBx/mmcif], [https://www.wwpdb.org/documentation/file-format PDB], [http://pubs.acs.org/doi/pdf/10.1021/ci00007a012 SDF]).&lt;br /&gt;
* All common visualization models (&#039;balls-n-sticks&#039;/cartoon/Cα-trace/VDW spheres/surfaces).&lt;br /&gt;
* Displays x-ray electron densities and electric potential cryo-EM maps.&lt;br /&gt;
* Available as a standalone viewer or as a library for embedding into third party applications.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:LiteMol-Models.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
=Advanced Features=&lt;br /&gt;
* Introduces the [https://github.com/dsehnal/BinaryCIF BinaryCIF] a compression format compatible with standard PDBx/mmCIF format &#039;&#039;greatly reducing&#039;&#039; amount of transferred data.&lt;br /&gt;
* [https://webchem.ncbr.muni.cz/CoordinateServer CoordinateServer] allows for streaming only parts of the structure models relevant for user deemed visualization. This further &#039;&#039;decreases&#039;&#039; the amount of &#039;&#039;transferred data&#039;&#039; and facilitates &#039;&#039;near instant responsiveness&#039;&#039; even for huge structures like ribosomes and viral capsids. All in your web browser.&lt;br /&gt;
* [http://webchem.ncbr.muni.cz/DensityServer DensityServer ] - allows &#039;&#039;instant access&#039;&#039; to full resolution slices of &#039;&#039;electron density&#039;&#039; (e.g. binding sites) and down sampled surface of the entire macromolecular structure.&lt;br /&gt;
* Displays [https://www.wwpdb.org/validation/validation-reports PDB validation reports] and [[ValidatorDB:UserManual | ValidatorDB ligand validation]].&lt;br /&gt;
* Displays &#039;&#039;sequence annotations&#039;&#039; from [http://pfam.xfam.org/ Pfam], [https://www.ebi.ac.uk/interpro/ InterPro], [www.cathdb.info CATH}, [http://scop.berkeley.edu/ SCOP], [http://www.uniprot.org/ UniProt].&lt;br /&gt;
* The only visualizer which requires only an up to date &#039;&#039;web browser&#039;&#039; with no dependencies needed. Runs on all &#039;&#039;mobile devices&#039;&#039;.&lt;br /&gt;
* Minimal &#039;&#039;memory footprint&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:LiteMol-Performance.png|center|800px]]&lt;/div&gt;</summary>
		<author><name>Lukas</name></author>
	</entry>
	<entry>
		<id>https://webchemwiki.biodata.ceitec.cz/index.php?title=LiteMol:Functionality&amp;diff=2364</id>
		<title>LiteMol:Functionality</title>
		<link rel="alternate" type="text/html" href="https://webchemwiki.biodata.ceitec.cz/index.php?title=LiteMol:Functionality&amp;diff=2364"/>
		<updated>2017-04-10T13:39:25Z</updated>

		<summary type="html">&lt;p&gt;Lukas: /* Advanced Features */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{large| &#039;&#039;&#039;LiteMol is a powerful and blazing-fast cross-platform tool for handling 3D macromolecular data in the browser. [https://webchemdev.ncbr.muni.cz/LiteMol/Viewer/ Try it now!]&#039;&#039;&#039;}}&lt;br /&gt;
&lt;br /&gt;
=Classic Features=&lt;br /&gt;
* Supports all major structural data formats ([http://mmcif.wwpdb.org/ PDBx/mmcif], [https://www.wwpdb.org/documentation/file-format PDB], [http://pubs.acs.org/doi/pdf/10.1021/ci00007a012 SDF]).&lt;br /&gt;
* All common visualization models (&#039;balls-n-sticks&#039;/cartoon/Cα-trace/VDW spheres/surfaces).&lt;br /&gt;
* Displays x-ray electron densities and electric potential cryo-EM maps.&lt;br /&gt;
* Available as a standalone viewer or as a library for embedding into third party applications.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:LiteMol-Models.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
=Advanced Features=&lt;br /&gt;
* Introduces the [https://github.com/dsehnal/BinaryCIF BinaryCIF] a compression format compatible with standard PDBx/mmCIF format &#039;&#039;greatly reducing&#039;&#039; amount of transferred data.&lt;br /&gt;
* [https://webchem.ncbr.muni.cz/CoordinateServer CoordinateServer] allows for streaming only parts of the structure models relevant for user deemed visualization. This further &#039;&#039;decreases&#039;&#039; the amount of &#039;&#039;transferred data&#039;&#039; and facilitates &#039;&#039;near instant responsiveness&#039;&#039; even for huge structures like ribosomes and viral capsids. All in your web browser.&lt;br /&gt;
* [http://webchem.ncbr.muni.cz/DensityServer DensityServer ] - allows &#039;&#039;instant access&#039;&#039; to full resolution slices of &#039;&#039;electron density&#039;&#039; (e.g. binding sites) and down sampled surface of the entire macromolecular structure.&lt;br /&gt;
* Displays [https://www.wwpdb.org/validation/validation-reports PDB validation reports] and [[ValidatorDB:UserManual | ValidatorDB ligand validation]].&lt;br /&gt;
* Displays &#039;&#039;sequence annotations&#039;&#039; from [http://pfam.xfam.org/ Pfam], [https://www.ebi.ac.uk/interpro/ InterPro], [www.cathdb.info CATH}, [http://scop.berkeley.edu/ SCOP], [http://www.uniprot.org/ UniProt].&lt;br /&gt;
* The only visualizer which requires only an up to date &#039;&#039;web browser&#039;&#039; with no dependencies needed. Runs on all &#039;&#039;mobile devices&#039;&#039;.&lt;br /&gt;
* Minimal &#039;&#039;memory footprint&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:LiteMol-Performance.png|center|800px]]&lt;/div&gt;</summary>
		<author><name>Lukas</name></author>
	</entry>
	<entry>
		<id>https://webchemwiki.biodata.ceitec.cz/index.php?title=LiteMol:Functionality&amp;diff=2363</id>
		<title>LiteMol:Functionality</title>
		<link rel="alternate" type="text/html" href="https://webchemwiki.biodata.ceitec.cz/index.php?title=LiteMol:Functionality&amp;diff=2363"/>
		<updated>2017-04-10T13:25:15Z</updated>

		<summary type="html">&lt;p&gt;Lukas: /* Classic Features */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{large| &#039;&#039;&#039;LiteMol is a powerful and blazing-fast cross-platform tool for handling 3D macromolecular data in the browser. [https://webchemdev.ncbr.muni.cz/LiteMol/Viewer/ Try it now!]&#039;&#039;&#039;}}&lt;br /&gt;
&lt;br /&gt;
=Classic Features=&lt;br /&gt;
* Supports all major structural data formats ([http://mmcif.wwpdb.org/ PDBx/mmcif], [https://www.wwpdb.org/documentation/file-format PDB], [http://pubs.acs.org/doi/pdf/10.1021/ci00007a012 SDF]).&lt;br /&gt;
* All common visualization models (&#039;balls-n-sticks&#039;/cartoon/Cα-trace/VDW spheres/surfaces).&lt;br /&gt;
* Displays x-ray electron densities and electric potential cryo-EM maps.&lt;br /&gt;
* Available as a standalone viewer or as a library for embedding into third party applications.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:LiteMol-Models.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
=Advanced Features=&lt;br /&gt;
* Introduces the [https://github.com/dsehnal/BinaryCIF BinaryCIF] a compression format compatible with standard PDBx/mmCIF format greatly reducing amount of transferred data.&lt;br /&gt;
* [https://webchem.ncbr.muni.cz/CoordinateServer CoordinateServer] allows for streaming only parts of the structure models relevant for user deemed visualization. This further decreases the amount of transferred data and facilitates near instant responsiveness even for huge structures like ribosomes and viral capsids. All in your web browser.&lt;br /&gt;
* [http://webchem.ncbr.muni.cz/DensityServer DensityServer ] - allows instant access to full resulution slices of electron density (e.g. binding sites) and downsampled surface of the entire macromolecular structure.&lt;br /&gt;
* The only visualizer which requires only an up to date web browser with no dependencies needed. Runs on all mobile devices.&lt;br /&gt;
* Minimal memory footprint.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:LiteMol-Performance.png|center|800px]]&lt;/div&gt;</summary>
		<author><name>Lukas</name></author>
	</entry>
	<entry>
		<id>https://webchemwiki.biodata.ceitec.cz/index.php?title=LiteMol:Functionality&amp;diff=2362</id>
		<title>LiteMol:Functionality</title>
		<link rel="alternate" type="text/html" href="https://webchemwiki.biodata.ceitec.cz/index.php?title=LiteMol:Functionality&amp;diff=2362"/>
		<updated>2017-04-10T13:23:52Z</updated>

		<summary type="html">&lt;p&gt;Lukas: /* Classic Features */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{large| &#039;&#039;&#039;LiteMol is a powerful and blazing-fast cross-platform tool for handling 3D macromolecular data in the browser. [https://webchemdev.ncbr.muni.cz/LiteMol/Viewer/ Try it now!]&#039;&#039;&#039;}}&lt;br /&gt;
&lt;br /&gt;
=Classic Features=&lt;br /&gt;
* Supports all major structural data formats ([http://mmcif.wwpdb.org/ PDBx/mmcif], [https://www.wwpdb.org/documentation/file-format PDB], [http://pubs.acs.org/doi/pdf/10.1021/ci00007a012 SDF]).&lt;br /&gt;
* All common visualization models (&#039;balls-n-sticks&#039;/cartoon/Cα-trace/VDW spheres/surfaces).&lt;br /&gt;
* Available as a standalone viewer or as a library for embedding into third party applications.&lt;br /&gt;
* Displays x-ray electron densities and electric potential cryo-EM maps.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:LiteMol-Models.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
=Advanced Features=&lt;br /&gt;
* Introduces the [https://github.com/dsehnal/BinaryCIF BinaryCIF] a compression format compatible with standard PDBx/mmCIF format greatly reducing amount of transferred data.&lt;br /&gt;
* [https://webchem.ncbr.muni.cz/CoordinateServer CoordinateServer] allows for streaming only parts of the structure models relevant for user deemed visualization. This further decreases the amount of transferred data and facilitates near instant responsiveness even for huge structures like ribosomes and viral capsids. All in your web browser.&lt;br /&gt;
* [http://webchem.ncbr.muni.cz/DensityServer DensityServer ] - allows instant access to full resulution slices of electron density (e.g. binding sites) and downsampled surface of the entire macromolecular structure.&lt;br /&gt;
* The only visualizer which requires only an up to date web browser with no dependencies needed. Runs on all mobile devices.&lt;br /&gt;
* Minimal memory footprint.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:LiteMol-Performance.png|center|800px]]&lt;/div&gt;</summary>
		<author><name>Lukas</name></author>
	</entry>
	<entry>
		<id>https://webchemwiki.biodata.ceitec.cz/index.php?title=LiteMol:Functionality&amp;diff=2361</id>
		<title>LiteMol:Functionality</title>
		<link rel="alternate" type="text/html" href="https://webchemwiki.biodata.ceitec.cz/index.php?title=LiteMol:Functionality&amp;diff=2361"/>
		<updated>2017-04-10T13:23:03Z</updated>

		<summary type="html">&lt;p&gt;Lukas: Initiall commit&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{large| &#039;&#039;&#039;LiteMol is a powerful and blazing-fast cross-platform tool for handling 3D macromolecular data in the browser. [https://webchemdev.ncbr.muni.cz/LiteMol/Viewer/ Try it now!]&#039;&#039;&#039;}}&lt;br /&gt;
&lt;br /&gt;
=Classic Features=&lt;br /&gt;
* Supports all major structural data formats ([http://mmcif.wwpdb.org/ PDBx/mmcif], [https://www.wwpdb.org/documentation/file-format PDB], [http://pubs.acs.org/doi/pdf/10.1021/ci00007a012 SDF]).&lt;br /&gt;
* All common visualization models (&#039;balls-n-sticks&#039;/cartoon/Cα-trance/VDW spheres/surfaces).&lt;br /&gt;
* Available as a standalone viewer or as a library for embedding into third party applications.&lt;br /&gt;
* Displays x-ray electron densities and electric potential cryo-EM maps.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:LiteMol-Models.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
=Advanced Features=&lt;br /&gt;
* Introduces the [https://github.com/dsehnal/BinaryCIF BinaryCIF] a compression format compatible with standard PDBx/mmCIF format greatly reducing amount of transferred data.&lt;br /&gt;
* [https://webchem.ncbr.muni.cz/CoordinateServer CoordinateServer] allows for streaming only parts of the structure models relevant for user deemed visualization. This further decreases the amount of transferred data and facilitates near instant responsiveness even for huge structures like ribosomes and viral capsids. All in your web browser.&lt;br /&gt;
* [http://webchem.ncbr.muni.cz/DensityServer DensityServer ] - allows instant access to full resulution slices of electron density (e.g. binding sites) and downsampled surface of the entire macromolecular structure.&lt;br /&gt;
* The only visualizer which requires only an up to date web browser with no dependencies needed. Runs on all mobile devices.&lt;br /&gt;
* Minimal memory footprint.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:LiteMol-Performance.png|center|800px]]&lt;/div&gt;</summary>
		<author><name>Lukas</name></author>
	</entry>
	<entry>
		<id>https://webchemwiki.biodata.ceitec.cz/index.php?title=File:LiteMol-Performance.png&amp;diff=2360</id>
		<title>File:LiteMol-Performance.png</title>
		<link rel="alternate" type="text/html" href="https://webchemwiki.biodata.ceitec.cz/index.php?title=File:LiteMol-Performance.png&amp;diff=2360"/>
		<updated>2017-04-10T13:14:01Z</updated>

		<summary type="html">&lt;p&gt;Lukas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Lukas</name></author>
	</entry>
	<entry>
		<id>https://webchemwiki.biodata.ceitec.cz/index.php?title=File:LiteMol-Models.png&amp;diff=2359</id>
		<title>File:LiteMol-Models.png</title>
		<link rel="alternate" type="text/html" href="https://webchemwiki.biodata.ceitec.cz/index.php?title=File:LiteMol-Models.png&amp;diff=2359"/>
		<updated>2017-04-10T13:06:58Z</updated>

		<summary type="html">&lt;p&gt;Lukas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Lukas</name></author>
	</entry>
	<entry>
		<id>https://webchemwiki.biodata.ceitec.cz/index.php?title=LiteMol:SelectionAlgebra&amp;diff=2348</id>
		<title>LiteMol:SelectionAlgebra</title>
		<link rel="alternate" type="text/html" href="https://webchemwiki.biodata.ceitec.cz/index.php?title=LiteMol:SelectionAlgebra&amp;diff=2348"/>
		<updated>2017-04-04T13:56:18Z</updated>

		<summary type="html">&lt;p&gt;Lukas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;LiteMol has an atom selection language available, similarly to the other structure visualization tools such as VMD or PyMOL. The &#039;&#039;&#039;LiteMol selection algebra&#039;&#039;&#039; is inspired by our other service - [[PatternQuery:UserManual | PatternQuery]]. While in the present version the selection syntax will be mainly used by method developers, syntax enabling the use of [[LiteMol:SelectionAlgebra#PyMOL | PyMOL ]] and possibly [[LiteMol:SelectionAlgebra#VMD| VMD]] selection algebra will be introduced in a near future.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=LiteMol selection algebra=&lt;br /&gt;
&lt;br /&gt;
Molecular selections can be created in two different active contexts - [[LiteMol:Hierarchy#Molecule_Model_.28MM.29 | model of molecule]] or [[LiteMol:Hierarchy#Molecule_Visual_.28VM.29 | molecule visual]]. If either of the contexts is active in the entity tree, the right panel is populated with the &#039;&#039;&#039;Selection&#039;&#039;&#039; action. Next, you can create named selection using dedicated query language and further modify the visual part of your selection. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 {{large| &#039;&#039;&#039;Notice:&#039;&#039;&#039;}} Arguments of LiteMol selection queries are &#039;&#039;&#039;case sensitive&#039;&#039;&#039;!&lt;br /&gt;
&lt;br /&gt;
Meaning: &#039;&#039;&#039;GLY&#039;&#039;&#039; is a common non-polar residue found in PDB entries, whereas &#039;&#039;&#039;Gly&#039;&#039;&#039;, &#039;&#039;&#039;gly&#039;&#039;&#039;, or &#039;&#039;&#039;G&#039;&#039;&#039; does not exist. &lt;br /&gt;
&lt;br /&gt;
==Basic queries==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | List of selection queries&lt;br /&gt;
|-&lt;br /&gt;
!Query definition&lt;br /&gt;
!Example&lt;br /&gt;
!Selection description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;  atomsByElement(elements: string[]) &amp;lt;/code &amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;  atomsByElement(&#039;C&#039;), atomsByElement(&#039;C&#039;,&#039;O&#039;) &amp;lt;/code&amp;gt;&lt;br /&gt;
| Atoms based on their element symbol (field &#039;&#039;_atom_site.type_symbol&#039;&#039;).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;  atomsByName(elements: string[]) &amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;  atomsByName(&#039;C&#039;), atomsByName(&#039;N&#039;,&#039;CA&#039;,&#039;C&#039;,&#039;O&#039;) &amp;lt;/code&amp;gt;&lt;br /&gt;
| Atoms based on their atom name (field &#039;&#039;_atom_site.label_atom_id&#039;&#039;).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;  atomsById(numbers: number[]) &amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;  atomsById(1), atomsById(1,2,3) &amp;lt;/code&amp;gt;&lt;br /&gt;
| Atoms based on their integer identifier (field &#039;&#039;_atom_site.id &#039;&#039;).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;  residuesByName(elements: string[]) &amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;  residuesByName(&#039;GLY&#039;), residuesByName(&#039;ALA&#039;, &#039;PO4&#039;) &amp;lt;/code&amp;gt;&lt;br /&gt;
| Residues based on their residue name (field &#039;&#039;_atom_site.label_comp_id&#039;&#039;).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;  residuesById(numbers: number[]) &amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;  residuesById(100), residuesById(42,157,238) &amp;lt;/code&amp;gt;&lt;br /&gt;
| Residues based on integer identified (field &#039;&#039;_atom_site.auth_seq_id&#039;&#039;).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;  chainsById(elements: string[]) &amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;  chainsById(&#039;A&#039;), chainsById(&#039;A&#039;, &#039;B&#039;) &amp;lt;/code&amp;gt;&lt;br /&gt;
| Polymer chains based on their id (field &#039;&#039;_atom_site.auth_asym_id&#039;&#039;).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt; backbone() &amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt; backbone() &amp;lt;/code&amp;gt;&lt;br /&gt;
| Extracts structure backbone defined by certain atom names. &#039;&#039;&#039;Protein:&#039;&#039;&#039; &#039;&#039;N&#039;&#039;, &#039;&#039;CA&#039;&#039;, &#039;&#039;C&#039;&#039;, &#039;&#039;O&#039;&#039;. &#039;&#039;&#039;Nucleotide:&#039;&#039;&#039; &#039;&#039;P&#039;&#039;, &#039;&#039;OP1&#039;&#039;, &#039;&#039;OP2&#039;&#039;, &#039;&#039;O3&#039; &#039;&#039;, &#039;&#039;O5&#039; &#039;&#039;, &#039;&#039;C3&#039; &#039;&#039;, &#039;&#039;C5&#039; &#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt; sidechain() &amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt; sidechain() &amp;lt;/code&amp;gt;&lt;br /&gt;
| Complement to the previous query, i.e. all &#039;&#039;polymer&#039;&#039; atoms without such name are reported.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt; hetGroups() &amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt; hetGroups() &amp;lt;/code&amp;gt;&lt;br /&gt;
| &#039;&#039;HETATM&#039;&#039; atoms defined by the field &#039;&#039;_atom_site.group_PDB&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt; nonHetPolymer() &amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt; nonHetPolymer() &amp;lt;/code&amp;gt;&lt;br /&gt;
| &#039;&#039;ATOM&#039;&#039; atoms defined by the field &#039;&#039;_atom_site.group_PDB&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt; cartoon() &amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt; cartoon() &amp;lt;/code&amp;gt;&lt;br /&gt;
| Extracts atoms vital for &#039;&#039;polymer&#039;&#039; cartoon visualization based on their names: &#039;&#039;CA&#039;&#039;, &#039;&#039;O&#039;&#039;, &#039;&#039;O5&#039; &#039;&#039;, &#039;&#039;C3&#039; &#039;&#039;, &#039;&#039;N3&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt; everything() &amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt; everything() &amp;lt;/code&amp;gt;&lt;br /&gt;
| All atoms in the active context.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Advanced queries==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | List of selection queries&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
Query&lt;br /&gt;
!&lt;br /&gt;
Examples&lt;br /&gt;
!&lt;br /&gt;
Selection description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;  inside(where: Selection, sel: Selection) &amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;  residuesByName(&#039;GLY&#039;).inside(chainsById(&#039;A&#039;)) &amp;lt;/code&amp;gt;&lt;br /&gt;
| Finds selection within another selection.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;  ambientResidues(where: Selection, nmb: number ) &amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;  residuesByName(&#039;HEM&#039;).ambientResidues(5) &amp;lt;/code&amp;gt;&lt;br /&gt;
| Surrounds the inner selection by residues that have at least one atom within the given radius&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;  wholeResidues(where: Selection) &amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;  atomsByElement(&#039;Pt&#039;).wholeResidues() &amp;lt;/code&amp;gt;&lt;br /&gt;
| Surrounds the inner selection by all atoms of residue&#039;s origin.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Logical queries==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | List of selection queries&lt;br /&gt;
|-&lt;br /&gt;
!Query&lt;br /&gt;
!Examples&lt;br /&gt;
!Selection description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;  or(selections: Selection[]) &amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;  or(residuesByName(&#039;HEM&#039;).ambientResidues(5), chainsById(&#039;A&#039;)) &amp;lt;/code&amp;gt;&lt;br /&gt;
| Merges several selections.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;  intersectWith(where: Selection, sel: Selection) &amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;  residuesByName(&#039;HEM&#039;).ambientResidues(5).intersectWith(chainsById(&#039;A&#039;)) &amp;lt;/code&amp;gt;&lt;br /&gt;
| Finds intersection between two selections.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;  complement(where: Selection) &amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;  chainsById(&#039;A&#039;).complement() &amp;lt;/code&amp;gt;&lt;br /&gt;
| Finds the complement of the inner selection to the active context.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Lukas</name></author>
	</entry>
	<entry>
		<id>https://webchemwiki.biodata.ceitec.cz/index.php?title=LiteMol:SelectionAlgebra&amp;diff=2347</id>
		<title>LiteMol:SelectionAlgebra</title>
		<link rel="alternate" type="text/html" href="https://webchemwiki.biodata.ceitec.cz/index.php?title=LiteMol:SelectionAlgebra&amp;diff=2347"/>
		<updated>2017-04-04T13:54:20Z</updated>

		<summary type="html">&lt;p&gt;Lukas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;LiteMol has an atom selection language available, similarly to the other structure visualization tools such as VMD or PyMOL. The &#039;&#039;&#039;LiteMol selection algebra&#039;&#039;&#039; is inspired by our other service - [[PatternQuery:UserManual | PatternQuery]]. While in the present version the selection syntax will be mainly used by method developers, syntax enabling the use of [[LiteMol:SelectionAlgebra#PyMOL | PyMOL ]] and possibly [[LiteMol:SelectionAlgebra#VMD| VMD]] selection algebra will be introduced in a near future.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=LiteMol selection algebra=&lt;br /&gt;
&lt;br /&gt;
Molecular selections can be created in two different active contexts - [[LiteMol:Hierarchy#Molecule_Model_.28MM.29 | model of molecule]] or [[LiteMol:Hierarchy#Molecule_Visual_.28VM.29 | molecule visual]]. If either of the contexts is active in the entity tree, the right panel is populated with the &#039;&#039;&#039;Selection&#039;&#039;&#039; action. Next, you can create named selection using dedicated query language and further modify the visual part of your selection. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 {{large| &#039;&#039;&#039;Notice:&#039;&#039;&#039;}} Arguments of LiteMol selection queries are &#039;&#039;&#039;case sensitive&#039;&#039;&#039;!&lt;br /&gt;
&lt;br /&gt;
Meaning: &#039;&#039;&#039;GLY&#039;&#039;&#039; is a common non-polar residue found in PDB entries, whereas &#039;&#039;&#039;Gly&#039;&#039;&#039;, &#039;&#039;&#039;gly&#039;&#039;&#039;, or &#039;&#039;&#039;G&#039;&#039;&#039; does not exist. &lt;br /&gt;
&lt;br /&gt;
==Basic queries==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | List of selection queries&lt;br /&gt;
|-&lt;br /&gt;
!Query definition&lt;br /&gt;
!Example&lt;br /&gt;
!Selection description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;  atomsByElement(elements: string[]) &amp;lt;/code &amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;  atomsByElement(&#039;C&#039;), atomsByElement(&#039;C&#039;,&#039;O&#039;) &amp;lt;/code&amp;gt;&lt;br /&gt;
| Atoms based on their element symbol (field &#039;&#039;_atom_site.type_symbol&#039;&#039;).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;  atomsByName(elements: string[]) &amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;  atomsByName(&#039;C&#039;), atomsByName(&#039;N&#039;,&#039;CA&#039;,&#039;C&#039;,&#039;O&#039;) &amp;lt;/code&amp;gt;&lt;br /&gt;
| Atoms based on their atom name (field &#039;&#039;_atom_site.label_atom_id&#039;&#039;).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;  atomsById(numbers: number[]) &amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;  atomsById(1), atomsById(1,2,3) &amp;lt;/code&amp;gt;&lt;br /&gt;
| Atoms based on their integer identifier (field &#039;&#039;_atom_site.id &#039;&#039;).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;  residuesByName(elements: string[]) &amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;  residuesByName(&#039;GLY&#039;), residuesByName(&#039;ALA&#039;, &#039;PO4&#039;) &amp;lt;/code&amp;gt;&lt;br /&gt;
| Residues based on their residue name (field &#039;&#039;_atom_site.label_comp_id&#039;&#039;).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;  residuesById(numbers: number[]) &amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;  residuesById(100), residuesById(42,157,238) &amp;lt;/code&amp;gt;&lt;br /&gt;
| Residues based on integer identified (field &#039;&#039;_atom_site.auth_seq_id&#039;&#039;).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;  chainsById(elements: string[]) &amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;  chainsById(&#039;A&#039;), chainsById(&#039;A&#039;, &#039;B&#039;) &amp;lt;/code&amp;gt;&lt;br /&gt;
| Polymer chains based on their id (field &#039;&#039;_atom_site.auth_asym_id&#039;&#039;).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt; backbone() &amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt; backbone() &amp;lt;/code&amp;gt;&lt;br /&gt;
| Extracts structure backbone defined by certain atom names. &#039;&#039;&#039;Protein:&#039;&#039;&#039; &#039;&#039;N&#039;&#039;, &#039;&#039;CA&#039;&#039;, &#039;&#039;C&#039;&#039;, &#039;&#039;O&#039;&#039;. &#039;&#039;&#039;Nucleotide:&#039;&#039;&#039; &#039;&#039;P&#039;&#039;, &#039;&#039;OP1&#039;&#039;, &#039;&#039;OP2&#039;&#039;, &#039;&#039;O3&#039; &#039;&#039;, &#039;&#039;O5&#039; &#039;&#039;, &#039;&#039;C3&#039; &#039;&#039;, &#039;&#039;C5&#039; &#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt; sidechain() &amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt; sidechain() &amp;lt;/code&amp;gt;&lt;br /&gt;
| Complement to the previous query, i.e. all &#039;&#039;polymer&#039;&#039; atoms without such name are reported.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt; hetGroups() &amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt; hetGroups() &amp;lt;/code&amp;gt;&lt;br /&gt;
| &#039;&#039;HETATM&#039;&#039; atoms defined by the field &#039;&#039;_atom_site.group_PDB&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt; nonHetPolymer() &amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt; nonHetPolymer() &amp;lt;/code&amp;gt;&lt;br /&gt;
| &#039;&#039;ATOM&#039;&#039; atoms defined by the field &#039;&#039;_atom_site.group_PDB&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt; cartoon() &amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt; cartoon() &amp;lt;/code&amp;gt;&lt;br /&gt;
| Extracts atoms vital for &#039;&#039;polymer&#039;&#039; cartoon visualization based on their names: &#039;&#039;CA&#039;&#039;, &#039;&#039;O&#039;&#039;, &#039;&#039;O5&#039; &#039;&#039;, &#039;&#039;C3&#039; &#039;&#039;, &#039;&#039;N3&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt; everything() &amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt; everything() &amp;lt;/code&amp;gt;&lt;br /&gt;
| All atoms in the active context.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Advanced queries==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | List of selection queries&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
Query&lt;br /&gt;
!&lt;br /&gt;
Examples&lt;br /&gt;
!&lt;br /&gt;
Selection description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;  inside(where: Selection, sel: Selection) &amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;  residuesByName(&#039;GLY&#039;).inside(chainsById(&#039;A&#039;)) &amp;lt;/code&amp;gt;&lt;br /&gt;
| Finds selection within another selection.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;  ambientResidues(where: Selection, nmb: number ) &amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;  residuesByName(&#039;HEM&#039;).ambientResidues(5) &amp;lt;/code&amp;gt;&lt;br /&gt;
| Surrounds the inner selection by residues that have at least one atom within the given radius&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;  wholeResidues(where: Selection) &amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;  atomsByElement(&#039;Pt&#039;).wholeResidues() &amp;lt;/code&amp;gt;&lt;br /&gt;
| Surrounds the inner selection by all atoms of residue&#039;s origin.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Logical queries==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | List of selection queries&lt;br /&gt;
|-&lt;br /&gt;
!Query&lt;br /&gt;
!Examples&lt;br /&gt;
!Selection description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;  or(Selection[]) &amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;  or(residuesByName(&#039;HEM&#039;).ambientResidues(5), chainsById(&#039;A&#039;)) &amp;lt;/code&amp;gt;&lt;br /&gt;
| Merges several selections.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;  intersectWith(where: Selection, Selection) &amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;  residuesByName(&#039;HEM&#039;).ambientResidues(5).intersectWith(chainsById(&#039;A&#039;)) &amp;lt;/code&amp;gt;&lt;br /&gt;
| Finds intersection between two selections.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;  complement(where: Selection) &amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;  chainsById(&#039;A&#039;).complement() &amp;lt;/code&amp;gt;&lt;br /&gt;
| Finds the complement of the inner selection to the active context.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Lukas</name></author>
	</entry>
	<entry>
		<id>https://webchemwiki.biodata.ceitec.cz/index.php?title=LiteMol:SelectionAlgebra&amp;diff=2346</id>
		<title>LiteMol:SelectionAlgebra</title>
		<link rel="alternate" type="text/html" href="https://webchemwiki.biodata.ceitec.cz/index.php?title=LiteMol:SelectionAlgebra&amp;diff=2346"/>
		<updated>2017-04-03T17:23:45Z</updated>

		<summary type="html">&lt;p&gt;Lukas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;LiteMol has an atom selection language available, similarly to the other structure visualization tools such as VMD or PyMOL. The &#039;&#039;&#039;LiteMol selection algebra&#039;&#039;&#039; is inspired by our other service - [[PatternQuery:UserManual | PatternQuery]], although in the present version the amount of integrated queries is somewhat limited. Additionally, as a feature LiteMol will contain a parser of syntax enabling the use of [[LiteMol:SelectionAlgebra#PyMOL | PyMOL ]] and possibly [[LiteMol:SelectionAlgebra#VMD| VMD]] selection algebra.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=LiteMol selection algebra=&lt;br /&gt;
&lt;br /&gt;
Molecular selections can be created in two different active contexts - [[LiteMol:Hierarchy#Molecule_Model_.28MM.29 | model of molecule]] or [[LiteMol:Hierarchy#Molecule_Visual_.28VM.29 | molecule visual]]. If either of the contexts is active in the entity tree, the right panel is populated with the &#039;&#039;&#039;Selection&#039;&#039;&#039; action. Next, you can create named selection using dedicated query language and further modify the visual part of your selection. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 {{large| &#039;&#039;&#039;Notice:&#039;&#039;&#039;}} Arguments of LiteMol selection queries are &#039;&#039;&#039;case sensitive&#039;&#039;&#039;!&lt;br /&gt;
&lt;br /&gt;
Meaning: GLY is a common non-polar residue found in the PDB entries, whereas Gly, or gly does not exist. &lt;br /&gt;
==Basic queries==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | List of selection queries&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
Query&lt;br /&gt;
!&lt;br /&gt;
Examples&lt;br /&gt;
!&lt;br /&gt;
Selection description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;  atomsByElement() &amp;lt;/code &amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;  atomsByElement(&#039;C&#039;), atomsByElement(&#039;C&#039;,&#039;O&#039;) &amp;lt;/code&amp;gt;&lt;br /&gt;
| Atoms based on their element symbol (field &#039;&#039;_atom_site.type_symbol&#039;&#039;).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;  atomsByName() &amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;  atomsByName(&#039;C&#039;), atomsByName(&#039;N&#039;,&#039;CA&#039;,&#039;C&#039;,&#039;O&#039;) &amp;lt;/code&amp;gt;&lt;br /&gt;
| Atoms based on their atom name (field &#039;&#039;_atom_site.label_atom_id&#039;&#039;).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;  atomsById() &amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;  atomsById(1), atomsById(1,2,3) &amp;lt;/code&amp;gt;&lt;br /&gt;
| Atoms based on their integer identifier (field &#039;&#039;_atom_site.id &#039;&#039;).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;  residuesByName() &amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;  residuesByName(&#039;GLY&#039;), residuesByName(&#039;ALA&#039;, &#039;HEM&#039;, &#039;PO4&#039;) &amp;lt;/code&amp;gt;&lt;br /&gt;
| Residues based on their residue name (field &#039;&#039;_atom_site.label_comp_id&#039;&#039;).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;  residuesById() &amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;  residuesById(100), residuesById(42,157,238) &amp;lt;/code&amp;gt;&lt;br /&gt;
| Residues based on integer identified (field &#039;&#039;_atom_site.auth_seq_id&#039;&#039;).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;  chainsById() &amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;  chainsById(&#039;A&#039;), chainsById(&#039;A&#039;, &#039;B&#039;) &amp;lt;/code&amp;gt;&lt;br /&gt;
| Polymer chains based on their id (field &#039;&#039;_atom_site.auth_asym_id&#039;&#039;).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt; backbone() &amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt; backbone() &amp;lt;/code&amp;gt;&lt;br /&gt;
| Extracts structure backbone defined by certain atom names. &#039;&#039;&#039;Protein:&#039;&#039;&#039; &#039;&#039;N&#039;&#039;, &#039;&#039;CA&#039;&#039;, &#039;&#039;C&#039;&#039;, &#039;&#039;O&#039;&#039;. &#039;&#039;&#039;Nucleotide:&#039;&#039;&#039; &#039;&#039;P&#039;&#039;, &#039;&#039;OP1&#039;&#039;, &#039;&#039;OP2&#039;&#039;, &#039;&#039;O3&#039; &#039;&#039;, &#039;&#039;O5&#039; &#039;&#039;, &#039;&#039;C3&#039; &#039;&#039;, &#039;&#039;C5&#039; &#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt; sidechain() &amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt; sidechain() &amp;lt;/code&amp;gt;&lt;br /&gt;
| Complement to the previous query, i.e. all &#039;&#039;polymer&#039;&#039; atoms without such name are reported.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt; hetGroups() &amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt; hetGroups() &amp;lt;/code&amp;gt;&lt;br /&gt;
| &#039;&#039;HETATM&#039;&#039; atoms defined by the field &#039;&#039;_atom_site.group_PDB&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt; nonHetPolymer() &amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt; nonHetPolymer() &amp;lt;/code&amp;gt;&lt;br /&gt;
| &#039;&#039;ATOM&#039;&#039; atoms defined by the field &#039;&#039;_atom_site.group_PDB&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt; cartoon() &amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt; cartoon() &amp;lt;/code&amp;gt;&lt;br /&gt;
| Extracts atoms vital for &#039;&#039;polymer&#039;&#039; cartoon visualization based on their names: &#039;&#039;CA&#039;&#039;, &#039;&#039;O&#039;&#039;, &#039;&#039;O5&#039; &#039;&#039;, &#039;&#039;C3&#039; &#039;&#039;, &#039;&#039;N3&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt; everything() &amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt; everything() &amp;lt;/code&amp;gt;&lt;br /&gt;
| All atoms in the active context.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Advanced queries==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | List of selection queries&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
Query&lt;br /&gt;
!&lt;br /&gt;
Examples&lt;br /&gt;
!&lt;br /&gt;
Selection description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;  inside() &amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;  residuesByName(&#039;GLY&#039;).inside(chainsById(&#039;A&#039;)) &amp;lt;/code&amp;gt;&lt;br /&gt;
| All &#039;&#039;Gly&#039;&#039; residues on the &#039;&#039;A&#039;&#039; chain&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;  ambientResidues() &amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;  residuesByName(&#039;HEM&#039;).ambientResidues(5) &amp;lt;/code&amp;gt;&lt;br /&gt;
| Blabla&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;  wholeResidues() &amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;  atomsByElement(&#039;Pt&#039;).wholeResidues() &amp;lt;/code&amp;gt;&lt;br /&gt;
| Blabla&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Logical queries==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | List of selection queries&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
Query&lt;br /&gt;
!&lt;br /&gt;
Examples&lt;br /&gt;
!&lt;br /&gt;
Selection description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;  or() &amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;  or() &amp;lt;/code&amp;gt;&lt;br /&gt;
| blabla&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;  intersectWith() &amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;  residuesByName(&#039;HEM&#039;).ambientResidues(5).intersectWith(chainsById(&#039;A&#039;)) &amp;lt;/code&amp;gt;&lt;br /&gt;
| All the ...&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;  wholeResidues() &amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;  atomsByElement(&#039;Pt&#039;).wholeResidues() &amp;lt;/code&amp;gt;&lt;br /&gt;
| Blabla&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==PyMOL==&lt;br /&gt;
In preparation...&lt;br /&gt;
&lt;br /&gt;
==VMD==&lt;br /&gt;
In preparation...&lt;/div&gt;</summary>
		<author><name>Lukas</name></author>
	</entry>
	<entry>
		<id>https://webchemwiki.biodata.ceitec.cz/index.php?title=LiteMol:Embedding&amp;diff=2345</id>
		<title>LiteMol:Embedding</title>
		<link rel="alternate" type="text/html" href="https://webchemwiki.biodata.ceitec.cz/index.php?title=LiteMol:Embedding&amp;diff=2345"/>
		<updated>2017-03-31T12:50:18Z</updated>

		<summary type="html">&lt;p&gt;Lukas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;To find out how to embed LiteMol, please check the example included with [https://github.com/dsehnal/LiteMol/tree/master/examples source code distribution].&lt;br /&gt;
&lt;br /&gt;
LiteMol has a very flexible plugin architecture and allows you to customize which components you want to include. The examples also show how to write your own components and control schemes.&lt;/div&gt;</summary>
		<author><name>Lukas</name></author>
	</entry>
	<entry>
		<id>https://webchemwiki.biodata.ceitec.cz/index.php?title=LiteMol:UserManual&amp;diff=2344</id>
		<title>LiteMol:UserManual</title>
		<link rel="alternate" type="text/html" href="https://webchemwiki.biodata.ceitec.cz/index.php?title=LiteMol:UserManual&amp;diff=2344"/>
		<updated>2017-03-31T12:46:26Z</updated>

		<summary type="html">&lt;p&gt;Lukas: https protocol&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
[[File:LiteMol-logo.png | 350px | right]]&lt;br /&gt;
&#039;&#039;&#039;LiteMol&#039;&#039;&#039; is a web tool for visualization of protein structures. It is designed to be user-friendly yet flexible, interactive, and very fast even for extremely large protein structures. &#039;&#039;&#039;LiteMol&#039;&#039;&#039; can be run directly from your web browser.&lt;br /&gt;
&lt;br /&gt;
Apart from standard functionality of visualization tools, &#039;&#039;&#039;LiteMol&#039;&#039;&#039; can visualize electron densities, cryo-EM data, validation and annotation data from several databases.&lt;br /&gt;
&lt;br /&gt;
This user manual provides the necessary information about &#039;&#039;&#039;LiteMol&#039;s&#039;&#039;&#039; functionality and the instructions for its use. It also shows the most typical use cases with step by step instructions. Additional hints are available in &#039;&#039;&#039;LiteMol&#039;&#039;&#039; itself when hovering above the &#039;&#039;i&#039;&#039; icons.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;LiteMol&#039;&#039;&#039; is available at the following address: [https://webchemdev.ncbr.muni.cz/Litemol webchemdev.ncbr.muni.cz/Litemol].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
===[[LiteMol:Introduction | Introduction]]===&lt;br /&gt;
----&lt;br /&gt;
===[[LiteMol:Hierarchy | Hierarchy of Entities]]===&lt;br /&gt;
----&lt;br /&gt;
===[[LiteMol:Functionality | Functionality]]===&lt;br /&gt;
----&lt;br /&gt;
===[[LiteMol:SelectionAlgebra | Selection Algebra]]===&lt;br /&gt;
----&lt;br /&gt;
===[[LiteMol:Use Cases | Use Cases]]===&lt;br /&gt;
----&lt;br /&gt;
===[[LiteMol:Embedding | Embedding in Your Web]]===&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Lukas</name></author>
	</entry>
	<entry>
		<id>https://webchemwiki.biodata.ceitec.cz/index.php?title=PatternQuery:How_to_build_a_query&amp;diff=2210</id>
		<title>PatternQuery:How to build a query</title>
		<link rel="alternate" type="text/html" href="https://webchemwiki.biodata.ceitec.cz/index.php?title=PatternQuery:How_to_build_a_query&amp;diff=2210"/>
		<updated>2016-07-26T12:57:12Z</updated>

		<summary type="html">&lt;p&gt;Lukas: /* How to think about queries */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;toclimit-3&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In order to tune up your queries before executing them on the whole database or just to work with the language interactively, feel free to use the [http://webchem.ncbr.muni.cz/Platform/PatternQuery/Index &#039;&#039;&#039;Explorer&#039;&#039;&#039;] application, where you can upload a PDB molecule of choice, or load a random sample from the PDB database based on selected properties.&lt;br /&gt;
&lt;br /&gt;
You can either try one of our ready-to-use examples or try to make up one of your own.&lt;br /&gt;
&lt;br /&gt;
==How to think about queries==&lt;br /&gt;
When building queries, you have to decompose the problem into smaller chunks, think of a query for each of the pieces and then wisely bind them together. Let us have a goal:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Get all the residues which are as much as 5Å away from any histidine residue and check if the given pattern contains at least 2 negatively charged amino acids.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
From scratch you can&#039;t probably think out a solution right now, but when you decompose the problem into separate individual sub problems, it is not so difficult after all. (Whenever you are unsure about the meaning of the queries, consult the [[PatternQuery:Language Reference | language reference]]). For the given problem, the decomposition and the corresponding queries are as follows:&lt;br /&gt;
{{col-begin}}&lt;br /&gt;
{{col-2}}&lt;br /&gt;
#Select histidine residues&lt;br /&gt;
#Select residual surrounding of a pattern up to 5Å.&lt;br /&gt;
#Find negatively charged residues.&lt;br /&gt;
#Count the amino acids.&lt;br /&gt;
#Filter the histidine plus its surrounding matching the condition above.&lt;br /&gt;
{{col-2}}&lt;br /&gt;
#&amp;lt;code&amp;gt;[[PatternQuery:Language Reference#Residues | Residues(&amp;quot;HIS&amp;quot;)]]&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;[[PatternQuery:Language Reference#AmbientResidues | AmbientResidues(5)]]&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;[[PatternQuery:Language Reference#AminoAcids| AminoAcids(ChargeType=&amp;quot;Negative&amp;quot;)]]&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;[[PatternQuery:Language Reference#Count| Count(residues)]]&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;[[PatternQuery:Language Reference#Filter| Filter(condition)]]&amp;lt;/code&amp;gt;&lt;br /&gt;
{{col-end}}&lt;br /&gt;
It wasn&#039;t that difficult, was it? When we have composed all the queries, we can compose them together in order to achieve our goal as highlighted in the query bellow and in the illustrative info-graphics:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
Residues(&amp;quot;HIS&amp;quot;).&lt;br /&gt;
  AmbientResidues(5).&lt;br /&gt;
  Filter(lambda l: l.Count(AminoAcids(ChargeType = &amp;quot;Negative&amp;quot;)) &amp;gt;= 2)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:PatternQuery-Representation.png | center]]&lt;br /&gt;
&lt;br /&gt;
==Ready-to-use examples==&lt;br /&gt;
&lt;br /&gt;
Now when we are aware of how to think about queries, you are ready to browse a plenty of different examples listed below. The text is separated into three plus one part which differs by data type queries are operated (Atoms, Residues and Patterns). The first two categories deal with only basic &#039;&#039;Atom&#039;&#039; or &#039;&#039;Residue&#039;&#039; selections. Outputs of these two types of queries are Atoms and Residues respectively.  Last category is &#039;Patterns&#039;, which contains a number of advanced queries, these queries demonstrate versatility and a power of &#039;&#039;&#039;PQ&#039;&#039;&#039;. These queries operate on all results provided by both Atom and Residue queries. On the top of that, you can browse several use biologically relevant [[PatternQuery:Use Cases | use cases]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Structure of the text==&lt;br /&gt;
*&#039;&#039;&#039;[PDB id]&#039;&#039;&#039; Here you find an example PDB id where you can try out the query with &#039;&#039;&#039;PatternQuery Explorer&#039;&#039;&#039; and a rough description of the query function.&lt;br /&gt;
* This is followed by examples of this query with with the explanation such as &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Residues(&amp;quot;HEM&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt;. Copy this query to the command text box in &#039;&#039;&#039;PatternQuery Explorer&#039;&#039;&#039; application and immediately see the results.&lt;br /&gt;
* Type of data query operate on and the expected returned value.&lt;br /&gt;
* e.g. &#039;&#039;Type: Atoms(symbols: String*) -&amp;gt; Atoms&#039;&#039;. query &amp;lt;code&amp;gt;[[PatternQuery:Language Reference#Atoms | Atoms()]]&amp;lt;/code&amp;gt; take 0..n strings, representing elements, in parenthesis (&amp;quot;C&amp;quot;, &amp;quot;N&amp;quot;, etc.) and based on the input returns a list of individual atoms.&lt;br /&gt;
&lt;br /&gt;
=Queries=&lt;br /&gt;
&lt;br /&gt;
==Atoms==&lt;br /&gt;
{{big | Basic queries}}&lt;br /&gt;
====Atoms()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns a sequence of individual atoms based on element type provided in the argument. More elements can be specified, if separated by a comma. In case no argument is provided a list of all the atoms is returned.&lt;br /&gt;
*&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Atoms(&amp;quot;Fe&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt; - Returns all iron atoms in the given structure.&lt;br /&gt;
*&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Atoms(&amp;quot;Fe&amp;quot;, &amp;quot;N&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt; - Returns all iron and nitrogen atoms in the given structure.&lt;br /&gt;
* &#039;&#039;Type: Atoms(symbols: String*) -&amp;gt; Atoms.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====AtomNames()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns a sequence of atoms with defined name or names.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;AtomNames(&amp;quot;CA&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt; – Returns all CA atoms.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;AtomNames(&amp;quot;CA&amp;quot;, &amp;quot;N&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt; –Returns atoms with names CA (C? carbon) or N (terminal part of amino acids).&lt;br /&gt;
* &#039;&#039;Type: AtomNames(names: String+) -&amp;gt; Atoms.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====AtomIds()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns a sequence of atoms with given id or ids&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;AtomIds(1)&amp;lt;/syntaxhighlight&amp;gt; – Returns atom with id=1 from the given structures.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;AtomIds(1,2,5) &amp;lt;/syntaxhighlight&amp;gt;- Returns atoms with id=1, 2 and 5 from the given structures.&lt;br /&gt;
* &#039;&#039;Type: AtomIds(ids: Integer+) -&amp;gt; Atoms.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====AtomIdRange()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns a sequence of atoms with ids from a given range (inclusive specified indices).&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;AtomIdRange(1, 10)&amp;lt;/syntaxhighlight&amp;gt; – returns 10 atoms with IDs from the interval &amp;lt;1, 10&amp;gt;, as specified in the input file.&lt;br /&gt;
* &#039;&#039;Type: AtomIdRange(minId: Integer, maxId: ?Integer) -&amp;gt; Atoms&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====NotAtomNames()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns a sequence of atoms which are not defined by an argument.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;NotAtomNames(&amp;quot;C&amp;quot;, &amp;quot;N&amp;quot;, &amp;quot;CA&amp;quot;, &amp;quot;O&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt; – returns all the atoms with names other than C, CA, N and O.  i.e. only the side chain atoms of the protein .&lt;br /&gt;
* &#039;&#039;Type: NotAtomNames(names: String+) -&amp;gt; Atom.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====NotAtomIds()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns a sequence of atoms which does not have a defined id&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;NotAtomIds(1)&amp;lt;/syntaxhighlight&amp;gt; - Returns atom with id other but 1 from the given structures.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;NotAtomIds(1,2,5)&amp;lt;/syntaxhighlight&amp;gt; - Returns atoms with id other but 1,2 and 5 from the given structures.&lt;br /&gt;
* &#039;&#039;Type: NotAtomIds(ids: Integer+) -&amp;gt; Atoms.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====NotAtoms()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns all the atoms not specified in the argument. More elements can be specified, if separated by a comma.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Atoms(&amp;quot;Fe&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt; – returns all the atoms of the structure, but iron.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Atoms(&amp;quot;Fe&amp;quot;, &amp;quot;N&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt; returns all the atoms of the structure, but iron and nitrogen. &lt;br /&gt;
* &#039;&#039;Type: NotAtoms(symbols: String+) -&amp;gt; Atoms.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====RingAtoms()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns specified atoms found on detected rings .&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;RingAtoms(Atoms(&amp;quot;N&amp;quot;), Rings(2 * [&amp;quot;C&amp;quot;] + [&amp;quot;N&amp;quot;] + [&amp;quot;C&amp;quot;] + [&amp;quot;N&amp;quot;]))&amp;lt;/syntaxhighlight&amp;gt; – Returns all the nitrogen atoms on the histidine side chain.&lt;br /&gt;
* &#039;&#039;Type: RingAtoms(atom: Atoms, ring: ?Rings) -&amp;gt; Atoms.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Residues==&lt;br /&gt;
{{big | Basic queries}}&lt;br /&gt;
====Residues()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns a sequence of individual residues specified by a function argument. More residues can be specified, if separated by a comma.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Residues(&amp;quot;HEM&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt; – Returns a list of HEM residues.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Residues (&amp;quot;HEM&amp;quot;, &amp;quot;ALA&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt; – Returns a set of HEM and ALA residues.&lt;br /&gt;
* &#039;&#039;Type: Residues(names: Value*) -&amp;gt; Residues.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====NotResidues()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns a sequence of residues which are not defined by the argument.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;NotResidues(&amp;quot;HEM&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt; – returns a set of residues, which does not have a HEM in their name.&lt;br /&gt;
* &#039;&#039;Type: NotResidues(names: Value+) -&amp;gt; Residues.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====ResidueIds()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns a sequence of specified residues in case the structure contains them. Each residue is represented by its PDB ID and chain such as “A 8”.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;ResidueIds (&amp;quot;14 A&amp;quot;,  &amp;quot;15 A&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt; – Returns 14th  and 15th residue of chain A.&lt;br /&gt;
* &#039;&#039;Type: ResidueIds(ids: String+) -&amp;gt; Residues&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====ResidueIdRange()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns a set of residues on a given chain from the lower to the upper index. In case a residue is not provided in the structure, it is skipped. &lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;ResidueIdRange(&amp;quot;A&amp;quot;, 50,  100)&amp;lt;/syntaxhighlight&amp;gt; – returns a set of residues on chain A from the ID 50 to 100. &lt;br /&gt;
* &#039;&#039;Type: ResidueIdRange(chain: String, min: Integer, max: Integer) -&amp;gt; Residues&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====NotAminoAcids()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns a sequence of residues that are not among the 20 standard amino acids. Allowed values for an optional parameter NoWaters: True, False.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;NotAminoAcids()&amp;lt;/syntaxhighlight&amp;gt; – Returns all the nonstandard residues incorporated in the protein structure with the exception of HOH and WAT residues, which stands for solvent.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;NotAminoAcids(NoWaters=False)&amp;lt;/syntaxhighlight&amp;gt; – Returns all the nonstandard residues incorporated in the protein structure inclusive solvent (HOH and WAT residues).&lt;br /&gt;
* &#039;&#039;Type: NotAminoAcids() -&amp;gt; Residues&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====AminoAcids()====&lt;br /&gt;
*  &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns a sequence of residues that are among the 20 standard amino acids.&lt;br /&gt;
* Allowed values: &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Positive, Negative, Aromatic, Polar, NonPolar&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;AminoAcids()&amp;lt;/syntaxhighlight&amp;gt; – Returns all standard amino acids.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;AminoAcids(ChargeType=&amp;quot;Polar&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt; – Returns all polar amino acids based on the type of their side chain.&lt;br /&gt;
* &#039;&#039;Type: AminoAcids() -&amp;gt; Residues.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====HetResidues()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns a sequence of heteroatom residues as specified in input PDB files, excluding residues.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;HetResidues()&amp;lt;/syntaxhighlight&amp;gt; – A set of hetatom residues.&lt;br /&gt;
* &#039;&#039;Type: HetResidues() -&amp;gt; Residues&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Patterns==&lt;br /&gt;
{{big | Structure specification}}&lt;br /&gt;
&lt;br /&gt;
PQ can select residues or their parts based on their name or Id, however, the true power of PQ lies in its ability to utilize the geometrical and chemical nature of the input structures and select patterns purely based on elements, topology and the connectivity among them.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Rings()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 3d12]&#039;&#039;&#039; Returns all the rings in the protein structure specified by a user.  Any structural ring can be identified by concatenating individual elements the string is composed from.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Rings(2 * [&amp;quot;C&amp;quot;] + [&amp;quot;N&amp;quot;] + [&amp;quot;C&amp;quot;] + [&amp;quot;N&amp;quot;])&amp;lt;/syntaxhighlight&amp;gt; – Returns the histidine aromatic ring. &lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Rings(4 * [&amp;quot;C&amp;quot;] + [&amp;quot;O&amp;quot;])&amp;lt;/syntaxhighlight&amp;gt; – Returns pentose ring. &lt;br /&gt;
* &#039;&#039;Type: Rings(atoms: Value*) -&amp;gt; Ring&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====ToAtoms()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 1hho]&#039;&#039;&#039; Converts the input pattern into a sequence of individual atoms, i.e. each pattern contains a single atom.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Residues(&amp;quot;HEM&amp;quot;).ToAtoms()&amp;lt;/syntaxhighlight&amp;gt; – Returns all the atoms of HEM residues as a sequence of individual atoms.&lt;br /&gt;
* &#039;&#039;Type: ToAtoms(patterns: Patterns) -&amp;gt; Patterns&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====ToResidues()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 1hho]&#039;&#039;&#039; Converts the input pattern into a sequence of individual residues, i.e. It can either decompose a pattern with multiple residues to a sequence of patterns each containing a single residue, or if applied to a sequence of atoms merge atoms to a single pattern per residue.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Residues(&amp;quot;HEM&amp;quot;).AmbientResidues(2).ToResidues()&amp;lt;/syntaxhighlight&amp;gt; – Returns the sequence of individual residues from the 2A surrounding of the HEM residue, inclusive HEM.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Atoms(&amp;quot;C&amp;quot;).ToResidues()&amp;lt;/syntaxhighlight&amp;gt; – Returns a sequence of patterns. Each pattern contains only carbon atoms grouped together according to their parent residue.&lt;br /&gt;
* &#039;&#039;Type: ToResidues(patterns: PatternSeq) -&amp;gt; Patterns&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Union()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 1hho]&#039;&#039;&#039; Merges the sequence of input patterns to a single pattern. &lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Residues(&amp;quot;HEM&amp;quot;).ConnectedResidues(1).Union()&amp;lt;/syntaxhighlight&amp;gt; –  Takes two HEM residues of the 1hho protein with covalently bonded residues (2 patterns) and merges them into a single pattern.&lt;br /&gt;
* &#039;&#039;Type: Union(patterns: PatternSeq) -&amp;gt; Patterns&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====RegularMotifs()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 1het]&#039;&#039;&#039; Sequence motifs is extracted from the primary sequence based on the input regular expression. Please note, that PQ does not check presence of a gap gap in the chain e.g. if HIS 28 is followed by the residue 30 ALA query ‘HA’ returns positive match for such example.&lt;br /&gt;
* In case the information about posttranslational modifications is present in &#039;&#039;MODRES&#039;&#039; or &#039;&#039;_pdbx_struct_mod_residue&#039;&#039; fields, modified residues are treated as standard amino acids. Therefore, a letter &#039;&#039;P&#039;&#039; stands for a proline residue so as all its modifications, e.g. &#039;&#039;&#039;HYP&#039;&#039;&#039; (hydroxyproline). &lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt; RegularMotifs(&amp;quot;HH&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt; – Finds two consecutive histidine residues or their modifications. &lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt; RegularMotifs(&amp;quot;G.{1,2}G&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt; – Finds two glycine residues separated by one or two other residues. &lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt; RegularMotifs(&amp;quot;G.{1,2}G&amp;quot;).Filter(lambda m: m.IsConnected())&amp;lt;/syntaxhighlight&amp;gt; – Finds two glycine residues separated by one or two residues and verifies that all of them are bonded. &lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt; RegularMotifs(&amp;quot;.P.&amp;quot;).Filter(lambda l: l.Count(NotAminoAcids()) == 0)&amp;lt;/syntaxhighlight&amp;gt; - Finds 3 consecutive residues, where the middle one is proline and verifies that neither of them is outside the &#039;&#039;standard 20&#039;&#039;.&lt;br /&gt;
* &#039;&#039;Type: RegularMotifs(regex: Value) -&amp;gt; Patterns&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Cluster()====&lt;br /&gt;
* Clusters identifies results to a single pattern based on their distance [A]. On contrary to the &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Near()&amp;lt;/syntaxhighlight&amp;gt; query &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Cluster()&amp;lt;/syntaxhighlight&amp;gt; does not provide a count check. See example below.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Cluster(5, Residues(&amp;quot;Ala&amp;quot;))&amp;lt;/syntaxhighlight&amp;gt;  – Returns all the alanine residues which are at most 5A distant to each other.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Cluster(3, RingAtoms(Atoms(&amp;quot;N&amp;quot;), Rings(2 * [&amp;quot;C&amp;quot;] + [&amp;quot;N&amp;quot;] + [&amp;quot;C&amp;quot;] + [&amp;quot;N&amp;quot;])))&amp;lt;/syntaxhighlight&amp;gt; – Returns all the nitrogen atoms from particular rings to a single pattern in case the atoms are at most 3A distant to each other. &lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Cluster(2 , Atoms(&amp;quot;C&amp;quot;), Atoms(&amp;quot;C&amp;quot;))&amp;lt;/syntaxhighlight&amp;gt; – Returns all the carbon atoms which are pairwise closer than 2Å. In case any other carbon atom would be inside this 2A sphere, it is also included in the result. Therefore, if you insist on exactly 2 carbon atoms to be returned, use &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Near()&amp;lt;/syntaxhighlight&amp;gt; query instead.&lt;br /&gt;
* &#039;&#039;Type: Cluster(r: Number, patterns: PatternSeq) -&amp;gt; Patterns&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Boolean operations===&lt;br /&gt;
====Or()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Merges up to &#039;&#039;n&#039;&#039; different patterns together.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Or(AminoAcids(ChargeType=&amp;quot;Negative&amp;quot;), AminoAcids(ChargeType= &amp;quot;Positive&amp;quot;))&amp;lt;/syntaxhighlight&amp;gt; – returns all charged amino acids both positively charged and negatively charged.&lt;br /&gt;
* &#039;&#039;Type: Or(patterns: PatternSeq+) -&amp;gt; Patterns&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Topology function===&lt;br /&gt;
====AmbientAtoms()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 1hho]&#039;&#039;&#039; Returns all the atoms, which are within nÅ from the geometrical center of a given pattern.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Atoms(&amp;quot;Fe&amp;quot;).AmbientAtoms(4)&amp;lt;/syntaxhighlight&amp;gt; – returns all the atoms, which are closer than 4Å from the center of mass of iron atom.&lt;br /&gt;
* &#039;&#039;Type: AmbientAtoms(pattern: PatternSeq, r: Number) -&amp;gt; Patterns&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====AmbientResidues()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 1hho]&#039;&#039;&#039; Returns all the residues, which are within nÅ from the geometrical center of a given pattern.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Residues(&amp;quot;HEM&amp;quot;).AmbientResidues(4)&amp;lt;/syntaxhighlight&amp;gt; – returns all the residues, which are closer than 4Å from the center of mass of HEM residues.&lt;br /&gt;
* &#039;&#039;Type: AmbientResidues(pattern: PatternSeq, r: Number) -&amp;gt; Patterns&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Near()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 1hho]&#039;&#039;&#039; Clusters all the specified patterns, which are pairwise closer [Å] than a specified argument. Additionally, it checks if the pattern contains exactly specified patterns. On the contrary to the Cluster() query this does the ‘count check’.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Near(0, Rings(6*[&#039;C&#039;]), Rings(4*[&#039;C&#039;] + [&#039;N&#039;]))&amp;lt;/syntaxhighlight&amp;gt; – Returns patterns containing only purine. In this example the purine part of tryptophan side chain will be returned.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Near(2 , Atoms(&amp;quot;C&amp;quot;), Atoms(&amp;quot;C&amp;quot;), Atoms(&amp;quot;C&amp;quot;), Atoms(&amp;quot;C&amp;quot;))&amp;lt;/syntaxhighlight&amp;gt; – Returns patterns which contain exactly 4 carbon atoms within a sphere of 2Å.&lt;br /&gt;
* &#039;&#039;Type: Near(r: Number, patterns: PatternSeq+) -&amp;gt; Patterns&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Inside()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 1hho]&#039;&#039;&#039; Inside query tries to identify given pattern within another pattern. It is particularly useful for location of specific atomic arrangements within a more general ones.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Residues(&amp;quot;Gly&amp;quot;).Inside(Chains(&amp;quot;A&amp;quot;))&amp;lt;/syntaxhighlight&amp;gt; - Returns glycine residues found on the chain A.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Atoms(&amp;quot;S&amp;quot;).Inside(HetResidues())&amp;lt;/syntaxhighlight&amp;gt; - Returns sulphur atoms found in the heteroatom residues&lt;br /&gt;
* &#039;&#039;Type: Inside(patterns&amp;amp;#58; PatternSeq, where&amp;amp;#58; PatternSeq) -&amp;amp;gt; PatternSeq&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Filtering===&lt;br /&gt;
====Filter()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 1hho]&#039;&#039;&#039; Filtering is used for removing unwanted patterns from the result. A condition given as a function argument is evaluated for each pattern from input pattern sequence referred to as ‘m’ in the following text. Only results satisfying the condition are returned, others are filtered out. Technically, it uses lambda abstraction for filtering a collection of input patterns. The usage is the same as in the Python programming language, and therefore, your previous Python experiences are beneficial. &lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Residues().Filter(lambda m: m.IsConnectedTo(Atoms(&amp;quot;Fe&amp;quot;))) &amp;lt;/syntaxhighlight&amp;gt; – returns a set of patterns from all residues which are covalently bonded to the iron atom (excluded the HEM residue).&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt; Residues().Filter(lambda m: m.Count(Atoms(&amp;quot;O&amp;quot;)) == 2)&amp;lt;/syntaxhighlight&amp;gt; returns all the residues containing exactly two oxygen atoms.&lt;br /&gt;
* &#039;&#039;Type: Filter(patterns: PatternSeq, filter: Pattern-&amp;gt;Bool) -&amp;gt; Patterns&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Count()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 1hho]&#039;&#039;&#039; Usually it is convenient to utilize this function inside a filtering query. The &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Count()&amp;lt;/syntaxhighlight&amp;gt; query counts the number of occurrences of a pattern inside a different pattern.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Residues(&amp;quot;HEM&amp;quot;).ConnectedResidues(2).Filter(lambda m: m.Count(Atoms(&amp;quot;S&amp;quot;)) == 1)&amp;lt;/syntaxhighlight&amp;gt; – Returns patterns composed of a HEM residue surrounded by two layers of bonded residues in case that the whole pattern contains exactly one sulphur atom.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Residues(&amp;quot;CYS&amp;quot;).ConnectedResidues(1).Filter(lambda m: m.Count(Residues(&amp;quot;VAL&amp;quot;)) == 2)&amp;lt;/syntaxhighlight&amp;gt; – Returns a cysteine residue which is surrounded from both sides by valine residues.&lt;br /&gt;
* &#039;&#039;Type: Count(where: Pattern, what: PatternSeq) -&amp;gt; Integer&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
====Contains()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 4hhb]&#039;&#039;&#039; &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Contains()&amp;lt;/syntaxhighlight&amp;gt; query checks if the input pattern contains a specified pattern of interest. In other words Contains() query is similar to a query, where the number of occurrences is higher than zero &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;(Count() &amp;gt; 0)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Residues(&amp;quot;HEM&amp;quot;).AmbientResidues(2).Filter(lambda m: m.Contains(Residues(&amp;quot;HIS&amp;quot;)))&amp;lt;/syntaxhighlight&amp;gt; – Returns patterns, where any atom of HEM residue is at most 2A distant from the histidine.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Residues().Filter(lambda m: m.Contains(Atoms(&amp;quot;S&amp;quot;)))&amp;lt;/syntaxhighlight&amp;gt; – Returns all the residue which has a sulphur incorporated in their structure. For this particular example it is similar to the query &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Residues(&amp;quot;CYS&amp;quot;, &amp;quot;MET&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt;.&lt;br /&gt;
* &#039;&#039;Type: Contains(where: Pattern, what: PatternSeq) -&amp;gt; Bool&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Connectivity===&lt;br /&gt;
====IsConnected()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 4m9e, 4m9v]&#039;&#039;&#039; Checks, whether a particular pattern is composed of a single component&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Atoms(&amp;quot;Zn&amp;quot;).AmbientAtoms(4).Filter(lambda m: m.IsConnected())&amp;lt;/syntaxhighlight&amp;gt; – Atoms which are at most 4 A distant from the zinc atom and are all binded together, i.e. there is no outlier.&lt;br /&gt;
* For comparison please compare with the results of the query &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Atoms(&amp;quot;Zn&amp;quot;).AmbientAtoms(4)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* &#039;&#039;Type: IsConnected(pattern: Pattern) -&amp;gt; Bool.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====IsConnectedTo()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 1hho]&#039;&#039;&#039; Checks if the two provided patterns are connected one to another. &lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Residues(&amp;quot;ALA&amp;quot;).Filter(lambda m: m.IsConnectedTo(Residues(&amp;quot;GLY&amp;quot;)))&amp;lt;/syntaxhighlight&amp;gt; – Returns all the alanine residues and directly connected glycine residues.&lt;br /&gt;
* &#039;&#039;Type: IsConnectedTo(current: Pattern, patterns: PatternSeq) -&amp;gt; Bool&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====IsNotConnectedTo()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 1hho]&#039;&#039;&#039; Checks if the two provided patterns are NOT connected one to another.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Residues(&amp;quot;ALA&amp;quot;).Filter(lambda m: m.IsNotConnectedTo(Residues(&amp;quot;GLY&amp;quot;)))&amp;lt;/syntaxhighlight&amp;gt; – Returns all the alanine residues which are not directly connected to the glycine residues.&lt;br /&gt;
* &#039;&#039;Type: IsNotConnectedTo(current: Pattern, patterns: PatternSeq) -&amp;gt; Bool&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====ConnectedAtoms()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 1hho]&#039;&#039;&#039; Returns &#039;&#039;n&#039;&#039; directly bonded layer of atoms to a given pattern.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Atoms(&amp;quot;Fe&amp;quot;).ConnectedAtoms(1)&amp;lt;/syntaxhighlight&amp;gt; – The iron atom and all the atoms which are covalently bonded to it over a single bond.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Atoms(&amp;quot;Fe&amp;quot;).ConnectedAtoms (2)&amp;lt;/syntaxhighlight&amp;gt; – Previous selection and all the atoms which are covalently bonded to them (i.e. additional layer of bonded atom). In other words the output composes of all the atoms which are 2 bonds away from the iron atom.&lt;br /&gt;
* &#039;&#039;Type: ConnectedAtoms(pattern: PatternSeq, n: Integer) -&amp;gt; Patterns&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====ConnectedResidues()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 1hho]&#039;&#039;&#039; Returns n directly bonded layer of residues to a given pattern.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Residues(&amp;quot;HEM&amp;quot;).ConnectedResidues(1)&amp;lt;/syntaxhighlight&amp;gt; – The HEM residue and all the residues which are covalently bonded to any atom of the HEM residue.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Residues(&amp;quot;HEM&amp;quot;).ConnectedResidues(2)&amp;lt;/syntaxhighlight&amp;gt; – previous selection and all the residues which are covalently bonded to them (i.e. additional layer of bonded residues).&lt;br /&gt;
* &#039;&#039;Type: ConnectedResidues(pattern: PatternSeq, n: Integer) -&amp;gt; Patterns&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Lukas</name></author>
	</entry>
	<entry>
		<id>https://webchemwiki.biodata.ceitec.cz/index.php?title=PatternQuery:How_to_build_a_query&amp;diff=2209</id>
		<title>PatternQuery:How to build a query</title>
		<link rel="alternate" type="text/html" href="https://webchemwiki.biodata.ceitec.cz/index.php?title=PatternQuery:How_to_build_a_query&amp;diff=2209"/>
		<updated>2016-07-26T12:51:26Z</updated>

		<summary type="html">&lt;p&gt;Lukas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;toclimit-3&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In order to tune up your queries before executing them on the whole database or just to work with the language interactively, feel free to use the [http://webchem.ncbr.muni.cz/Platform/PatternQuery/Index &#039;&#039;&#039;Explorer&#039;&#039;&#039;] application, where you can upload a PDB molecule of choice, or load a random sample from the PDB database based on selected properties.&lt;br /&gt;
&lt;br /&gt;
You can either try one of our ready-to-use examples or try to make up one of your own.&lt;br /&gt;
&lt;br /&gt;
==How to think about queries==&lt;br /&gt;
When building queries, you have to decompose the problem into smaller chunks, think of a query for each of the pieces and then wisely bind them together. Let us have a goal:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Get all the residues which are as much as 5Å away from any histidine residue and check if the given pattern contains at least 2 negatively charged amino acids.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
From scratch you can&#039;t probably think out a solution right now, but when you decompose the problem into separate individual sub problems, it is not so difficult after all. (Whenever you are unsure about the meaning of the queries, consult the [[PatternQuery:Language Reference | language reference]]). For the given problem, the decomposition is as follows:&lt;br /&gt;
&lt;br /&gt;
#Select histidine residues&lt;br /&gt;
#Select residual surrounding of a pattern up to 5Å.&lt;br /&gt;
#Find negatively charged residues.&lt;br /&gt;
#Count the amino acids.&lt;br /&gt;
#Filter the histidine plus its surrounding matching the condition above.&lt;br /&gt;
&lt;br /&gt;
Now we are ready for constructing individual queries:&lt;br /&gt;
#&amp;lt;code&amp;gt;[[PatternQuery:Language Reference#Residues | Residues(&amp;quot;HIS&amp;quot;)]]&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;[[PatternQuery:Language Reference#AmbientResidues | AmbientResidues(5)]]&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;[[PatternQuery:Language Reference#AminoAcids| AminoAcids(ChargeType=&amp;quot;Negative&amp;quot;)]]&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;[[PatternQuery:Language Reference#Count| Count(residues)]]&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;[[PatternQuery:Language Reference#Filter| Filter(condition)]]&amp;lt;/code&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
It wasn&#039;t that difficult, was it? When we have composed all the queries, we can compose them together in order to achieve our goal as highlighted in the query bellow and in the illustrative info-graphics:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
Residues(&amp;quot;HIS&amp;quot;).&lt;br /&gt;
  AmbientResidues(5).&lt;br /&gt;
  Filter(lambda l: l.Count(AminoAcids(ChargeType = &amp;quot;Negative&amp;quot;)) &amp;gt;= 2)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:PatternQuery-Representation.png | center]]&lt;br /&gt;
&lt;br /&gt;
==Ready-to-use examples==&lt;br /&gt;
&lt;br /&gt;
Now when we are aware of how to think about queries, you are ready to browse a plenty of different examples listed below. The text is separated into three plus one part which differs by data type queries are operated (Atoms, Residues and Patterns). The first two categories deal with only basic &#039;&#039;Atom&#039;&#039; or &#039;&#039;Residue&#039;&#039; selections. Outputs of these two types of queries are Atoms and Residues respectively.  Last category is &#039;Patterns&#039;, which contains a number of advanced queries, these queries demonstrate versatility and a power of &#039;&#039;&#039;PQ&#039;&#039;&#039;. These queries operate on all results provided by both Atom and Residue queries. On the top of that, you can browse several use biologically relevant [[PatternQuery:Use Cases | use cases]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Structure of the text==&lt;br /&gt;
*&#039;&#039;&#039;[PDB id]&#039;&#039;&#039; Here you find an example PDB id where you can try out the query with &#039;&#039;&#039;PatternQuery Explorer&#039;&#039;&#039; and a rough description of the query function.&lt;br /&gt;
* This is followed by examples of this query with with the explanation such as &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Residues(&amp;quot;HEM&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt;. Copy this query to the command text box in &#039;&#039;&#039;PatternQuery Explorer&#039;&#039;&#039; application and immediately see the results.&lt;br /&gt;
* Type of data query operate on and the expected returned value.&lt;br /&gt;
* e.g. &#039;&#039;Type: Atoms(symbols: String*) -&amp;gt; Atoms&#039;&#039;. query &amp;lt;code&amp;gt;[[PatternQuery:Language Reference#Atoms | Atoms()]]&amp;lt;/code&amp;gt; take 0..n strings, representing elements, in parenthesis (&amp;quot;C&amp;quot;, &amp;quot;N&amp;quot;, etc.) and based on the input returns a list of individual atoms.&lt;br /&gt;
&lt;br /&gt;
=Queries=&lt;br /&gt;
&lt;br /&gt;
==Atoms==&lt;br /&gt;
{{big | Basic queries}}&lt;br /&gt;
====Atoms()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns a sequence of individual atoms based on element type provided in the argument. More elements can be specified, if separated by a comma. In case no argument is provided a list of all the atoms is returned.&lt;br /&gt;
*&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Atoms(&amp;quot;Fe&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt; - Returns all iron atoms in the given structure.&lt;br /&gt;
*&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Atoms(&amp;quot;Fe&amp;quot;, &amp;quot;N&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt; - Returns all iron and nitrogen atoms in the given structure.&lt;br /&gt;
* &#039;&#039;Type: Atoms(symbols: String*) -&amp;gt; Atoms.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====AtomNames()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns a sequence of atoms with defined name or names.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;AtomNames(&amp;quot;CA&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt; – Returns all CA atoms.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;AtomNames(&amp;quot;CA&amp;quot;, &amp;quot;N&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt; –Returns atoms with names CA (C? carbon) or N (terminal part of amino acids).&lt;br /&gt;
* &#039;&#039;Type: AtomNames(names: String+) -&amp;gt; Atoms.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====AtomIds()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns a sequence of atoms with given id or ids&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;AtomIds(1)&amp;lt;/syntaxhighlight&amp;gt; – Returns atom with id=1 from the given structures.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;AtomIds(1,2,5) &amp;lt;/syntaxhighlight&amp;gt;- Returns atoms with id=1, 2 and 5 from the given structures.&lt;br /&gt;
* &#039;&#039;Type: AtomIds(ids: Integer+) -&amp;gt; Atoms.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====AtomIdRange()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns a sequence of atoms with ids from a given range (inclusive specified indices).&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;AtomIdRange(1, 10)&amp;lt;/syntaxhighlight&amp;gt; – returns 10 atoms with IDs from the interval &amp;lt;1, 10&amp;gt;, as specified in the input file.&lt;br /&gt;
* &#039;&#039;Type: AtomIdRange(minId: Integer, maxId: ?Integer) -&amp;gt; Atoms&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====NotAtomNames()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns a sequence of atoms which are not defined by an argument.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;NotAtomNames(&amp;quot;C&amp;quot;, &amp;quot;N&amp;quot;, &amp;quot;CA&amp;quot;, &amp;quot;O&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt; – returns all the atoms with names other than C, CA, N and O.  i.e. only the side chain atoms of the protein .&lt;br /&gt;
* &#039;&#039;Type: NotAtomNames(names: String+) -&amp;gt; Atom.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====NotAtomIds()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns a sequence of atoms which does not have a defined id&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;NotAtomIds(1)&amp;lt;/syntaxhighlight&amp;gt; - Returns atom with id other but 1 from the given structures.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;NotAtomIds(1,2,5)&amp;lt;/syntaxhighlight&amp;gt; - Returns atoms with id other but 1,2 and 5 from the given structures.&lt;br /&gt;
* &#039;&#039;Type: NotAtomIds(ids: Integer+) -&amp;gt; Atoms.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====NotAtoms()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns all the atoms not specified in the argument. More elements can be specified, if separated by a comma.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Atoms(&amp;quot;Fe&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt; – returns all the atoms of the structure, but iron.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Atoms(&amp;quot;Fe&amp;quot;, &amp;quot;N&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt; returns all the atoms of the structure, but iron and nitrogen. &lt;br /&gt;
* &#039;&#039;Type: NotAtoms(symbols: String+) -&amp;gt; Atoms.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====RingAtoms()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns specified atoms found on detected rings .&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;RingAtoms(Atoms(&amp;quot;N&amp;quot;), Rings(2 * [&amp;quot;C&amp;quot;] + [&amp;quot;N&amp;quot;] + [&amp;quot;C&amp;quot;] + [&amp;quot;N&amp;quot;]))&amp;lt;/syntaxhighlight&amp;gt; – Returns all the nitrogen atoms on the histidine side chain.&lt;br /&gt;
* &#039;&#039;Type: RingAtoms(atom: Atoms, ring: ?Rings) -&amp;gt; Atoms.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Residues==&lt;br /&gt;
{{big | Basic queries}}&lt;br /&gt;
====Residues()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns a sequence of individual residues specified by a function argument. More residues can be specified, if separated by a comma.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Residues(&amp;quot;HEM&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt; – Returns a list of HEM residues.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Residues (&amp;quot;HEM&amp;quot;, &amp;quot;ALA&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt; – Returns a set of HEM and ALA residues.&lt;br /&gt;
* &#039;&#039;Type: Residues(names: Value*) -&amp;gt; Residues.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====NotResidues()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns a sequence of residues which are not defined by the argument.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;NotResidues(&amp;quot;HEM&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt; – returns a set of residues, which does not have a HEM in their name.&lt;br /&gt;
* &#039;&#039;Type: NotResidues(names: Value+) -&amp;gt; Residues.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====ResidueIds()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns a sequence of specified residues in case the structure contains them. Each residue is represented by its PDB ID and chain such as “A 8”.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;ResidueIds (&amp;quot;14 A&amp;quot;,  &amp;quot;15 A&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt; – Returns 14th  and 15th residue of chain A.&lt;br /&gt;
* &#039;&#039;Type: ResidueIds(ids: String+) -&amp;gt; Residues&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====ResidueIdRange()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns a set of residues on a given chain from the lower to the upper index. In case a residue is not provided in the structure, it is skipped. &lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;ResidueIdRange(&amp;quot;A&amp;quot;, 50,  100)&amp;lt;/syntaxhighlight&amp;gt; – returns a set of residues on chain A from the ID 50 to 100. &lt;br /&gt;
* &#039;&#039;Type: ResidueIdRange(chain: String, min: Integer, max: Integer) -&amp;gt; Residues&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====NotAminoAcids()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns a sequence of residues that are not among the 20 standard amino acids. Allowed values for an optional parameter NoWaters: True, False.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;NotAminoAcids()&amp;lt;/syntaxhighlight&amp;gt; – Returns all the nonstandard residues incorporated in the protein structure with the exception of HOH and WAT residues, which stands for solvent.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;NotAminoAcids(NoWaters=False)&amp;lt;/syntaxhighlight&amp;gt; – Returns all the nonstandard residues incorporated in the protein structure inclusive solvent (HOH and WAT residues).&lt;br /&gt;
* &#039;&#039;Type: NotAminoAcids() -&amp;gt; Residues&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====AminoAcids()====&lt;br /&gt;
*  &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns a sequence of residues that are among the 20 standard amino acids.&lt;br /&gt;
* Allowed values: &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Positive, Negative, Aromatic, Polar, NonPolar&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;AminoAcids()&amp;lt;/syntaxhighlight&amp;gt; – Returns all standard amino acids.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;AminoAcids(ChargeType=&amp;quot;Polar&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt; – Returns all polar amino acids based on the type of their side chain.&lt;br /&gt;
* &#039;&#039;Type: AminoAcids() -&amp;gt; Residues.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====HetResidues()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns a sequence of heteroatom residues as specified in input PDB files, excluding residues.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;HetResidues()&amp;lt;/syntaxhighlight&amp;gt; – A set of hetatom residues.&lt;br /&gt;
* &#039;&#039;Type: HetResidues() -&amp;gt; Residues&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Patterns==&lt;br /&gt;
{{big | Structure specification}}&lt;br /&gt;
&lt;br /&gt;
PQ can select residues or their parts based on their name or Id, however, the true power of PQ lies in its ability to utilize the geometrical and chemical nature of the input structures and select patterns purely based on elements, topology and the connectivity among them.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Rings()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 3d12]&#039;&#039;&#039; Returns all the rings in the protein structure specified by a user.  Any structural ring can be identified by concatenating individual elements the string is composed from.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Rings(2 * [&amp;quot;C&amp;quot;] + [&amp;quot;N&amp;quot;] + [&amp;quot;C&amp;quot;] + [&amp;quot;N&amp;quot;])&amp;lt;/syntaxhighlight&amp;gt; – Returns the histidine aromatic ring. &lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Rings(4 * [&amp;quot;C&amp;quot;] + [&amp;quot;O&amp;quot;])&amp;lt;/syntaxhighlight&amp;gt; – Returns pentose ring. &lt;br /&gt;
* &#039;&#039;Type: Rings(atoms: Value*) -&amp;gt; Ring&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====ToAtoms()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 1hho]&#039;&#039;&#039; Converts the input pattern into a sequence of individual atoms, i.e. each pattern contains a single atom.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Residues(&amp;quot;HEM&amp;quot;).ToAtoms()&amp;lt;/syntaxhighlight&amp;gt; – Returns all the atoms of HEM residues as a sequence of individual atoms.&lt;br /&gt;
* &#039;&#039;Type: ToAtoms(patterns: Patterns) -&amp;gt; Patterns&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====ToResidues()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 1hho]&#039;&#039;&#039; Converts the input pattern into a sequence of individual residues, i.e. It can either decompose a pattern with multiple residues to a sequence of patterns each containing a single residue, or if applied to a sequence of atoms merge atoms to a single pattern per residue.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Residues(&amp;quot;HEM&amp;quot;).AmbientResidues(2).ToResidues()&amp;lt;/syntaxhighlight&amp;gt; – Returns the sequence of individual residues from the 2A surrounding of the HEM residue, inclusive HEM.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Atoms(&amp;quot;C&amp;quot;).ToResidues()&amp;lt;/syntaxhighlight&amp;gt; – Returns a sequence of patterns. Each pattern contains only carbon atoms grouped together according to their parent residue.&lt;br /&gt;
* &#039;&#039;Type: ToResidues(patterns: PatternSeq) -&amp;gt; Patterns&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Union()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 1hho]&#039;&#039;&#039; Merges the sequence of input patterns to a single pattern. &lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Residues(&amp;quot;HEM&amp;quot;).ConnectedResidues(1).Union()&amp;lt;/syntaxhighlight&amp;gt; –  Takes two HEM residues of the 1hho protein with covalently bonded residues (2 patterns) and merges them into a single pattern.&lt;br /&gt;
* &#039;&#039;Type: Union(patterns: PatternSeq) -&amp;gt; Patterns&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====RegularMotifs()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 1het]&#039;&#039;&#039; Sequence motifs is extracted from the primary sequence based on the input regular expression. Please note, that PQ does not check presence of a gap gap in the chain e.g. if HIS 28 is followed by the residue 30 ALA query ‘HA’ returns positive match for such example.&lt;br /&gt;
* In case the information about posttranslational modifications is present in &#039;&#039;MODRES&#039;&#039; or &#039;&#039;_pdbx_struct_mod_residue&#039;&#039; fields, modified residues are treated as standard amino acids. Therefore, a letter &#039;&#039;P&#039;&#039; stands for a proline residue so as all its modifications, e.g. &#039;&#039;&#039;HYP&#039;&#039;&#039; (hydroxyproline). &lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt; RegularMotifs(&amp;quot;HH&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt; – Finds two consecutive histidine residues or their modifications. &lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt; RegularMotifs(&amp;quot;G.{1,2}G&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt; – Finds two glycine residues separated by one or two other residues. &lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt; RegularMotifs(&amp;quot;G.{1,2}G&amp;quot;).Filter(lambda m: m.IsConnected())&amp;lt;/syntaxhighlight&amp;gt; – Finds two glycine residues separated by one or two residues and verifies that all of them are bonded. &lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt; RegularMotifs(&amp;quot;.P.&amp;quot;).Filter(lambda l: l.Count(NotAminoAcids()) == 0)&amp;lt;/syntaxhighlight&amp;gt; - Finds 3 consecutive residues, where the middle one is proline and verifies that neither of them is outside the &#039;&#039;standard 20&#039;&#039;.&lt;br /&gt;
* &#039;&#039;Type: RegularMotifs(regex: Value) -&amp;gt; Patterns&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Cluster()====&lt;br /&gt;
* Clusters identifies results to a single pattern based on their distance [A]. On contrary to the &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Near()&amp;lt;/syntaxhighlight&amp;gt; query &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Cluster()&amp;lt;/syntaxhighlight&amp;gt; does not provide a count check. See example below.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Cluster(5, Residues(&amp;quot;Ala&amp;quot;))&amp;lt;/syntaxhighlight&amp;gt;  – Returns all the alanine residues which are at most 5A distant to each other.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Cluster(3, RingAtoms(Atoms(&amp;quot;N&amp;quot;), Rings(2 * [&amp;quot;C&amp;quot;] + [&amp;quot;N&amp;quot;] + [&amp;quot;C&amp;quot;] + [&amp;quot;N&amp;quot;])))&amp;lt;/syntaxhighlight&amp;gt; – Returns all the nitrogen atoms from particular rings to a single pattern in case the atoms are at most 3A distant to each other. &lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Cluster(2 , Atoms(&amp;quot;C&amp;quot;), Atoms(&amp;quot;C&amp;quot;))&amp;lt;/syntaxhighlight&amp;gt; – Returns all the carbon atoms which are pairwise closer than 2Å. In case any other carbon atom would be inside this 2A sphere, it is also included in the result. Therefore, if you insist on exactly 2 carbon atoms to be returned, use &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Near()&amp;lt;/syntaxhighlight&amp;gt; query instead.&lt;br /&gt;
* &#039;&#039;Type: Cluster(r: Number, patterns: PatternSeq) -&amp;gt; Patterns&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Boolean operations===&lt;br /&gt;
====Or()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Merges up to &#039;&#039;n&#039;&#039; different patterns together.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Or(AminoAcids(ChargeType=&amp;quot;Negative&amp;quot;), AminoAcids(ChargeType= &amp;quot;Positive&amp;quot;))&amp;lt;/syntaxhighlight&amp;gt; – returns all charged amino acids both positively charged and negatively charged.&lt;br /&gt;
* &#039;&#039;Type: Or(patterns: PatternSeq+) -&amp;gt; Patterns&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Topology function===&lt;br /&gt;
====AmbientAtoms()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 1hho]&#039;&#039;&#039; Returns all the atoms, which are within nÅ from the geometrical center of a given pattern.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Atoms(&amp;quot;Fe&amp;quot;).AmbientAtoms(4)&amp;lt;/syntaxhighlight&amp;gt; – returns all the atoms, which are closer than 4Å from the center of mass of iron atom.&lt;br /&gt;
* &#039;&#039;Type: AmbientAtoms(pattern: PatternSeq, r: Number) -&amp;gt; Patterns&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====AmbientResidues()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 1hho]&#039;&#039;&#039; Returns all the residues, which are within nÅ from the geometrical center of a given pattern.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Residues(&amp;quot;HEM&amp;quot;).AmbientResidues(4)&amp;lt;/syntaxhighlight&amp;gt; – returns all the residues, which are closer than 4Å from the center of mass of HEM residues.&lt;br /&gt;
* &#039;&#039;Type: AmbientResidues(pattern: PatternSeq, r: Number) -&amp;gt; Patterns&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Near()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 1hho]&#039;&#039;&#039; Clusters all the specified patterns, which are pairwise closer [Å] than a specified argument. Additionally, it checks if the pattern contains exactly specified patterns. On the contrary to the Cluster() query this does the ‘count check’.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Near(0, Rings(6*[&#039;C&#039;]), Rings(4*[&#039;C&#039;] + [&#039;N&#039;]))&amp;lt;/syntaxhighlight&amp;gt; – Returns patterns containing only purine. In this example the purine part of tryptophan side chain will be returned.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Near(2 , Atoms(&amp;quot;C&amp;quot;), Atoms(&amp;quot;C&amp;quot;), Atoms(&amp;quot;C&amp;quot;), Atoms(&amp;quot;C&amp;quot;))&amp;lt;/syntaxhighlight&amp;gt; – Returns patterns which contain exactly 4 carbon atoms within a sphere of 2Å.&lt;br /&gt;
* &#039;&#039;Type: Near(r: Number, patterns: PatternSeq+) -&amp;gt; Patterns&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Inside()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 1hho]&#039;&#039;&#039; Inside query tries to identify given pattern within another pattern. It is particularly useful for location of specific atomic arrangements within a more general ones.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Residues(&amp;quot;Gly&amp;quot;).Inside(Chains(&amp;quot;A&amp;quot;))&amp;lt;/syntaxhighlight&amp;gt; - Returns glycine residues found on the chain A.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Atoms(&amp;quot;S&amp;quot;).Inside(HetResidues())&amp;lt;/syntaxhighlight&amp;gt; - Returns sulphur atoms found in the heteroatom residues&lt;br /&gt;
* &#039;&#039;Type: Inside(patterns&amp;amp;#58; PatternSeq, where&amp;amp;#58; PatternSeq) -&amp;amp;gt; PatternSeq&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Filtering===&lt;br /&gt;
====Filter()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 1hho]&#039;&#039;&#039; Filtering is used for removing unwanted patterns from the result. A condition given as a function argument is evaluated for each pattern from input pattern sequence referred to as ‘m’ in the following text. Only results satisfying the condition are returned, others are filtered out. Technically, it uses lambda abstraction for filtering a collection of input patterns. The usage is the same as in the Python programming language, and therefore, your previous Python experiences are beneficial. &lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Residues().Filter(lambda m: m.IsConnectedTo(Atoms(&amp;quot;Fe&amp;quot;))) &amp;lt;/syntaxhighlight&amp;gt; – returns a set of patterns from all residues which are covalently bonded to the iron atom (excluded the HEM residue).&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt; Residues().Filter(lambda m: m.Count(Atoms(&amp;quot;O&amp;quot;)) == 2)&amp;lt;/syntaxhighlight&amp;gt; returns all the residues containing exactly two oxygen atoms.&lt;br /&gt;
* &#039;&#039;Type: Filter(patterns: PatternSeq, filter: Pattern-&amp;gt;Bool) -&amp;gt; Patterns&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Count()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 1hho]&#039;&#039;&#039; Usually it is convenient to utilize this function inside a filtering query. The &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Count()&amp;lt;/syntaxhighlight&amp;gt; query counts the number of occurrences of a pattern inside a different pattern.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Residues(&amp;quot;HEM&amp;quot;).ConnectedResidues(2).Filter(lambda m: m.Count(Atoms(&amp;quot;S&amp;quot;)) == 1)&amp;lt;/syntaxhighlight&amp;gt; – Returns patterns composed of a HEM residue surrounded by two layers of bonded residues in case that the whole pattern contains exactly one sulphur atom.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Residues(&amp;quot;CYS&amp;quot;).ConnectedResidues(1).Filter(lambda m: m.Count(Residues(&amp;quot;VAL&amp;quot;)) == 2)&amp;lt;/syntaxhighlight&amp;gt; – Returns a cysteine residue which is surrounded from both sides by valine residues.&lt;br /&gt;
* &#039;&#039;Type: Count(where: Pattern, what: PatternSeq) -&amp;gt; Integer&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
====Contains()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 4hhb]&#039;&#039;&#039; &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Contains()&amp;lt;/syntaxhighlight&amp;gt; query checks if the input pattern contains a specified pattern of interest. In other words Contains() query is similar to a query, where the number of occurrences is higher than zero &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;(Count() &amp;gt; 0)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Residues(&amp;quot;HEM&amp;quot;).AmbientResidues(2).Filter(lambda m: m.Contains(Residues(&amp;quot;HIS&amp;quot;)))&amp;lt;/syntaxhighlight&amp;gt; – Returns patterns, where any atom of HEM residue is at most 2A distant from the histidine.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Residues().Filter(lambda m: m.Contains(Atoms(&amp;quot;S&amp;quot;)))&amp;lt;/syntaxhighlight&amp;gt; – Returns all the residue which has a sulphur incorporated in their structure. For this particular example it is similar to the query &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Residues(&amp;quot;CYS&amp;quot;, &amp;quot;MET&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt;.&lt;br /&gt;
* &#039;&#039;Type: Contains(where: Pattern, what: PatternSeq) -&amp;gt; Bool&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Connectivity===&lt;br /&gt;
====IsConnected()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 4m9e, 4m9v]&#039;&#039;&#039; Checks, whether a particular pattern is composed of a single component&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Atoms(&amp;quot;Zn&amp;quot;).AmbientAtoms(4).Filter(lambda m: m.IsConnected())&amp;lt;/syntaxhighlight&amp;gt; – Atoms which are at most 4 A distant from the zinc atom and are all binded together, i.e. there is no outlier.&lt;br /&gt;
* For comparison please compare with the results of the query &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Atoms(&amp;quot;Zn&amp;quot;).AmbientAtoms(4)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* &#039;&#039;Type: IsConnected(pattern: Pattern) -&amp;gt; Bool.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====IsConnectedTo()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 1hho]&#039;&#039;&#039; Checks if the two provided patterns are connected one to another. &lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Residues(&amp;quot;ALA&amp;quot;).Filter(lambda m: m.IsConnectedTo(Residues(&amp;quot;GLY&amp;quot;)))&amp;lt;/syntaxhighlight&amp;gt; – Returns all the alanine residues and directly connected glycine residues.&lt;br /&gt;
* &#039;&#039;Type: IsConnectedTo(current: Pattern, patterns: PatternSeq) -&amp;gt; Bool&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====IsNotConnectedTo()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 1hho]&#039;&#039;&#039; Checks if the two provided patterns are NOT connected one to another.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Residues(&amp;quot;ALA&amp;quot;).Filter(lambda m: m.IsNotConnectedTo(Residues(&amp;quot;GLY&amp;quot;)))&amp;lt;/syntaxhighlight&amp;gt; – Returns all the alanine residues which are not directly connected to the glycine residues.&lt;br /&gt;
* &#039;&#039;Type: IsNotConnectedTo(current: Pattern, patterns: PatternSeq) -&amp;gt; Bool&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====ConnectedAtoms()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 1hho]&#039;&#039;&#039; Returns &#039;&#039;n&#039;&#039; directly bonded layer of atoms to a given pattern.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Atoms(&amp;quot;Fe&amp;quot;).ConnectedAtoms(1)&amp;lt;/syntaxhighlight&amp;gt; – The iron atom and all the atoms which are covalently bonded to it over a single bond.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Atoms(&amp;quot;Fe&amp;quot;).ConnectedAtoms (2)&amp;lt;/syntaxhighlight&amp;gt; – Previous selection and all the atoms which are covalently bonded to them (i.e. additional layer of bonded atom). In other words the output composes of all the atoms which are 2 bonds away from the iron atom.&lt;br /&gt;
* &#039;&#039;Type: ConnectedAtoms(pattern: PatternSeq, n: Integer) -&amp;gt; Patterns&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====ConnectedResidues()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 1hho]&#039;&#039;&#039; Returns n directly bonded layer of residues to a given pattern.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Residues(&amp;quot;HEM&amp;quot;).ConnectedResidues(1)&amp;lt;/syntaxhighlight&amp;gt; – The HEM residue and all the residues which are covalently bonded to any atom of the HEM residue.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline=&amp;quot;&amp;quot;&amp;gt;Residues(&amp;quot;HEM&amp;quot;).ConnectedResidues(2)&amp;lt;/syntaxhighlight&amp;gt; – previous selection and all the residues which are covalently bonded to them (i.e. additional layer of bonded residues).&lt;br /&gt;
* &#039;&#039;Type: ConnectedResidues(pattern: PatternSeq, n: Integer) -&amp;gt; Patterns&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Lukas</name></author>
	</entry>
	<entry>
		<id>https://webchemwiki.biodata.ceitec.cz/index.php?title=PatternQuery:How_to_build_a_query&amp;diff=2208</id>
		<title>PatternQuery:How to build a query</title>
		<link rel="alternate" type="text/html" href="https://webchemwiki.biodata.ceitec.cz/index.php?title=PatternQuery:How_to_build_a_query&amp;diff=2208"/>
		<updated>2016-07-26T12:50:38Z</updated>

		<summary type="html">&lt;p&gt;Lukas: /* Count() */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;toclimit-3&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In order to tune up your queries before executing them on the whole database or just to work with the language interactively, feel free to use the [http://webchem.ncbr.muni.cz/Platform/PatternQuery/Index &#039;&#039;&#039;Explorer&#039;&#039;&#039;] application, where you can upload a PDB molecule of choice, or load a random sample from the PDB database based on selected properties.&lt;br /&gt;
&lt;br /&gt;
You can either try one of our ready-to-use examples or try to make up one of your own.&lt;br /&gt;
&lt;br /&gt;
==How to think about queries==&lt;br /&gt;
When building queries, you have to decompose the problem into smaller chunks, think of a query for each of the pieces and then wisely bind them together. Let us have a goal:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Get all the residues which are as much as 5Å away from any histidine residue and check if the given pattern contains at least 2 negatively charged amino acids.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
From scratch you can&#039;t probably think out a solution right now, but when you decompose the problem into separate individual sub problems, it is not so difficult after all. (Whenever you are unsure about the meaning of the queries, consult the [[PatternQuery:Language Reference | language reference]]). For the given problem, the decomposition is as follows:&lt;br /&gt;
&lt;br /&gt;
#Select histidine residues&lt;br /&gt;
#Select residual surrounding of a pattern up to 5Å.&lt;br /&gt;
#Find negatively charged residues.&lt;br /&gt;
#Count the amino acids.&lt;br /&gt;
#Filter the histidine plus its surrounding matching the condition above.&lt;br /&gt;
&lt;br /&gt;
Now we are ready for constructing individual queries:&lt;br /&gt;
#&amp;lt;code&amp;gt;[[PatternQuery:Language Reference#Residues | Residues(&amp;quot;HIS&amp;quot;)]]&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;[[PatternQuery:Language Reference#AmbientResidues | AmbientResidues(5)]]&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;[[PatternQuery:Language Reference#AminoAcids| AminoAcids(ChargeType=&amp;quot;Negative&amp;quot;)]]&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;[[PatternQuery:Language Reference#Count| Count(residues)]]&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;[[PatternQuery:Language Reference#Filter| Filter(condition)]]&amp;lt;/code&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
It wasn&#039;t that difficult, was it? When we have composed all the queries, we can compose them together in order to achieve our goal as highlighted in the query bellow and in the illustrative info-graphics:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
Residues(&amp;quot;HIS&amp;quot;).&lt;br /&gt;
  AmbientResidues(5).&lt;br /&gt;
  Filter(lambda l: l.Count(AminoAcids(ChargeType = &amp;quot;Negative&amp;quot;)) &amp;gt;= 2)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:PatternQuery-Representation.png | center]]&lt;br /&gt;
&lt;br /&gt;
==Ready-to-use examples==&lt;br /&gt;
&lt;br /&gt;
Now when we are aware of how to think about queries, you are ready to browse a plenty of different examples listed below. The text is separated into three plus one part which differs by data type queries are operated (Atoms, Residues and Patterns). The first two categories deal with only basic &#039;&#039;Atom&#039;&#039; or &#039;&#039;Residue&#039;&#039; selections. Outputs of these two types of queries are Atoms and Residues respectively.  Last category is &#039;Patterns&#039;, which contains a number of advanced queries, these queries demonstrate versatility and a power of &#039;&#039;&#039;PQ&#039;&#039;&#039;. These queries operate on all results provided by both Atom and Residue queries. On the top of that, you can browse several use biologically relevant [[PatternQuery:Use Cases | use cases]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Structure of the text==&lt;br /&gt;
*&#039;&#039;&#039;[PDB id]&#039;&#039;&#039; Here you find an example PDB id where you can try out the query with &#039;&#039;&#039;PatternQuery Explorer&#039;&#039;&#039; and a rough description of the query function.&lt;br /&gt;
* This is followed by examples of this query with with the explanation such as &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Residues(&amp;quot;HEM&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt;. Copy this query to the command text box in &#039;&#039;&#039;PatternQuery Explorer&#039;&#039;&#039; application and immediately see the results.&lt;br /&gt;
* Type of data query operate on and the expected returned value.&lt;br /&gt;
* e.g. &#039;&#039;Type: Atoms(symbols: String*) -&amp;gt; Atoms&#039;&#039;. query &amp;lt;code&amp;gt;[[PatternQuery:Language Reference#Atoms | Atoms()]]&amp;lt;/code&amp;gt; take 0..n strings, representing elements, in parenthesis (&amp;quot;C&amp;quot;, &amp;quot;N&amp;quot;, etc.) and based on the input returns a list of individual atoms.&lt;br /&gt;
&lt;br /&gt;
=Queries=&lt;br /&gt;
&lt;br /&gt;
==Atoms==&lt;br /&gt;
{{big | Basic queries}}&lt;br /&gt;
====Atoms()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns a sequence of individual atoms based on element type provided in the argument. More elements can be specified, if separated by a comma. In case no argument is provided a list of all the atoms is returned.&lt;br /&gt;
*&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Atoms(&amp;quot;Fe&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt; - Returns all iron atoms in the given structure.&lt;br /&gt;
*&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Atoms(&amp;quot;Fe&amp;quot;, &amp;quot;N&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt; - Returns all iron and nitrogen atoms in the given structure.&lt;br /&gt;
* &#039;&#039;Type: Atoms(symbols: String*) -&amp;gt; Atoms.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====AtomNames()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns a sequence of atoms with defined name or names.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;AtomNames(&amp;quot;CA&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt; – Returns all CA atoms.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;AtomNames(&amp;quot;CA&amp;quot;, &amp;quot;N&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt; –Returns atoms with names CA (C? carbon) or N (terminal part of amino acids).&lt;br /&gt;
* &#039;&#039;Type: AtomNames(names: String+) -&amp;gt; Atoms.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====AtomIds()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns a sequence of atoms with given id or ids&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;AtomIds(1)&amp;lt;/syntaxhighlight&amp;gt; – Returns atom with id=1 from the given structures.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;AtomIds(1,2,5) &amp;lt;/syntaxhighlight&amp;gt;- Returns atoms with id=1, 2 and 5 from the given structures.&lt;br /&gt;
* &#039;&#039;Type: AtomIds(ids: Integer+) -&amp;gt; Atoms.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====AtomIdRange()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns a sequence of atoms with ids from a given range (inclusive specified indices).&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;AtomIdRange(1, 10)&amp;lt;/syntaxhighlight&amp;gt; – returns 10 atoms with IDs from the interval &amp;lt;1, 10&amp;gt;, as specified in the input file.&lt;br /&gt;
* &#039;&#039;Type: AtomIdRange(minId: Integer, maxId: ?Integer) -&amp;gt; Atoms&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====NotAtomNames()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns a sequence of atoms which are not defined by an argument.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;NotAtomNames(&amp;quot;C&amp;quot;, &amp;quot;N&amp;quot;, &amp;quot;CA&amp;quot;, &amp;quot;O&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt; – returns all the atoms with names other than C, CA, N and O.  i.e. only the side chain atoms of the protein .&lt;br /&gt;
* &#039;&#039;Type: NotAtomNames(names: String+) -&amp;gt; Atom.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====NotAtomIds()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns a sequence of atoms which does not have a defined id&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;NotAtomIds(1)&amp;lt;/syntaxhighlight&amp;gt; - Returns atom with id other but 1 from the given structures.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;NotAtomIds(1,2,5)&amp;lt;/syntaxhighlight&amp;gt; - Returns atoms with id other but 1,2 and 5 from the given structures.&lt;br /&gt;
* &#039;&#039;Type: NotAtomIds(ids: Integer+) -&amp;gt; Atoms.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====NotAtoms()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns all the atoms not specified in the argument. More elements can be specified, if separated by a comma.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Atoms(&amp;quot;Fe&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt; – returns all the atoms of the structure, but iron.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Atoms(&amp;quot;Fe&amp;quot;, &amp;quot;N&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt; returns all the atoms of the structure, but iron and nitrogen. &lt;br /&gt;
* &#039;&#039;Type: NotAtoms(symbols: String+) -&amp;gt; Atoms.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====RingAtoms()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns specified atoms found on detected rings .&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;RingAtoms(Atoms(&amp;quot;N&amp;quot;), Rings(2 * [&amp;quot;C&amp;quot;] + [&amp;quot;N&amp;quot;] + [&amp;quot;C&amp;quot;] + [&amp;quot;N&amp;quot;]))&amp;lt;/syntaxhighlight&amp;gt; – Returns all the nitrogen atoms on the histidine side chain.&lt;br /&gt;
* &#039;&#039;Type: RingAtoms(atom: Atoms, ring: ?Rings) -&amp;gt; Atoms.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Residues==&lt;br /&gt;
{{big | Basic queries}}&lt;br /&gt;
====Residues()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns a sequence of individual residues specified by a function argument. More residues can be specified, if separated by a comma.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Residues(&amp;quot;HEM&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt; – Returns a list of HEM residues.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Residues (&amp;quot;HEM&amp;quot;, &amp;quot;ALA&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt; – Returns a set of HEM and ALA residues.&lt;br /&gt;
* &#039;&#039;Type: Residues(names: Value*) -&amp;gt; Residues.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====NotResidues()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns a sequence of residues which are not defined by the argument.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;NotResidues(&amp;quot;HEM&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt; – returns a set of residues, which does not have a HEM in their name.&lt;br /&gt;
* &#039;&#039;Type: NotResidues(names: Value+) -&amp;gt; Residues.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====ResidueIds()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns a sequence of specified residues in case the structure contains them. Each residue is represented by its PDB ID and chain such as “A 8”.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;ResidueIds (&amp;quot;14 A&amp;quot;,  &amp;quot;15 A&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt; – Returns 14th  and 15th residue of chain A.&lt;br /&gt;
* &#039;&#039;Type: ResidueIds(ids: String+) -&amp;gt; Residues&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====ResidueIdRange()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns a set of residues on a given chain from the lower to the upper index. In case a residue is not provided in the structure, it is skipped. &lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;ResidueIdRange(&amp;quot;A&amp;quot;, 50,  100)&amp;lt;/syntaxhighlight&amp;gt; – returns a set of residues on chain A from the ID 50 to 100. &lt;br /&gt;
* &#039;&#039;Type: ResidueIdRange(chain: String, min: Integer, max: Integer) -&amp;gt; Residues&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====NotAminoAcids()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns a sequence of residues that are not among the 20 standard amino acids. Allowed values for an optional parameter NoWaters: True, False.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;NotAminoAcids()&amp;lt;/syntaxhighlight&amp;gt; – Returns all the nonstandard residues incorporated in the protein structure with the exception of HOH and WAT residues, which stands for solvent.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;NotAminoAcids(NoWaters=False)&amp;lt;/syntaxhighlight&amp;gt; – Returns all the nonstandard residues incorporated in the protein structure inclusive solvent (HOH and WAT residues).&lt;br /&gt;
* &#039;&#039;Type: NotAminoAcids() -&amp;gt; Residues&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====AminoAcids()====&lt;br /&gt;
*  &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns a sequence of residues that are among the 20 standard amino acids.&lt;br /&gt;
* Allowed values: &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Positive, Negative, Aromatic, Polar, NonPolar&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;AminoAcids()&amp;lt;/syntaxhighlight&amp;gt; – Returns all standard amino acids.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;AminoAcids(ChargeType=&amp;quot;Polar&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt; – Returns all polar amino acids based on the type of their side chain.&lt;br /&gt;
* &#039;&#039;Type: AminoAcids() -&amp;gt; Residues.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====HetResidues()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns a sequence of heteroatom residues as specified in input PDB files, excluding residues.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;HetResidues()&amp;lt;/syntaxhighlight&amp;gt; – A set of hetatom residues.&lt;br /&gt;
* &#039;&#039;Type: HetResidues() -&amp;gt; Residues&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Patterns==&lt;br /&gt;
{{big | Structure specification}}&lt;br /&gt;
&lt;br /&gt;
PQ can select residues or their parts based on their name or Id, however, the true power of PQ lies in its ability to utilize the geometrical and chemical nature of the input structures and select patterns purely based on elements, topology and the connectivity among them.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Rings()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 3d12]&#039;&#039;&#039; Returns all the rings in the protein structure specified by a user.  Any structural ring can be identified by concatenating individual elements the string is composed from.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Rings(2 * [&amp;quot;C&amp;quot;] + [&amp;quot;N&amp;quot;] + [&amp;quot;C&amp;quot;] + [&amp;quot;N&amp;quot;])&amp;lt;/syntaxhighlight&amp;gt; – Returns the histidine aromatic ring. &lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Rings(4 * [&amp;quot;C&amp;quot;] + [&amp;quot;O&amp;quot;])&amp;lt;/syntaxhighlight&amp;gt; – Returns pentose ring. &lt;br /&gt;
* &#039;&#039;Type: Rings(atoms: Value*) -&amp;gt; Ring&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====ToAtoms()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 1hho]&#039;&#039;&#039; Converts the input pattern into a sequence of individual atoms, i.e. each pattern contains a single atom.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Residues(&amp;quot;HEM&amp;quot;).ToAtoms()&amp;lt;/syntaxhighlight&amp;gt; – Returns all the atoms of HEM residues as a sequence of individual atoms.&lt;br /&gt;
* &#039;&#039;Type: ToAtoms(patterns: Patterns) -&amp;gt; Patterns&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====ToResidues()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 1hho]&#039;&#039;&#039; Converts the input pattern into a sequence of individual residues, i.e. It can either decompose a pattern with multiple residues to a sequence of patterns each containing a single residue, or if applied to a sequence of atoms merge atoms to a single pattern per residue.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Residues(&amp;quot;HEM&amp;quot;).AmbientResidues(2).ToResidues()&amp;lt;/syntaxhighlight&amp;gt; – Returns the sequence of individual residues from the 2A surrounding of the HEM residue, inclusive HEM.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Atoms(&amp;quot;C&amp;quot;).ToResidues()&amp;lt;/syntaxhighlight&amp;gt; – Returns a sequence of patterns. Each pattern contains only carbon atoms grouped together according to their parent residue.&lt;br /&gt;
* &#039;&#039;Type: ToResidues(patterns: PatternSeq) -&amp;gt; Patterns&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Union()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 1hho]&#039;&#039;&#039; Merges the sequence of input patterns to a single pattern. &lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Residues(&amp;quot;HEM&amp;quot;).ConnectedResidues(1).Union()&amp;lt;/syntaxhighlight&amp;gt; –  Takes two HEM residues of the 1hho protein with covalently bonded residues (2 patterns) and merges them into a single pattern.&lt;br /&gt;
* &#039;&#039;Type: Union(patterns: PatternSeq) -&amp;gt; Patterns&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====RegularMotifs()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 1het]&#039;&#039;&#039; Sequence motifs is extracted from the primary sequence based on the input regular expression. Please note, that PQ does not check presence of a gap gap in the chain e.g. if HIS 28 is followed by the residue 30 ALA query ‘HA’ returns positive match for such example.&lt;br /&gt;
* In case the information about posttranslational modifications is present in &#039;&#039;MODRES&#039;&#039; or &#039;&#039;_pdbx_struct_mod_residue&#039;&#039; fields, modified residues are treated as standard amino acids. Therefore, a letter &#039;&#039;P&#039;&#039; stands for a proline residue so as all its modifications, e.g. &#039;&#039;&#039;HYP&#039;&#039;&#039; (hydroxyproline). &lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt; RegularMotifs(&amp;quot;HH&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt; – Finds two consecutive histidine residues or their modifications. &lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt; RegularMotifs(&amp;quot;G.{1,2}G&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt; – Finds two glycine residues separated by one or two other residues. &lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt; RegularMotifs(&amp;quot;G.{1,2}G&amp;quot;).Filter(lambda m: m.IsConnected())&amp;lt;/syntaxhighlight&amp;gt; – Finds two glycine residues separated by one or two residues and verifies that all of them are bonded. &lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt; RegularMotifs(&amp;quot;.P.&amp;quot;).Filter(lambda l: l.Count(NotAminoAcids()) == 0)&amp;lt;/syntaxhighlight&amp;gt; - Finds 3 consecutive residues, where the middle one is proline and verifies that neither of them is outside the &#039;&#039;standard 20&#039;&#039;.&lt;br /&gt;
* &#039;&#039;Type: RegularMotifs(regex: Value) -&amp;gt; Patterns&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Cluster()====&lt;br /&gt;
* Clusters identifies results to a single pattern based on their distance [A]. On contrary to the &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Near()&amp;lt;/syntaxhighlight&amp;gt; query &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Cluster()&amp;lt;/syntaxhighlight&amp;gt; does not provide a count check. See example below.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Cluster(5, Residues(&amp;quot;Ala&amp;quot;))&amp;lt;/syntaxhighlight&amp;gt;  – Returns all the alanine residues which are at most 5A distant to each other.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Cluster(3, RingAtoms(Atoms(&amp;quot;N&amp;quot;), Rings(2 * [&amp;quot;C&amp;quot;] + [&amp;quot;N&amp;quot;] + [&amp;quot;C&amp;quot;] + [&amp;quot;N&amp;quot;])))&amp;lt;/syntaxhighlight&amp;gt; – Returns all the nitrogen atoms from particular rings to a single pattern in case the atoms are at most 3A distant to each other. &lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Cluster(2 , Atoms(&amp;quot;C&amp;quot;), Atoms(&amp;quot;C&amp;quot;))&amp;lt;/syntaxhighlight&amp;gt; – Returns all the carbon atoms which are pairwise closer than 2Å. In case any other carbon atom would be inside this 2A sphere, it is also included in the result. Therefore, if you insist on exactly 2 carbon atoms to be returned, use &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Near()&amp;lt;/syntaxhighlight&amp;gt; query instead.&lt;br /&gt;
* &#039;&#039;Type: Cluster(r: Number, patterns: PatternSeq) -&amp;gt; Patterns&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Boolean operations===&lt;br /&gt;
====Or()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Merges up to &#039;&#039;n&#039;&#039; different patterns together.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Or(AminoAcids(ChargeType=&amp;quot;Negative&amp;quot;), AminoAcids(ChargeType= &amp;quot;Positive&amp;quot;))&amp;lt;/syntaxhighlight&amp;gt; – returns all charged amino acids both positively charged and negatively charged.&lt;br /&gt;
* &#039;&#039;Type: Or(patterns: PatternSeq+) -&amp;gt; Patterns&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Topology function===&lt;br /&gt;
====AmbientAtoms()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 1hho]&#039;&#039;&#039; Returns all the atoms, which are within nÅ from the geometrical center of a given pattern.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Atoms(&amp;quot;Fe&amp;quot;).AmbientAtoms(4)&amp;lt;/syntaxhighlight&amp;gt; – returns all the atoms, which are closer than 4Å from the center of mass of iron atom.&lt;br /&gt;
* &#039;&#039;Type: AmbientAtoms(pattern: PatternSeq, r: Number) -&amp;gt; Patterns&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====AmbientResidues()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 1hho]&#039;&#039;&#039; Returns all the residues, which are within nÅ from the geometrical center of a given pattern.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Residues(&amp;quot;HEM&amp;quot;).AmbientResidues(4)&amp;lt;/syntaxhighlight&amp;gt; – returns all the residues, which are closer than 4Å from the center of mass of HEM residues.&lt;br /&gt;
* &#039;&#039;Type: AmbientResidues(pattern: PatternSeq, r: Number) -&amp;gt; Patterns&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Near()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 1hho]&#039;&#039;&#039; Clusters all the specified patterns, which are pairwise closer [Å] than a specified argument. Additionally, it checks if the pattern contains exactly specified patterns. On the contrary to the Cluster() query this does the ‘count check’.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Near(0, Rings(6*[&#039;C&#039;]), Rings(4*[&#039;C&#039;] + [&#039;N&#039;]))&amp;lt;/syntaxhighlight&amp;gt; – Returns patterns containing only purine. In this example the purine part of tryptophan side chain will be returned.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Near(2 , Atoms(&amp;quot;C&amp;quot;), Atoms(&amp;quot;C&amp;quot;), Atoms(&amp;quot;C&amp;quot;), Atoms(&amp;quot;C&amp;quot;))&amp;lt;/syntaxhighlight&amp;gt; – Returns patterns which contain exactly 4 carbon atoms within a sphere of 2Å.&lt;br /&gt;
* &#039;&#039;Type: Near(r: Number, patterns: PatternSeq+) -&amp;gt; Patterns&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Inside()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 1hho]&#039;&#039;&#039; Inside query tries to identify given pattern within another pattern. It is particularly useful for location of specific atomic arrangements within a more general ones.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Residues(&amp;quot;Gly&amp;quot;).Inside(Chains(&amp;quot;A&amp;quot;))&amp;lt;/syntaxhighlight&amp;gt; - Returns glycine residues found on the chain A.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Atoms(&amp;quot;S&amp;quot;).Inside(HetResidues())&amp;lt;/syntaxhighlight&amp;gt; - Returns sulphur atoms found in the heteroatom residues&lt;br /&gt;
* &#039;&#039;Type: Inside(patterns&amp;amp;#58; PatternSeq, where&amp;amp;#58; PatternSeq) -&amp;amp;gt; PatternSeq&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Filtering===&lt;br /&gt;
====Filter()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 1hho]&#039;&#039;&#039; Filtering is used for removing unwanted patterns from the result. A condition given as a function argument is evaluated for each pattern from input pattern sequence referred to as ‘m’ in the following text. Only results satisfying the condition are returned, others are filtered out. Technically, it uses lambda abstraction for filtering a collection of input patterns. The usage is the same as in the Python programming language, and therefore, your previous Python experiences are beneficial. &lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Residues().Filter(lambda m: m.IsConnectedTo(Atoms(&amp;quot;Fe&amp;quot;))) &amp;lt;/syntaxhighlight&amp;gt; – returns a set of patterns from all residues which are covalently bonded to the iron atom (excluded the HEM residue).&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt; Residues().Filter(lambda m: m.Count(Atoms(&amp;quot;O&amp;quot;)) == 2)&amp;lt;/syntaxhighlight&amp;gt; returns all the residues containing exactly two oxygen atoms.&lt;br /&gt;
* &#039;&#039;Type: Filter(patterns: PatternSeq, filter: Pattern-&amp;gt;Bool) -&amp;gt; Patterns&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Count()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 1hho]&#039;&#039;&#039; Usually it is convenient to utilize this function inside a filtering query. The &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Count()&amp;lt;/syntaxhighlight&amp;gt; query counts the number of occurrences of a pattern inside a different pattern.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Residues(&amp;quot;HEM&amp;quot;).ConnectedResidues(2).Filter(lambda m: m.Count(Atoms(&amp;quot;S&amp;quot;)) == 1)&amp;lt;/syntaxhighlight&amp;gt; – Returns patterns composed of a HEM residue surrounded by two layers of bonded residues in case that the whole pattern contains exactly one sulphur atom.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Residues(&amp;quot;CYS&amp;quot;).ConnectedResidues(1).Filter(lambda m: m.Count(Residues(&amp;quot;VAL&amp;quot;)) == 2)&amp;lt;/syntaxhighlight&amp;gt; – Returns a cysteine residue which is surrounded from both sides by valine residues.&lt;br /&gt;
* &#039;&#039;Type: Count(where: Pattern, what: PatternSeq) -&amp;gt; Integer&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
====Contains()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 4hhb]&#039;&#039;&#039; &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Contains()&amp;lt;/syntaxhighlight&amp;gt; query checks if the input pattern contains a specified pattern of interest. In other words Contains() query is similar to a query, where the number of occurrences is higher than zero &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;(Count() &amp;gt; 0)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Residues(&amp;quot;HEM&amp;quot;).AmbientResidues(2).Filter(lambda m: m.Contains(Residues(&amp;quot;HIS&amp;quot;)))&amp;lt;/syntaxhighlight&amp;gt; – Returns patterns, where any atom of HEM residue is at most 2A distant from the histidine.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Residues().Filter(lambda m: m.Contains(Atoms(&amp;quot;S&amp;quot;)))&amp;lt;/syntaxhighlight&amp;gt; – Returns all the residue which has a sulphur incorporated in their structure. For this particular example it is similar to the query &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Residues(&amp;quot;CYS&amp;quot;, &amp;quot;MET&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt;.&lt;br /&gt;
* &#039;&#039;Type: Contains(where: Pattern, what: PatternSeq) -&amp;gt; Bool&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Connectivity===&lt;br /&gt;
====IsConnected()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 4m9e, 4m9v]&#039;&#039;&#039; Checks, whether a particular pattern is composed of a single component&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Atoms(&amp;quot;Zn&amp;quot;).AmbientAtoms(4).Filter(lambda m: m.IsConnected())&amp;lt;/syntaxhighlight&amp;gt; – Atoms which are at most 4 A distant from the zinc atom and are all binded together, i.e. there is no outlier.&lt;br /&gt;
* For comparison please compare with the results of the query &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Atoms(&amp;quot;Zn&amp;quot;).AmbientAtoms(4)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* &#039;&#039;Type: IsConnected(pattern: Pattern) -&amp;gt; Bool.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====IsConnectedTo()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 1hho]&#039;&#039;&#039; Checks if the two provided patterns are connected one to another. &lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Residues(&amp;quot;ALA&amp;quot;).Filter(lambda m: m.IsConnectedTo(Residues(&amp;quot;GLY&amp;quot;)))&amp;lt;/syntaxhighlight&amp;gt; – Returns all the alanine residues and directly connected glycine residues.&lt;br /&gt;
* &#039;&#039;Type: IsConnectedTo(current: Pattern, patterns: PatternSeq) -&amp;gt; Bool&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====IsNotConnectedTo()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 1hho]&#039;&#039;&#039; Checks if the two provided patterns are NOT connected one to another.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Residues(&amp;quot;ALA&amp;quot;).Filter(lambda m: m.IsNotConnectedTo(Residues(&amp;quot;GLY&amp;quot;)))&amp;lt;/syntaxhighlight&amp;gt; – Returns all the alanine residues which are not directly connected to the glycine residues.&lt;br /&gt;
* &#039;&#039;Type: IsNotConnectedTo(current: Pattern, patterns: PatternSeq) -&amp;gt; Bool&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====ConnectedAtoms()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 1hho]&#039;&#039;&#039; Returns &#039;&#039;n&#039;&#039; directly bonded layer of atoms to a given pattern.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Atoms(&amp;quot;Fe&amp;quot;).ConnectedAtoms(1)&amp;lt;/syntaxhighlight&amp;gt; – The iron atom and all the atoms which are covalently bonded to it over a single bond.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Atoms(&amp;quot;Fe&amp;quot;). ConnectedAtoms (2)&amp;lt;/syntaxhighlight&amp;gt; – Previous selection and all the atoms which are covalently bonded to them (i.e. additional layer of bonded atom). In other words the output composes of all the atoms which are 2 bonds away from the iron atom.&lt;br /&gt;
* &#039;&#039;Type: ConnectedAtoms(pattern: PatternSeq, n: Integer) -&amp;gt; Patterns&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====ConnectedResidues()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 1hho]&#039;&#039;&#039; Returns n directly bonded layer of residues to a given pattern.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Residues(&amp;quot;HEM&amp;quot;).ConnectedResidues(1)&amp;lt;/syntaxhighlight&amp;gt; – The HEM residue and all the residues which are covalently bonded to any atom of the HEM residue.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Residues(&amp;quot;HEM&amp;quot;).ConnectedResidues(2)&amp;lt;/syntaxhighlight&amp;gt; – previous selection and all the residues which are covalently bonded to them (i.e. additional layer of bonded residues).&lt;br /&gt;
* &#039;&#039;Type: ConnectedResidues(pattern: PatternSeq, n: Integer) -&amp;gt; Patterns&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Lukas</name></author>
	</entry>
	<entry>
		<id>https://webchemwiki.biodata.ceitec.cz/index.php?title=PatternQuery:How_to_build_a_query&amp;diff=2207</id>
		<title>PatternQuery:How to build a query</title>
		<link rel="alternate" type="text/html" href="https://webchemwiki.biodata.ceitec.cz/index.php?title=PatternQuery:How_to_build_a_query&amp;diff=2207"/>
		<updated>2016-07-26T12:50:17Z</updated>

		<summary type="html">&lt;p&gt;Lukas: /* Topology function */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;toclimit-3&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In order to tune up your queries before executing them on the whole database or just to work with the language interactively, feel free to use the [http://webchem.ncbr.muni.cz/Platform/PatternQuery/Index &#039;&#039;&#039;Explorer&#039;&#039;&#039;] application, where you can upload a PDB molecule of choice, or load a random sample from the PDB database based on selected properties.&lt;br /&gt;
&lt;br /&gt;
You can either try one of our ready-to-use examples or try to make up one of your own.&lt;br /&gt;
&lt;br /&gt;
==How to think about queries==&lt;br /&gt;
When building queries, you have to decompose the problem into smaller chunks, think of a query for each of the pieces and then wisely bind them together. Let us have a goal:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Get all the residues which are as much as 5Å away from any histidine residue and check if the given pattern contains at least 2 negatively charged amino acids.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
From scratch you can&#039;t probably think out a solution right now, but when you decompose the problem into separate individual sub problems, it is not so difficult after all. (Whenever you are unsure about the meaning of the queries, consult the [[PatternQuery:Language Reference | language reference]]). For the given problem, the decomposition is as follows:&lt;br /&gt;
&lt;br /&gt;
#Select histidine residues&lt;br /&gt;
#Select residual surrounding of a pattern up to 5Å.&lt;br /&gt;
#Find negatively charged residues.&lt;br /&gt;
#Count the amino acids.&lt;br /&gt;
#Filter the histidine plus its surrounding matching the condition above.&lt;br /&gt;
&lt;br /&gt;
Now we are ready for constructing individual queries:&lt;br /&gt;
#&amp;lt;code&amp;gt;[[PatternQuery:Language Reference#Residues | Residues(&amp;quot;HIS&amp;quot;)]]&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;[[PatternQuery:Language Reference#AmbientResidues | AmbientResidues(5)]]&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;[[PatternQuery:Language Reference#AminoAcids| AminoAcids(ChargeType=&amp;quot;Negative&amp;quot;)]]&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;[[PatternQuery:Language Reference#Count| Count(residues)]]&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;[[PatternQuery:Language Reference#Filter| Filter(condition)]]&amp;lt;/code&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
It wasn&#039;t that difficult, was it? When we have composed all the queries, we can compose them together in order to achieve our goal as highlighted in the query bellow and in the illustrative info-graphics:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
Residues(&amp;quot;HIS&amp;quot;).&lt;br /&gt;
  AmbientResidues(5).&lt;br /&gt;
  Filter(lambda l: l.Count(AminoAcids(ChargeType = &amp;quot;Negative&amp;quot;)) &amp;gt;= 2)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:PatternQuery-Representation.png | center]]&lt;br /&gt;
&lt;br /&gt;
==Ready-to-use examples==&lt;br /&gt;
&lt;br /&gt;
Now when we are aware of how to think about queries, you are ready to browse a plenty of different examples listed below. The text is separated into three plus one part which differs by data type queries are operated (Atoms, Residues and Patterns). The first two categories deal with only basic &#039;&#039;Atom&#039;&#039; or &#039;&#039;Residue&#039;&#039; selections. Outputs of these two types of queries are Atoms and Residues respectively.  Last category is &#039;Patterns&#039;, which contains a number of advanced queries, these queries demonstrate versatility and a power of &#039;&#039;&#039;PQ&#039;&#039;&#039;. These queries operate on all results provided by both Atom and Residue queries. On the top of that, you can browse several use biologically relevant [[PatternQuery:Use Cases | use cases]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Structure of the text==&lt;br /&gt;
*&#039;&#039;&#039;[PDB id]&#039;&#039;&#039; Here you find an example PDB id where you can try out the query with &#039;&#039;&#039;PatternQuery Explorer&#039;&#039;&#039; and a rough description of the query function.&lt;br /&gt;
* This is followed by examples of this query with with the explanation such as &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Residues(&amp;quot;HEM&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt;. Copy this query to the command text box in &#039;&#039;&#039;PatternQuery Explorer&#039;&#039;&#039; application and immediately see the results.&lt;br /&gt;
* Type of data query operate on and the expected returned value.&lt;br /&gt;
* e.g. &#039;&#039;Type: Atoms(symbols: String*) -&amp;gt; Atoms&#039;&#039;. query &amp;lt;code&amp;gt;[[PatternQuery:Language Reference#Atoms | Atoms()]]&amp;lt;/code&amp;gt; take 0..n strings, representing elements, in parenthesis (&amp;quot;C&amp;quot;, &amp;quot;N&amp;quot;, etc.) and based on the input returns a list of individual atoms.&lt;br /&gt;
&lt;br /&gt;
=Queries=&lt;br /&gt;
&lt;br /&gt;
==Atoms==&lt;br /&gt;
{{big | Basic queries}}&lt;br /&gt;
====Atoms()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns a sequence of individual atoms based on element type provided in the argument. More elements can be specified, if separated by a comma. In case no argument is provided a list of all the atoms is returned.&lt;br /&gt;
*&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Atoms(&amp;quot;Fe&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt; - Returns all iron atoms in the given structure.&lt;br /&gt;
*&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Atoms(&amp;quot;Fe&amp;quot;, &amp;quot;N&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt; - Returns all iron and nitrogen atoms in the given structure.&lt;br /&gt;
* &#039;&#039;Type: Atoms(symbols: String*) -&amp;gt; Atoms.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====AtomNames()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns a sequence of atoms with defined name or names.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;AtomNames(&amp;quot;CA&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt; – Returns all CA atoms.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;AtomNames(&amp;quot;CA&amp;quot;, &amp;quot;N&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt; –Returns atoms with names CA (C? carbon) or N (terminal part of amino acids).&lt;br /&gt;
* &#039;&#039;Type: AtomNames(names: String+) -&amp;gt; Atoms.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====AtomIds()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns a sequence of atoms with given id or ids&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;AtomIds(1)&amp;lt;/syntaxhighlight&amp;gt; – Returns atom with id=1 from the given structures.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;AtomIds(1,2,5) &amp;lt;/syntaxhighlight&amp;gt;- Returns atoms with id=1, 2 and 5 from the given structures.&lt;br /&gt;
* &#039;&#039;Type: AtomIds(ids: Integer+) -&amp;gt; Atoms.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====AtomIdRange()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns a sequence of atoms with ids from a given range (inclusive specified indices).&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;AtomIdRange(1, 10)&amp;lt;/syntaxhighlight&amp;gt; – returns 10 atoms with IDs from the interval &amp;lt;1, 10&amp;gt;, as specified in the input file.&lt;br /&gt;
* &#039;&#039;Type: AtomIdRange(minId: Integer, maxId: ?Integer) -&amp;gt; Atoms&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====NotAtomNames()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns a sequence of atoms which are not defined by an argument.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;NotAtomNames(&amp;quot;C&amp;quot;, &amp;quot;N&amp;quot;, &amp;quot;CA&amp;quot;, &amp;quot;O&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt; – returns all the atoms with names other than C, CA, N and O.  i.e. only the side chain atoms of the protein .&lt;br /&gt;
* &#039;&#039;Type: NotAtomNames(names: String+) -&amp;gt; Atom.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====NotAtomIds()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns a sequence of atoms which does not have a defined id&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;NotAtomIds(1)&amp;lt;/syntaxhighlight&amp;gt; - Returns atom with id other but 1 from the given structures.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;NotAtomIds(1,2,5)&amp;lt;/syntaxhighlight&amp;gt; - Returns atoms with id other but 1,2 and 5 from the given structures.&lt;br /&gt;
* &#039;&#039;Type: NotAtomIds(ids: Integer+) -&amp;gt; Atoms.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====NotAtoms()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns all the atoms not specified in the argument. More elements can be specified, if separated by a comma.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Atoms(&amp;quot;Fe&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt; – returns all the atoms of the structure, but iron.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Atoms(&amp;quot;Fe&amp;quot;, &amp;quot;N&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt; returns all the atoms of the structure, but iron and nitrogen. &lt;br /&gt;
* &#039;&#039;Type: NotAtoms(symbols: String+) -&amp;gt; Atoms.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====RingAtoms()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns specified atoms found on detected rings .&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;RingAtoms(Atoms(&amp;quot;N&amp;quot;), Rings(2 * [&amp;quot;C&amp;quot;] + [&amp;quot;N&amp;quot;] + [&amp;quot;C&amp;quot;] + [&amp;quot;N&amp;quot;]))&amp;lt;/syntaxhighlight&amp;gt; – Returns all the nitrogen atoms on the histidine side chain.&lt;br /&gt;
* &#039;&#039;Type: RingAtoms(atom: Atoms, ring: ?Rings) -&amp;gt; Atoms.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Residues==&lt;br /&gt;
{{big | Basic queries}}&lt;br /&gt;
====Residues()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns a sequence of individual residues specified by a function argument. More residues can be specified, if separated by a comma.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Residues(&amp;quot;HEM&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt; – Returns a list of HEM residues.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Residues (&amp;quot;HEM&amp;quot;, &amp;quot;ALA&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt; – Returns a set of HEM and ALA residues.&lt;br /&gt;
* &#039;&#039;Type: Residues(names: Value*) -&amp;gt; Residues.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====NotResidues()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns a sequence of residues which are not defined by the argument.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;NotResidues(&amp;quot;HEM&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt; – returns a set of residues, which does not have a HEM in their name.&lt;br /&gt;
* &#039;&#039;Type: NotResidues(names: Value+) -&amp;gt; Residues.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====ResidueIds()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns a sequence of specified residues in case the structure contains them. Each residue is represented by its PDB ID and chain such as “A 8”.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;ResidueIds (&amp;quot;14 A&amp;quot;,  &amp;quot;15 A&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt; – Returns 14th  and 15th residue of chain A.&lt;br /&gt;
* &#039;&#039;Type: ResidueIds(ids: String+) -&amp;gt; Residues&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====ResidueIdRange()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns a set of residues on a given chain from the lower to the upper index. In case a residue is not provided in the structure, it is skipped. &lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;ResidueIdRange(&amp;quot;A&amp;quot;, 50,  100)&amp;lt;/syntaxhighlight&amp;gt; – returns a set of residues on chain A from the ID 50 to 100. &lt;br /&gt;
* &#039;&#039;Type: ResidueIdRange(chain: String, min: Integer, max: Integer) -&amp;gt; Residues&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====NotAminoAcids()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns a sequence of residues that are not among the 20 standard amino acids. Allowed values for an optional parameter NoWaters: True, False.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;NotAminoAcids()&amp;lt;/syntaxhighlight&amp;gt; – Returns all the nonstandard residues incorporated in the protein structure with the exception of HOH and WAT residues, which stands for solvent.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;NotAminoAcids(NoWaters=False)&amp;lt;/syntaxhighlight&amp;gt; – Returns all the nonstandard residues incorporated in the protein structure inclusive solvent (HOH and WAT residues).&lt;br /&gt;
* &#039;&#039;Type: NotAminoAcids() -&amp;gt; Residues&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====AminoAcids()====&lt;br /&gt;
*  &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns a sequence of residues that are among the 20 standard amino acids.&lt;br /&gt;
* Allowed values: &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Positive, Negative, Aromatic, Polar, NonPolar&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;AminoAcids()&amp;lt;/syntaxhighlight&amp;gt; – Returns all standard amino acids.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;AminoAcids(ChargeType=&amp;quot;Polar&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt; – Returns all polar amino acids based on the type of their side chain.&lt;br /&gt;
* &#039;&#039;Type: AminoAcids() -&amp;gt; Residues.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====HetResidues()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns a sequence of heteroatom residues as specified in input PDB files, excluding residues.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;HetResidues()&amp;lt;/syntaxhighlight&amp;gt; – A set of hetatom residues.&lt;br /&gt;
* &#039;&#039;Type: HetResidues() -&amp;gt; Residues&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Patterns==&lt;br /&gt;
{{big | Structure specification}}&lt;br /&gt;
&lt;br /&gt;
PQ can select residues or their parts based on their name or Id, however, the true power of PQ lies in its ability to utilize the geometrical and chemical nature of the input structures and select patterns purely based on elements, topology and the connectivity among them.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Rings()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 3d12]&#039;&#039;&#039; Returns all the rings in the protein structure specified by a user.  Any structural ring can be identified by concatenating individual elements the string is composed from.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Rings(2 * [&amp;quot;C&amp;quot;] + [&amp;quot;N&amp;quot;] + [&amp;quot;C&amp;quot;] + [&amp;quot;N&amp;quot;])&amp;lt;/syntaxhighlight&amp;gt; – Returns the histidine aromatic ring. &lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Rings(4 * [&amp;quot;C&amp;quot;] + [&amp;quot;O&amp;quot;])&amp;lt;/syntaxhighlight&amp;gt; – Returns pentose ring. &lt;br /&gt;
* &#039;&#039;Type: Rings(atoms: Value*) -&amp;gt; Ring&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====ToAtoms()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 1hho]&#039;&#039;&#039; Converts the input pattern into a sequence of individual atoms, i.e. each pattern contains a single atom.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Residues(&amp;quot;HEM&amp;quot;).ToAtoms()&amp;lt;/syntaxhighlight&amp;gt; – Returns all the atoms of HEM residues as a sequence of individual atoms.&lt;br /&gt;
* &#039;&#039;Type: ToAtoms(patterns: Patterns) -&amp;gt; Patterns&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====ToResidues()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 1hho]&#039;&#039;&#039; Converts the input pattern into a sequence of individual residues, i.e. It can either decompose a pattern with multiple residues to a sequence of patterns each containing a single residue, or if applied to a sequence of atoms merge atoms to a single pattern per residue.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Residues(&amp;quot;HEM&amp;quot;).AmbientResidues(2).ToResidues()&amp;lt;/syntaxhighlight&amp;gt; – Returns the sequence of individual residues from the 2A surrounding of the HEM residue, inclusive HEM.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Atoms(&amp;quot;C&amp;quot;).ToResidues()&amp;lt;/syntaxhighlight&amp;gt; – Returns a sequence of patterns. Each pattern contains only carbon atoms grouped together according to their parent residue.&lt;br /&gt;
* &#039;&#039;Type: ToResidues(patterns: PatternSeq) -&amp;gt; Patterns&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Union()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 1hho]&#039;&#039;&#039; Merges the sequence of input patterns to a single pattern. &lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Residues(&amp;quot;HEM&amp;quot;).ConnectedResidues(1).Union()&amp;lt;/syntaxhighlight&amp;gt; –  Takes two HEM residues of the 1hho protein with covalently bonded residues (2 patterns) and merges them into a single pattern.&lt;br /&gt;
* &#039;&#039;Type: Union(patterns: PatternSeq) -&amp;gt; Patterns&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====RegularMotifs()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 1het]&#039;&#039;&#039; Sequence motifs is extracted from the primary sequence based on the input regular expression. Please note, that PQ does not check presence of a gap gap in the chain e.g. if HIS 28 is followed by the residue 30 ALA query ‘HA’ returns positive match for such example.&lt;br /&gt;
* In case the information about posttranslational modifications is present in &#039;&#039;MODRES&#039;&#039; or &#039;&#039;_pdbx_struct_mod_residue&#039;&#039; fields, modified residues are treated as standard amino acids. Therefore, a letter &#039;&#039;P&#039;&#039; stands for a proline residue so as all its modifications, e.g. &#039;&#039;&#039;HYP&#039;&#039;&#039; (hydroxyproline). &lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt; RegularMotifs(&amp;quot;HH&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt; – Finds two consecutive histidine residues or their modifications. &lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt; RegularMotifs(&amp;quot;G.{1,2}G&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt; – Finds two glycine residues separated by one or two other residues. &lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt; RegularMotifs(&amp;quot;G.{1,2}G&amp;quot;).Filter(lambda m: m.IsConnected())&amp;lt;/syntaxhighlight&amp;gt; – Finds two glycine residues separated by one or two residues and verifies that all of them are bonded. &lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt; RegularMotifs(&amp;quot;.P.&amp;quot;).Filter(lambda l: l.Count(NotAminoAcids()) == 0)&amp;lt;/syntaxhighlight&amp;gt; - Finds 3 consecutive residues, where the middle one is proline and verifies that neither of them is outside the &#039;&#039;standard 20&#039;&#039;.&lt;br /&gt;
* &#039;&#039;Type: RegularMotifs(regex: Value) -&amp;gt; Patterns&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Cluster()====&lt;br /&gt;
* Clusters identifies results to a single pattern based on their distance [A]. On contrary to the &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Near()&amp;lt;/syntaxhighlight&amp;gt; query &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Cluster()&amp;lt;/syntaxhighlight&amp;gt; does not provide a count check. See example below.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Cluster(5, Residues(&amp;quot;Ala&amp;quot;))&amp;lt;/syntaxhighlight&amp;gt;  – Returns all the alanine residues which are at most 5A distant to each other.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Cluster(3, RingAtoms(Atoms(&amp;quot;N&amp;quot;), Rings(2 * [&amp;quot;C&amp;quot;] + [&amp;quot;N&amp;quot;] + [&amp;quot;C&amp;quot;] + [&amp;quot;N&amp;quot;])))&amp;lt;/syntaxhighlight&amp;gt; – Returns all the nitrogen atoms from particular rings to a single pattern in case the atoms are at most 3A distant to each other. &lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Cluster(2 , Atoms(&amp;quot;C&amp;quot;), Atoms(&amp;quot;C&amp;quot;))&amp;lt;/syntaxhighlight&amp;gt; – Returns all the carbon atoms which are pairwise closer than 2Å. In case any other carbon atom would be inside this 2A sphere, it is also included in the result. Therefore, if you insist on exactly 2 carbon atoms to be returned, use &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Near()&amp;lt;/syntaxhighlight&amp;gt; query instead.&lt;br /&gt;
* &#039;&#039;Type: Cluster(r: Number, patterns: PatternSeq) -&amp;gt; Patterns&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Boolean operations===&lt;br /&gt;
====Or()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Merges up to &#039;&#039;n&#039;&#039; different patterns together.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Or(AminoAcids(ChargeType=&amp;quot;Negative&amp;quot;), AminoAcids(ChargeType= &amp;quot;Positive&amp;quot;))&amp;lt;/syntaxhighlight&amp;gt; – returns all charged amino acids both positively charged and negatively charged.&lt;br /&gt;
* &#039;&#039;Type: Or(patterns: PatternSeq+) -&amp;gt; Patterns&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Topology function===&lt;br /&gt;
====AmbientAtoms()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 1hho]&#039;&#039;&#039; Returns all the atoms, which are within nÅ from the geometrical center of a given pattern.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Atoms(&amp;quot;Fe&amp;quot;).AmbientAtoms(4)&amp;lt;/syntaxhighlight&amp;gt; – returns all the atoms, which are closer than 4Å from the center of mass of iron atom.&lt;br /&gt;
* &#039;&#039;Type: AmbientAtoms(pattern: PatternSeq, r: Number) -&amp;gt; Patterns&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====AmbientResidues()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 1hho]&#039;&#039;&#039; Returns all the residues, which are within nÅ from the geometrical center of a given pattern.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Residues(&amp;quot;HEM&amp;quot;).AmbientResidues(4)&amp;lt;/syntaxhighlight&amp;gt; – returns all the residues, which are closer than 4Å from the center of mass of HEM residues.&lt;br /&gt;
* &#039;&#039;Type: AmbientResidues(pattern: PatternSeq, r: Number) -&amp;gt; Patterns&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Near()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 1hho]&#039;&#039;&#039; Clusters all the specified patterns, which are pairwise closer [Å] than a specified argument. Additionally, it checks if the pattern contains exactly specified patterns. On the contrary to the Cluster() query this does the ‘count check’.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Near(0, Rings(6*[&#039;C&#039;]), Rings(4*[&#039;C&#039;] + [&#039;N&#039;]))&amp;lt;/syntaxhighlight&amp;gt; – Returns patterns containing only purine. In this example the purine part of tryptophan side chain will be returned.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Near(2 , Atoms(&amp;quot;C&amp;quot;), Atoms(&amp;quot;C&amp;quot;), Atoms(&amp;quot;C&amp;quot;), Atoms(&amp;quot;C&amp;quot;))&amp;lt;/syntaxhighlight&amp;gt; – Returns patterns which contain exactly 4 carbon atoms within a sphere of 2Å.&lt;br /&gt;
* &#039;&#039;Type: Near(r: Number, patterns: PatternSeq+) -&amp;gt; Patterns&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Inside()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 1hho]&#039;&#039;&#039; Inside query tries to identify given pattern within another pattern. It is particularly useful for location of specific atomic arrangements within a more general ones.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Residues(&amp;quot;Gly&amp;quot;).Inside(Chains(&amp;quot;A&amp;quot;))&amp;lt;/syntaxhighlight&amp;gt; - Returns glycine residues found on the chain A.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Atoms(&amp;quot;S&amp;quot;).Inside(HetResidues())&amp;lt;/syntaxhighlight&amp;gt; - Returns sulphur atoms found in the heteroatom residues&lt;br /&gt;
* &#039;&#039;Type: Inside(patterns&amp;amp;#58; PatternSeq, where&amp;amp;#58; PatternSeq) -&amp;amp;gt; PatternSeq&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Filtering===&lt;br /&gt;
====Filter()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 1hho]&#039;&#039;&#039; Filtering is used for removing unwanted patterns from the result. A condition given as a function argument is evaluated for each pattern from input pattern sequence referred to as ‘m’ in the following text. Only results satisfying the condition are returned, others are filtered out. Technically, it uses lambda abstraction for filtering a collection of input patterns. The usage is the same as in the Python programming language, and therefore, your previous Python experiences are beneficial. &lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Residues().Filter(lambda m: m.IsConnectedTo(Atoms(&amp;quot;Fe&amp;quot;))) &amp;lt;/syntaxhighlight&amp;gt; – returns a set of patterns from all residues which are covalently bonded to the iron atom (excluded the HEM residue).&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt; Residues().Filter(lambda m: m.Count(Atoms(&amp;quot;O&amp;quot;)) == 2)&amp;lt;/syntaxhighlight&amp;gt; returns all the residues containing exactly two oxygen atoms.&lt;br /&gt;
* &#039;&#039;Type: Filter(patterns: PatternSeq, filter: Pattern-&amp;gt;Bool) -&amp;gt; Patterns&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Count()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 1hho]&#039;&#039;&#039; Usually it is convenient to utilize this function inside a filtering query. &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;The Count()&amp;lt;/syntaxhighlight&amp;gt; query counts the number of occurrences of a pattern inside a different pattern.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Residues(&amp;quot;HEM&amp;quot;).ConnectedResidues(2).Filter(lambda m: m.Count(Atoms(&amp;quot;S&amp;quot;)) == 1)&amp;lt;/syntaxhighlight&amp;gt; – Returns patterns composed of a HEM residue surrounded by two layers of bonded residues in case that the whole pattern contains exactly one sulphur atom.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Residues(&amp;quot;CYS&amp;quot;).ConnectedResidues(1).Filter(lambda m: m.Count(Residues(&amp;quot;VAL&amp;quot;)) == 2)&amp;lt;/syntaxhighlight&amp;gt; – Returns a cysteine residue which is surrounded from both sides by valine residues.&lt;br /&gt;
* &#039;&#039;Type: Count(where: Pattern, what: PatternSeq) -&amp;gt; Integer&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Contains()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 4hhb]&#039;&#039;&#039; &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Contains()&amp;lt;/syntaxhighlight&amp;gt; query checks if the input pattern contains a specified pattern of interest. In other words Contains() query is similar to a query, where the number of occurrences is higher than zero &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;(Count() &amp;gt; 0)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Residues(&amp;quot;HEM&amp;quot;).AmbientResidues(2).Filter(lambda m: m.Contains(Residues(&amp;quot;HIS&amp;quot;)))&amp;lt;/syntaxhighlight&amp;gt; – Returns patterns, where any atom of HEM residue is at most 2A distant from the histidine.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Residues().Filter(lambda m: m.Contains(Atoms(&amp;quot;S&amp;quot;)))&amp;lt;/syntaxhighlight&amp;gt; – Returns all the residue which has a sulphur incorporated in their structure. For this particular example it is similar to the query &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Residues(&amp;quot;CYS&amp;quot;, &amp;quot;MET&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt;.&lt;br /&gt;
* &#039;&#039;Type: Contains(where: Pattern, what: PatternSeq) -&amp;gt; Bool&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Connectivity===&lt;br /&gt;
====IsConnected()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 4m9e, 4m9v]&#039;&#039;&#039; Checks, whether a particular pattern is composed of a single component&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Atoms(&amp;quot;Zn&amp;quot;).AmbientAtoms(4).Filter(lambda m: m.IsConnected())&amp;lt;/syntaxhighlight&amp;gt; – Atoms which are at most 4 A distant from the zinc atom and are all binded together, i.e. there is no outlier.&lt;br /&gt;
* For comparison please compare with the results of the query &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Atoms(&amp;quot;Zn&amp;quot;).AmbientAtoms(4)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* &#039;&#039;Type: IsConnected(pattern: Pattern) -&amp;gt; Bool.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====IsConnectedTo()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 1hho]&#039;&#039;&#039; Checks if the two provided patterns are connected one to another. &lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Residues(&amp;quot;ALA&amp;quot;).Filter(lambda m: m.IsConnectedTo(Residues(&amp;quot;GLY&amp;quot;)))&amp;lt;/syntaxhighlight&amp;gt; – Returns all the alanine residues and directly connected glycine residues.&lt;br /&gt;
* &#039;&#039;Type: IsConnectedTo(current: Pattern, patterns: PatternSeq) -&amp;gt; Bool&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====IsNotConnectedTo()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 1hho]&#039;&#039;&#039; Checks if the two provided patterns are NOT connected one to another.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Residues(&amp;quot;ALA&amp;quot;).Filter(lambda m: m.IsNotConnectedTo(Residues(&amp;quot;GLY&amp;quot;)))&amp;lt;/syntaxhighlight&amp;gt; – Returns all the alanine residues which are not directly connected to the glycine residues.&lt;br /&gt;
* &#039;&#039;Type: IsNotConnectedTo(current: Pattern, patterns: PatternSeq) -&amp;gt; Bool&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====ConnectedAtoms()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 1hho]&#039;&#039;&#039; Returns &#039;&#039;n&#039;&#039; directly bonded layer of atoms to a given pattern.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Atoms(&amp;quot;Fe&amp;quot;).ConnectedAtoms(1)&amp;lt;/syntaxhighlight&amp;gt; – The iron atom and all the atoms which are covalently bonded to it over a single bond.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Atoms(&amp;quot;Fe&amp;quot;). ConnectedAtoms (2)&amp;lt;/syntaxhighlight&amp;gt; – Previous selection and all the atoms which are covalently bonded to them (i.e. additional layer of bonded atom). In other words the output composes of all the atoms which are 2 bonds away from the iron atom.&lt;br /&gt;
* &#039;&#039;Type: ConnectedAtoms(pattern: PatternSeq, n: Integer) -&amp;gt; Patterns&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====ConnectedResidues()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 1hho]&#039;&#039;&#039; Returns n directly bonded layer of residues to a given pattern.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Residues(&amp;quot;HEM&amp;quot;).ConnectedResidues(1)&amp;lt;/syntaxhighlight&amp;gt; – The HEM residue and all the residues which are covalently bonded to any atom of the HEM residue.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Residues(&amp;quot;HEM&amp;quot;).ConnectedResidues(2)&amp;lt;/syntaxhighlight&amp;gt; – previous selection and all the residues which are covalently bonded to them (i.e. additional layer of bonded residues).&lt;br /&gt;
* &#039;&#039;Type: ConnectedResidues(pattern: PatternSeq, n: Integer) -&amp;gt; Patterns&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Lukas</name></author>
	</entry>
	<entry>
		<id>https://webchemwiki.biodata.ceitec.cz/index.php?title=PatternQuery:How_to_build_a_query&amp;diff=2206</id>
		<title>PatternQuery:How to build a query</title>
		<link rel="alternate" type="text/html" href="https://webchemwiki.biodata.ceitec.cz/index.php?title=PatternQuery:How_to_build_a_query&amp;diff=2206"/>
		<updated>2016-07-26T12:38:06Z</updated>

		<summary type="html">&lt;p&gt;Lukas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;toclimit-3&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In order to tune up your queries before executing them on the whole database or just to work with the language interactively, feel free to use the [http://webchem.ncbr.muni.cz/Platform/PatternQuery/Index &#039;&#039;&#039;Explorer&#039;&#039;&#039;] application, where you can upload a PDB molecule of choice, or load a random sample from the PDB database based on selected properties.&lt;br /&gt;
&lt;br /&gt;
You can either try one of our ready-to-use examples or try to make up one of your own.&lt;br /&gt;
&lt;br /&gt;
==How to think about queries==&lt;br /&gt;
When building queries, you have to decompose the problem into smaller chunks, think of a query for each of the pieces and then wisely bind them together. Let us have a goal:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Get all the residues which are as much as 5Å away from any histidine residue and check if the given pattern contains at least 2 negatively charged amino acids.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
From scratch you can&#039;t probably think out a solution right now, but when you decompose the problem into separate individual sub problems, it is not so difficult after all. (Whenever you are unsure about the meaning of the queries, consult the [[PatternQuery:Language Reference | language reference]]). For the given problem, the decomposition is as follows:&lt;br /&gt;
&lt;br /&gt;
#Select histidine residues&lt;br /&gt;
#Select residual surrounding of a pattern up to 5Å.&lt;br /&gt;
#Find negatively charged residues.&lt;br /&gt;
#Count the amino acids.&lt;br /&gt;
#Filter the histidine plus its surrounding matching the condition above.&lt;br /&gt;
&lt;br /&gt;
Now we are ready for constructing individual queries:&lt;br /&gt;
#&amp;lt;code&amp;gt;[[PatternQuery:Language Reference#Residues | Residues(&amp;quot;HIS&amp;quot;)]]&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;[[PatternQuery:Language Reference#AmbientResidues | AmbientResidues(5)]]&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;[[PatternQuery:Language Reference#AminoAcids| AminoAcids(ChargeType=&amp;quot;Negative&amp;quot;)]]&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;[[PatternQuery:Language Reference#Count| Count(residues)]]&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;[[PatternQuery:Language Reference#Filter| Filter(condition)]]&amp;lt;/code&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
It wasn&#039;t that difficult, was it? When we have composed all the queries, we can compose them together in order to achieve our goal as highlighted in the query bellow and in the illustrative info-graphics:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
Residues(&amp;quot;HIS&amp;quot;).&lt;br /&gt;
  AmbientResidues(5).&lt;br /&gt;
  Filter(lambda l: l.Count(AminoAcids(ChargeType = &amp;quot;Negative&amp;quot;)) &amp;gt;= 2)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:PatternQuery-Representation.png | center]]&lt;br /&gt;
&lt;br /&gt;
==Ready-to-use examples==&lt;br /&gt;
&lt;br /&gt;
Now when we are aware of how to think about queries, you are ready to browse a plenty of different examples listed below. The text is separated into three plus one part which differs by data type queries are operated (Atoms, Residues and Patterns). The first two categories deal with only basic &#039;&#039;Atom&#039;&#039; or &#039;&#039;Residue&#039;&#039; selections. Outputs of these two types of queries are Atoms and Residues respectively.  Last category is &#039;Patterns&#039;, which contains a number of advanced queries, these queries demonstrate versatility and a power of &#039;&#039;&#039;PQ&#039;&#039;&#039;. These queries operate on all results provided by both Atom and Residue queries. On the top of that, you can browse several use biologically relevant [[PatternQuery:Use Cases | use cases]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Structure of the text==&lt;br /&gt;
*&#039;&#039;&#039;[PDB id]&#039;&#039;&#039; Here you find an example PDB id where you can try out the query with &#039;&#039;&#039;PatternQuery Explorer&#039;&#039;&#039; and a rough description of the query function.&lt;br /&gt;
* This is followed by examples of this query with with the explanation such as &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Residues(&amp;quot;HEM&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt;. Copy this query to the command text box in &#039;&#039;&#039;PatternQuery Explorer&#039;&#039;&#039; application and immediately see the results.&lt;br /&gt;
* Type of data query operate on and the expected returned value.&lt;br /&gt;
* e.g. &#039;&#039;Type: Atoms(symbols: String*) -&amp;gt; Atoms&#039;&#039;. query &amp;lt;code&amp;gt;[[PatternQuery:Language Reference#Atoms | Atoms()]]&amp;lt;/code&amp;gt; take 0..n strings, representing elements, in parenthesis (&amp;quot;C&amp;quot;, &amp;quot;N&amp;quot;, etc.) and based on the input returns a list of individual atoms.&lt;br /&gt;
&lt;br /&gt;
=Queries=&lt;br /&gt;
&lt;br /&gt;
==Atoms==&lt;br /&gt;
{{big | Basic queries}}&lt;br /&gt;
====Atoms()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns a sequence of individual atoms based on element type provided in the argument. More elements can be specified, if separated by a comma. In case no argument is provided a list of all the atoms is returned.&lt;br /&gt;
*&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Atoms(&amp;quot;Fe&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt; - Returns all iron atoms in the given structure.&lt;br /&gt;
*&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Atoms(&amp;quot;Fe&amp;quot;, &amp;quot;N&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt; - Returns all iron and nitrogen atoms in the given structure.&lt;br /&gt;
* &#039;&#039;Type: Atoms(symbols: String*) -&amp;gt; Atoms.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====AtomNames()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns a sequence of atoms with defined name or names.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;AtomNames(&amp;quot;CA&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt; – Returns all CA atoms.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;AtomNames(&amp;quot;CA&amp;quot;, &amp;quot;N&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt; –Returns atoms with names CA (C? carbon) or N (terminal part of amino acids).&lt;br /&gt;
* &#039;&#039;Type: AtomNames(names: String+) -&amp;gt; Atoms.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====AtomIds()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns a sequence of atoms with given id or ids&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;AtomIds(1)&amp;lt;/syntaxhighlight&amp;gt; – Returns atom with id=1 from the given structures.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;AtomIds(1,2,5) &amp;lt;/syntaxhighlight&amp;gt;- Returns atoms with id=1, 2 and 5 from the given structures.&lt;br /&gt;
* &#039;&#039;Type: AtomIds(ids: Integer+) -&amp;gt; Atoms.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====AtomIdRange()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns a sequence of atoms with ids from a given range (inclusive specified indices).&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;AtomIdRange(1, 10)&amp;lt;/syntaxhighlight&amp;gt; – returns 10 atoms with IDs from the interval &amp;lt;1, 10&amp;gt;, as specified in the input file.&lt;br /&gt;
* &#039;&#039;Type: AtomIdRange(minId: Integer, maxId: ?Integer) -&amp;gt; Atoms&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====NotAtomNames()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns a sequence of atoms which are not defined by an argument.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;NotAtomNames(&amp;quot;C&amp;quot;, &amp;quot;N&amp;quot;, &amp;quot;CA&amp;quot;, &amp;quot;O&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt; – returns all the atoms with names other than C, CA, N and O.  i.e. only the side chain atoms of the protein .&lt;br /&gt;
* &#039;&#039;Type: NotAtomNames(names: String+) -&amp;gt; Atom.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====NotAtomIds()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns a sequence of atoms which does not have a defined id&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;NotAtomIds(1)&amp;lt;/syntaxhighlight&amp;gt; - Returns atom with id other but 1 from the given structures.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;NotAtomIds(1,2,5)&amp;lt;/syntaxhighlight&amp;gt; - Returns atoms with id other but 1,2 and 5 from the given structures.&lt;br /&gt;
* &#039;&#039;Type: NotAtomIds(ids: Integer+) -&amp;gt; Atoms.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====NotAtoms()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns all the atoms not specified in the argument. More elements can be specified, if separated by a comma.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Atoms(&amp;quot;Fe&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt; – returns all the atoms of the structure, but iron.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Atoms(&amp;quot;Fe&amp;quot;, &amp;quot;N&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt; returns all the atoms of the structure, but iron and nitrogen. &lt;br /&gt;
* &#039;&#039;Type: NotAtoms(symbols: String+) -&amp;gt; Atoms.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====RingAtoms()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns specified atoms found on detected rings .&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;RingAtoms(Atoms(&amp;quot;N&amp;quot;), Rings(2 * [&amp;quot;C&amp;quot;] + [&amp;quot;N&amp;quot;] + [&amp;quot;C&amp;quot;] + [&amp;quot;N&amp;quot;]))&amp;lt;/syntaxhighlight&amp;gt; – Returns all the nitrogen atoms on the histidine side chain.&lt;br /&gt;
* &#039;&#039;Type: RingAtoms(atom: Atoms, ring: ?Rings) -&amp;gt; Atoms.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Residues==&lt;br /&gt;
{{big | Basic queries}}&lt;br /&gt;
====Residues()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns a sequence of individual residues specified by a function argument. More residues can be specified, if separated by a comma.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Residues(&amp;quot;HEM&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt; – Returns a list of HEM residues.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Residues (&amp;quot;HEM&amp;quot;, &amp;quot;ALA&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt; – Returns a set of HEM and ALA residues.&lt;br /&gt;
* &#039;&#039;Type: Residues(names: Value*) -&amp;gt; Residues.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====NotResidues()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns a sequence of residues which are not defined by the argument.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;NotResidues(&amp;quot;HEM&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt; – returns a set of residues, which does not have a HEM in their name.&lt;br /&gt;
* &#039;&#039;Type: NotResidues(names: Value+) -&amp;gt; Residues.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====ResidueIds()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns a sequence of specified residues in case the structure contains them. Each residue is represented by its PDB ID and chain such as “A 8”.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;ResidueIds (&amp;quot;14 A&amp;quot;,  &amp;quot;15 A&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt; – Returns 14th  and 15th residue of chain A.&lt;br /&gt;
* &#039;&#039;Type: ResidueIds(ids: String+) -&amp;gt; Residues&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====ResidueIdRange()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns a set of residues on a given chain from the lower to the upper index. In case a residue is not provided in the structure, it is skipped. &lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;ResidueIdRange(&amp;quot;A&amp;quot;, 50,  100)&amp;lt;/syntaxhighlight&amp;gt; – returns a set of residues on chain A from the ID 50 to 100. &lt;br /&gt;
* &#039;&#039;Type: ResidueIdRange(chain: String, min: Integer, max: Integer) -&amp;gt; Residues&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====NotAminoAcids()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns a sequence of residues that are not among the 20 standard amino acids. Allowed values for an optional parameter NoWaters: True, False.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;NotAminoAcids()&amp;lt;/syntaxhighlight&amp;gt; – Returns all the nonstandard residues incorporated in the protein structure with the exception of HOH and WAT residues, which stands for solvent.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;NotAminoAcids(NoWaters=False)&amp;lt;/syntaxhighlight&amp;gt; – Returns all the nonstandard residues incorporated in the protein structure inclusive solvent (HOH and WAT residues).&lt;br /&gt;
* &#039;&#039;Type: NotAminoAcids() -&amp;gt; Residues&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====AminoAcids()====&lt;br /&gt;
*  &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns a sequence of residues that are among the 20 standard amino acids.&lt;br /&gt;
* Allowed values: &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Positive, Negative, Aromatic, Polar, NonPolar&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;AminoAcids()&amp;lt;/syntaxhighlight&amp;gt; – Returns all standard amino acids.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;AminoAcids(ChargeType=&amp;quot;Polar&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt; – Returns all polar amino acids based on the type of their side chain.&lt;br /&gt;
* &#039;&#039;Type: AminoAcids() -&amp;gt; Residues.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====HetResidues()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns a sequence of heteroatom residues as specified in input PDB files, excluding residues.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;HetResidues()&amp;lt;/syntaxhighlight&amp;gt; – A set of hetatom residues.&lt;br /&gt;
* &#039;&#039;Type: HetResidues() -&amp;gt; Residues&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Patterns==&lt;br /&gt;
{{big | Structure specification}}&lt;br /&gt;
&lt;br /&gt;
PQ can select residues or their parts based on their name or Id, however, the true power of PQ lies in its ability to utilize the geometrical and chemical nature of the input structures and select patterns purely based on elements, topology and the connectivity among them.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Rings()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 3d12]&#039;&#039;&#039; Returns all the rings in the protein structure specified by a user.  Any structural ring can be identified by concatenating individual elements the string is composed from.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Rings(2 * [&amp;quot;C&amp;quot;] + [&amp;quot;N&amp;quot;] + [&amp;quot;C&amp;quot;] + [&amp;quot;N&amp;quot;])&amp;lt;/syntaxhighlight&amp;gt; – Returns the histidine aromatic ring. &lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Rings(4 * [&amp;quot;C&amp;quot;] + [&amp;quot;O&amp;quot;])&amp;lt;/syntaxhighlight&amp;gt; – Returns pentose ring. &lt;br /&gt;
* &#039;&#039;Type: Rings(atoms: Value*) -&amp;gt; Ring&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====ToAtoms()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 1hho]&#039;&#039;&#039; Converts the input pattern into a sequence of individual atoms, i.e. each pattern contains a single atom.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Residues(&amp;quot;HEM&amp;quot;).ToAtoms()&amp;lt;/syntaxhighlight&amp;gt; – Returns all the atoms of HEM residues as a sequence of individual atoms.&lt;br /&gt;
* &#039;&#039;Type: ToAtoms(patterns: Patterns) -&amp;gt; Patterns&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====ToResidues()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 1hho]&#039;&#039;&#039; Converts the input pattern into a sequence of individual residues, i.e. It can either decompose a pattern with multiple residues to a sequence of patterns each containing a single residue, or if applied to a sequence of atoms merge atoms to a single pattern per residue.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Residues(&amp;quot;HEM&amp;quot;).AmbientResidues(2).ToResidues()&amp;lt;/syntaxhighlight&amp;gt; – Returns the sequence of individual residues from the 2A surrounding of the HEM residue, inclusive HEM.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Atoms(&amp;quot;C&amp;quot;).ToResidues()&amp;lt;/syntaxhighlight&amp;gt; – Returns a sequence of patterns. Each pattern contains only carbon atoms grouped together according to their parent residue.&lt;br /&gt;
* &#039;&#039;Type: ToResidues(patterns: PatternSeq) -&amp;gt; Patterns&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Union()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 1hho]&#039;&#039;&#039; Merges the sequence of input patterns to a single pattern. &lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Residues(&amp;quot;HEM&amp;quot;).ConnectedResidues(1).Union()&amp;lt;/syntaxhighlight&amp;gt; –  Takes two HEM residues of the 1hho protein with covalently bonded residues (2 patterns) and merges them into a single pattern.&lt;br /&gt;
* &#039;&#039;Type: Union(patterns: PatternSeq) -&amp;gt; Patterns&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====RegularMotifs()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 1het]&#039;&#039;&#039; Sequence motifs is extracted from the primary sequence based on the input regular expression. Please note, that PQ does not check presence of a gap gap in the chain e.g. if HIS 28 is followed by the residue 30 ALA query ‘HA’ returns positive match for such example.&lt;br /&gt;
* In case the information about posttranslational modifications is present in &#039;&#039;MODRES&#039;&#039; or &#039;&#039;_pdbx_struct_mod_residue&#039;&#039; fields, modified residues are treated as standard amino acids. Therefore, a letter &#039;&#039;P&#039;&#039; stands for a proline residue so as all its modifications, e.g. &#039;&#039;&#039;HYP&#039;&#039;&#039; (hydroxyproline). &lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt; RegularMotifs(&amp;quot;HH&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt; – Finds two consecutive histidine residues or their modifications. &lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt; RegularMotifs(&amp;quot;G.{1,2}G&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt; – Finds two glycine residues separated by one or two other residues. &lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt; RegularMotifs(&amp;quot;G.{1,2}G&amp;quot;).Filter(lambda m: m.IsConnected())&amp;lt;/syntaxhighlight&amp;gt; – Finds two glycine residues separated by one or two residues and verifies that all of them are bonded. &lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt; RegularMotifs(&amp;quot;.P.&amp;quot;).Filter(lambda l: l.Count(NotAminoAcids()) == 0)&amp;lt;/syntaxhighlight&amp;gt; - Finds 3 consecutive residues, where the middle one is proline and verifies that neither of them is outside the &#039;&#039;standard 20&#039;&#039;.&lt;br /&gt;
* &#039;&#039;Type: RegularMotifs(regex: Value) -&amp;gt; Patterns&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Cluster()====&lt;br /&gt;
* Clusters identifies results to a single pattern based on their distance [A]. On contrary to the &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Near()&amp;lt;/syntaxhighlight&amp;gt; query &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Cluster()&amp;lt;/syntaxhighlight&amp;gt; does not provide a count check. See example below.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Cluster(5, Residues(&amp;quot;Ala&amp;quot;))&amp;lt;/syntaxhighlight&amp;gt;  – Returns all the alanine residues which are at most 5A distant to each other.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Cluster(3, RingAtoms(Atoms(&amp;quot;N&amp;quot;), Rings(2 * [&amp;quot;C&amp;quot;] + [&amp;quot;N&amp;quot;] + [&amp;quot;C&amp;quot;] + [&amp;quot;N&amp;quot;])))&amp;lt;/syntaxhighlight&amp;gt; – Returns all the nitrogen atoms from particular rings to a single pattern in case the atoms are at most 3A distant to each other. &lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Cluster(2 , Atoms(&amp;quot;C&amp;quot;), Atoms(&amp;quot;C&amp;quot;))&amp;lt;/syntaxhighlight&amp;gt; – Returns all the carbon atoms which are pairwise closer than 2Å. In case any other carbon atom would be inside this 2A sphere, it is also included in the result. Therefore, if you insist on exactly 2 carbon atoms to be returned, use &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Near()&amp;lt;/syntaxhighlight&amp;gt; query instead.&lt;br /&gt;
* &#039;&#039;Type: Cluster(r: Number, patterns: PatternSeq) -&amp;gt; Patterns&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Boolean operations===&lt;br /&gt;
====Or()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Merges up to &#039;&#039;n&#039;&#039; different patterns together.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Or(AminoAcids(ChargeType=&amp;quot;Negative&amp;quot;), AminoAcids(ChargeType= &amp;quot;Positive&amp;quot;))&amp;lt;/syntaxhighlight&amp;gt; – returns all charged amino acids both positively charged and negatively charged.&lt;br /&gt;
* &#039;&#039;Type: Or(patterns: PatternSeq+) -&amp;gt; Patterns&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Topology function===&lt;br /&gt;
====AmbientAtoms()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 1hho]&#039;&#039;&#039; Returns all the atoms, which are within nÅ from the geometrical center of a given pattern.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Atoms(&amp;quot;Fe&amp;quot;).AmbientAtoms(4)&amp;lt;/syntaxhighlight&amp;gt; – returns all the atoms, which are closer than 4Å from the center of mass of iron atom.&lt;br /&gt;
* &#039;&#039;Type: AmbientAtoms(pattern: PatternSeq, r: Number) -&amp;gt; Patterns&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====AmbientResidues()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 1hho]&#039;&#039;&#039; Returns all the residues, which are within nA from the geometrical center of a given pattern.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Residues(&amp;quot;HEM&amp;quot;).AmbientResidues(4)&amp;lt;/syntaxhighlight&amp;gt; – returns all the residues, which are closer than 4Å from the center of mass of HEM residues.&lt;br /&gt;
* &#039;&#039;Type: AmbientResidues(pattern: PatternSeq, r: Number) -&amp;gt; Patterns&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Near()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 1hho]&#039;&#039;&#039; Clusters all the specified patterns, which are pairwise closer [Å] than a specified argument. Additionally, it checks if the pattern contains exactly specified patterns. On the contrary to the Cluster() query this does the ‘count check’.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Near(0, Rings(6*[&#039;C&#039;]), Rings(4*[&#039;C&#039;] + [&#039;N&#039;]))&amp;lt;/syntaxhighlight&amp;gt; – Returns patterns containing only purine. In this example the purine part of tryptophan side chain will be returned.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Near(2 , Atoms(&amp;quot;C&amp;quot;), Atoms(&amp;quot;C&amp;quot;), Atoms(&amp;quot;C&amp;quot;), Atoms(&amp;quot;C&amp;quot;))&amp;lt;/syntaxhighlight&amp;gt; – Returns patterns which contain exactly 4 carbon atoms within a sphere of 2Å.&lt;br /&gt;
* &#039;&#039;Type: Near(r: Number, patterns: PatternSeq+) -&amp;gt; Patterns&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Filtering===&lt;br /&gt;
====Filter()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 1hho]&#039;&#039;&#039; Filtering is used for removing unwanted patterns from the result. A condition given as a function argument is evaluated for each pattern from input pattern sequence referred to as ‘m’ in the following text. Only results satisfying the condition are returned, others are filtered out. Technically, it uses lambda abstraction for filtering a collection of input patterns. The usage is the same as in the Python programming language, and therefore, your previous Python experiences are beneficial. &lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Residues().Filter(lambda m: m.IsConnectedTo(Atoms(&amp;quot;Fe&amp;quot;))) &amp;lt;/syntaxhighlight&amp;gt; – returns a set of patterns from all residues which are covalently bonded to the iron atom (excluded the HEM residue).&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt; Residues().Filter(lambda m: m.Count(Atoms(&amp;quot;O&amp;quot;)) == 2)&amp;lt;/syntaxhighlight&amp;gt; returns all the residues containing exactly two oxygen atoms.&lt;br /&gt;
* &#039;&#039;Type: Filter(patterns: PatternSeq, filter: Pattern-&amp;gt;Bool) -&amp;gt; Patterns&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Count()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 1hho]&#039;&#039;&#039; Usually it is convenient to utilize this function inside a filtering query. &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;The Count()&amp;lt;/syntaxhighlight&amp;gt; query counts the number of occurrences of a pattern inside a different pattern.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Residues(&amp;quot;HEM&amp;quot;).ConnectedResidues(2).Filter(lambda m: m.Count(Atoms(&amp;quot;S&amp;quot;)) == 1)&amp;lt;/syntaxhighlight&amp;gt; – Returns patterns composed of a HEM residue surrounded by two layers of bonded residues in case that the whole pattern contains exactly one sulphur atom.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Residues(&amp;quot;CYS&amp;quot;).ConnectedResidues(1).Filter(lambda m: m.Count(Residues(&amp;quot;VAL&amp;quot;)) == 2)&amp;lt;/syntaxhighlight&amp;gt; – Returns a cysteine residue which is surrounded from both sides by valine residues.&lt;br /&gt;
* &#039;&#039;Type: Count(where: Pattern, what: PatternSeq) -&amp;gt; Integer&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Contains()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 4hhb]&#039;&#039;&#039; &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Contains()&amp;lt;/syntaxhighlight&amp;gt; query checks if the input pattern contains a specified pattern of interest. In other words Contains() query is similar to a query, where the number of occurrences is higher than zero &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;(Count() &amp;gt; 0)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Residues(&amp;quot;HEM&amp;quot;).AmbientResidues(2).Filter(lambda m: m.Contains(Residues(&amp;quot;HIS&amp;quot;)))&amp;lt;/syntaxhighlight&amp;gt; – Returns patterns, where any atom of HEM residue is at most 2A distant from the histidine.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Residues().Filter(lambda m: m.Contains(Atoms(&amp;quot;S&amp;quot;)))&amp;lt;/syntaxhighlight&amp;gt; – Returns all the residue which has a sulphur incorporated in their structure. For this particular example it is similar to the query &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Residues(&amp;quot;CYS&amp;quot;, &amp;quot;MET&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt;.&lt;br /&gt;
* &#039;&#039;Type: Contains(where: Pattern, what: PatternSeq) -&amp;gt; Bool&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Connectivity===&lt;br /&gt;
====IsConnected()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 4m9e, 4m9v]&#039;&#039;&#039; Checks, whether a particular pattern is composed of a single component&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Atoms(&amp;quot;Zn&amp;quot;).AmbientAtoms(4).Filter(lambda m: m.IsConnected())&amp;lt;/syntaxhighlight&amp;gt; – Atoms which are at most 4 A distant from the zinc atom and are all binded together, i.e. there is no outlier.&lt;br /&gt;
* For comparison please compare with the results of the query &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Atoms(&amp;quot;Zn&amp;quot;).AmbientAtoms(4)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* &#039;&#039;Type: IsConnected(pattern: Pattern) -&amp;gt; Bool.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====IsConnectedTo()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 1hho]&#039;&#039;&#039; Checks if the two provided patterns are connected one to another. &lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Residues(&amp;quot;ALA&amp;quot;).Filter(lambda m: m.IsConnectedTo(Residues(&amp;quot;GLY&amp;quot;)))&amp;lt;/syntaxhighlight&amp;gt; – Returns all the alanine residues and directly connected glycine residues.&lt;br /&gt;
* &#039;&#039;Type: IsConnectedTo(current: Pattern, patterns: PatternSeq) -&amp;gt; Bool&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====IsNotConnectedTo()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 1hho]&#039;&#039;&#039; Checks if the two provided patterns are NOT connected one to another.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Residues(&amp;quot;ALA&amp;quot;).Filter(lambda m: m.IsNotConnectedTo(Residues(&amp;quot;GLY&amp;quot;)))&amp;lt;/syntaxhighlight&amp;gt; – Returns all the alanine residues which are not directly connected to the glycine residues.&lt;br /&gt;
* &#039;&#039;Type: IsNotConnectedTo(current: Pattern, patterns: PatternSeq) -&amp;gt; Bool&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====ConnectedAtoms()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 1hho]&#039;&#039;&#039; Returns &#039;&#039;n&#039;&#039; directly bonded layer of atoms to a given pattern.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Atoms(&amp;quot;Fe&amp;quot;).ConnectedAtoms(1)&amp;lt;/syntaxhighlight&amp;gt; – The iron atom and all the atoms which are covalently bonded to it over a single bond.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Atoms(&amp;quot;Fe&amp;quot;). ConnectedAtoms (2)&amp;lt;/syntaxhighlight&amp;gt; – Previous selection and all the atoms which are covalently bonded to them (i.e. additional layer of bonded atom). In other words the output composes of all the atoms which are 2 bonds away from the iron atom.&lt;br /&gt;
* &#039;&#039;Type: ConnectedAtoms(pattern: PatternSeq, n: Integer) -&amp;gt; Patterns&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====ConnectedResidues()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 1hho]&#039;&#039;&#039; Returns n directly bonded layer of residues to a given pattern.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Residues(&amp;quot;HEM&amp;quot;).ConnectedResidues(1)&amp;lt;/syntaxhighlight&amp;gt; – The HEM residue and all the residues which are covalently bonded to any atom of the HEM residue.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Residues(&amp;quot;HEM&amp;quot;).ConnectedResidues(2)&amp;lt;/syntaxhighlight&amp;gt; – previous selection and all the residues which are covalently bonded to them (i.e. additional layer of bonded residues).&lt;br /&gt;
* &#039;&#039;Type: ConnectedResidues(pattern: PatternSeq, n: Integer) -&amp;gt; Patterns&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Lukas</name></author>
	</entry>
	<entry>
		<id>https://webchemwiki.biodata.ceitec.cz/index.php?title=PatternQuery:How_to_build_a_query&amp;diff=2205</id>
		<title>PatternQuery:How to build a query</title>
		<link rel="alternate" type="text/html" href="https://webchemwiki.biodata.ceitec.cz/index.php?title=PatternQuery:How_to_build_a_query&amp;diff=2205"/>
		<updated>2016-07-26T12:25:55Z</updated>

		<summary type="html">&lt;p&gt;Lukas: /* Topology function */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;toclimit-4&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In order to tune up your queries before executing them on the whole database or just to work with the language interactively, feel free to use the [http://webchem.ncbr.muni.cz/Platform/PatternQuery/Index &#039;&#039;&#039;Explorer&#039;&#039;&#039;] application, where you can upload a PDB molecule of choice, or load a random sample from the PDB database based on selected properties.&lt;br /&gt;
&lt;br /&gt;
You can either try one of our ready-to-use examples or try to make up one of your own.&lt;br /&gt;
&lt;br /&gt;
==How to think about queries==&lt;br /&gt;
When building queries, you have to decompose the problem into smaller chunks, think of a query for each of the pieces and then wisely bind them together. Let us have a goal:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Get all the residues which are as much as 5Å away from any histidine residue and check if the given pattern contains at least 2 negatively charged amino acids.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
From scratch you can&#039;t probably think out a solution right now, but when you decompose the problem into separate individual sub problems, it is not so difficult after all. (Whenever you are unsure about the meaning of the queries, consult the [[PatternQuery:Language Reference | language reference]]). For the given problem, the decomposition is as follows:&lt;br /&gt;
&lt;br /&gt;
#Select histidine residues&lt;br /&gt;
#Select residual surrounding of a pattern up to 5Å.&lt;br /&gt;
#Find negatively charged residues.&lt;br /&gt;
#Count the amino acids.&lt;br /&gt;
#Filter the histidine plus its surrounding matching the condition above.&lt;br /&gt;
&lt;br /&gt;
Now we are ready for constructing individual queries:&lt;br /&gt;
#&amp;lt;code&amp;gt;[[PatternQuery:Language Reference#Residues | Residues(&amp;quot;HIS&amp;quot;)]]&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;[[PatternQuery:Language Reference#AmbientResidues | AmbientResidues(5)]]&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;[[PatternQuery:Language Reference#AminoAcids| AminoAcids(ChargeType=&amp;quot;Negative&amp;quot;)]]&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;[[PatternQuery:Language Reference#Count| Count(residues)]]&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;[[PatternQuery:Language Reference#Filter| Filter(condition)]]&amp;lt;/code&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
It wasn&#039;t that difficult, was it? When we have composed all the queries, we can compose them together in order to achieve our goal as highlighted in the query bellow and in the illustrative info-graphics:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
Residues(&amp;quot;HIS&amp;quot;).&lt;br /&gt;
  AmbientResidues(5).&lt;br /&gt;
  Filter(lambda l: l.Count(AminoAcids(ChargeType = &amp;quot;Negative&amp;quot;)) &amp;gt;= 2)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:PatternQuery-Representation.png | center]]&lt;br /&gt;
&lt;br /&gt;
==Ready-to-use examples==&lt;br /&gt;
&lt;br /&gt;
Now when we are aware of how to think about queries, you are ready to browse a plenty of different examples listed below. The text is separated into three plus one part which differs by data type queries are operated (Atoms, Residues and Patterns). The first two categories deal with only basic &#039;&#039;Atom&#039;&#039; or &#039;&#039;Residue&#039;&#039; selections. Outputs of these two types of queries are Atoms and Residues respectively.  Last category is &#039;Patterns&#039;, which contains a number of advanced queries, these queries demonstrate versatility and a power of &#039;&#039;&#039;PQ&#039;&#039;&#039;. These queries operate on all results provided by both Atom and Residue queries. On the top of that, you can browse several use biologically relevant [[PatternQuery:Use Cases | use cases]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Structure of the text==&lt;br /&gt;
*&#039;&#039;&#039;[PDB id]&#039;&#039;&#039; Here you find an example PDB id where you can try out the query with &#039;&#039;&#039;PatternQuery Explorer&#039;&#039;&#039; and a rough description of the query function.&lt;br /&gt;
* This is followed by examples of this query with with the explanation such as &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Residues(&amp;quot;HEM&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt;. Copy this query to the command text box in &#039;&#039;&#039;PatternQuery Explorer&#039;&#039;&#039; application and immediately see the results.&lt;br /&gt;
* Type of data query operate on and the expected returned value.&lt;br /&gt;
* e.g. &#039;&#039;Type: Atoms(symbols: String*) -&amp;gt; Atoms&#039;&#039;. query &amp;lt;code&amp;gt;[[PatternQuery:Language Reference#Atoms | Atoms()]]&amp;lt;/code&amp;gt; take 0..n strings, representing elements, in parenthesis (&amp;quot;C&amp;quot;, &amp;quot;N&amp;quot;, etc.) and based on the input returns a list of individual atoms.&lt;br /&gt;
&lt;br /&gt;
=Queries=&lt;br /&gt;
&lt;br /&gt;
==Atoms==&lt;br /&gt;
=== Basic queries ===&lt;br /&gt;
====Atoms()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns a sequence of individual atoms based on element type provided in the argument. More elements can be specified, if separated by a comma. In case no argument is provided a list of all the atoms is returned.&lt;br /&gt;
*&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Atoms(&amp;quot;Fe&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt; - Returns all iron atoms in the given structure.&lt;br /&gt;
*&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Atoms(&amp;quot;Fe&amp;quot;, &amp;quot;N&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt; - Returns all iron and nitrogen atoms in the given structure.&lt;br /&gt;
* &#039;&#039;Type: Atoms(symbols: String*) -&amp;gt; Atoms.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====AtomNames()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns a sequence of atoms with defined name or names.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;AtomNames(&amp;quot;CA&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt; – Returns all CA atoms.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;AtomNames(&amp;quot;CA&amp;quot;, &amp;quot;N&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt; –Returns atoms with names CA (C? carbon) or N (terminal part of amino acids).&lt;br /&gt;
* &#039;&#039;Type: AtomNames(names: String+) -&amp;gt; Atoms.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====AtomIds()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns a sequence of atoms with given id or ids&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;AtomIds(1)&amp;lt;/syntaxhighlight&amp;gt; – Returns atom with id=1 from the given structures.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;AtomIds(1,2,5) &amp;lt;/syntaxhighlight&amp;gt;- Returns atoms with id=1, 2 and 5 from the given structures.&lt;br /&gt;
* &#039;&#039;Type: AtomIds(ids: Integer+) -&amp;gt; Atoms.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====AtomIdRange()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns a sequence of atoms with ids from a given range (inclusive specified indices).&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;AtomIdRange(1, 10)&amp;lt;/syntaxhighlight&amp;gt; – returns 10 atoms with IDs from the interval &amp;lt;1, 10&amp;gt;, as specified in the input file.&lt;br /&gt;
* &#039;&#039;Type: AtomIdRange(minId: Integer, maxId: ?Integer) -&amp;gt; Atoms&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====NotAtomNames()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns a sequence of atoms which are not defined by an argument.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;NotAtomNames(&amp;quot;C&amp;quot;, &amp;quot;N&amp;quot;, &amp;quot;CA&amp;quot;, &amp;quot;O&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt; – returns all the atoms with names other than C, CA, N and O.  i.e. only the side chain atoms of the protein .&lt;br /&gt;
* &#039;&#039;Type: NotAtomNames(names: String+) -&amp;gt; Atom.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====NotAtomIds()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns a sequence of atoms which does not have a defined id&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;NotAtomIds(1)&amp;lt;/syntaxhighlight&amp;gt; - Returns atom with id other but 1 from the given structures.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;NotAtomIds(1,2,5)&amp;lt;/syntaxhighlight&amp;gt; - Returns atoms with id other but 1,2 and 5 from the given structures.&lt;br /&gt;
* &#039;&#039;Type: NotAtomIds(ids: Integer+) -&amp;gt; Atoms.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====NotAtoms()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns all the atoms not specified in the argument. More elements can be specified, if separated by a comma.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Atoms(&amp;quot;Fe&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt; – returns all the atoms of the structure, but iron.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Atoms(&amp;quot;Fe&amp;quot;, &amp;quot;N&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt; returns all the atoms of the structure, but iron and nitrogen. &lt;br /&gt;
* &#039;&#039;Type: NotAtoms(symbols: String+) -&amp;gt; Atoms.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====RingAtoms()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns specified atoms found on detected rings .&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;RingAtoms(Atoms(&amp;quot;N&amp;quot;), Rings(2 * [&amp;quot;C&amp;quot;] + [&amp;quot;N&amp;quot;] + [&amp;quot;C&amp;quot;] + [&amp;quot;N&amp;quot;]))&amp;lt;/syntaxhighlight&amp;gt; – Returns all the nitrogen atoms on the histidine side chain.&lt;br /&gt;
* &#039;&#039;Type: RingAtoms(atom: Atoms, ring: ?Rings) -&amp;gt; Atoms.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Residues==&lt;br /&gt;
=== Basic queries===&lt;br /&gt;
====Residues()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns a sequence of individual residues specified by a function argument. More residues can be specified, if separated by a comma.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Residues(&amp;quot;HEM&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt; – Returns a list of HEM residues.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Residues (&amp;quot;HEM&amp;quot;, &amp;quot;ALA&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt; – Returns a set of HEM and ALA residues.&lt;br /&gt;
* &#039;&#039;Type: Residues(names: Value*) -&amp;gt; Residues.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====NotResidues()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns a sequence of residues which are not defined by the argument.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;NotResidues(&amp;quot;HEM&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt; – returns a set of residues, which does not have a HEM in their name.&lt;br /&gt;
* &#039;&#039;Type: NotResidues(names: Value+) -&amp;gt; Residues.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====ResidueIds()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns a sequence of specified residues in case the structure contains them. Each residue is represented by its PDB ID and chain such as “A 8”.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;ResidueIds (&amp;quot;14 A&amp;quot;,  &amp;quot;15 A&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt; – Returns 14th  and 15th residue of chain A.&lt;br /&gt;
* &#039;&#039;Type: ResidueIds(ids: String+) -&amp;gt; Residues&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====ResidueIdRange()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns a set of residues on a given chain from the lower to the upper index. In case a residue is not provided in the structure, it is skipped. &lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;ResidueIdRange(&amp;quot;A&amp;quot;, 50,  100)&amp;lt;/syntaxhighlight&amp;gt; – returns a set of residues on chain A from the ID 50 to 100. &lt;br /&gt;
* &#039;&#039;Type: ResidueIdRange(chain: String, min: Integer, max: Integer) -&amp;gt; Residues&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====NotAminoAcids()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns a sequence of residues that are not among the 20 standard amino acids. Allowed values for an optional parameter NoWaters: True, False.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;NotAminoAcids()&amp;lt;/syntaxhighlight&amp;gt; – Returns all the nonstandard residues incorporated in the protein structure with the exception of HOH and WAT residues, which stands for solvent.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;NotAminoAcids(NoWaters=False)&amp;lt;/syntaxhighlight&amp;gt; – Returns all the nonstandard residues incorporated in the protein structure inclusive solvent (HOH and WAT residues).&lt;br /&gt;
* &#039;&#039;Type: NotAminoAcids() -&amp;gt; Residues&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====AminoAcids()====&lt;br /&gt;
*  &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns a sequence of residues that are among the 20 standard amino acids.&lt;br /&gt;
* Allowed values: &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Positive, Negative, Aromatic, Polar, NonPolar&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;AminoAcids()&amp;lt;/syntaxhighlight&amp;gt; – Returns all standard amino acids.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;AminoAcids(ChargeType=&amp;quot;Polar&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt; – Returns all polar amino acids based on the type of their side chain.&lt;br /&gt;
* &#039;&#039;Type: AminoAcids() -&amp;gt; Residues.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====HetResidues()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Returns a sequence of heteroatom residues as specified in input PDB files, excluding residues.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;HetResidues()&amp;lt;/syntaxhighlight&amp;gt; – A set of hetatom residues.&lt;br /&gt;
* &#039;&#039;Type: HetResidues() -&amp;gt; Residues&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Patterns==&lt;br /&gt;
===Structure specification===&lt;br /&gt;
PQ can select residues or their parts based on their name or Id, however, the true power of PQ lies in its ability to utilize the chemical nature of the input structures and select patterns purely based on elements and the connectivity among them.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Rings()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 3d12]&#039;&#039;&#039; Returns all the rings in the protein structure specified by a user.  Any structural ring can be identified by concatenating individual elements the string is composed from.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Rings(2 * [&amp;quot;C&amp;quot;] + [&amp;quot;N&amp;quot;] + [&amp;quot;C&amp;quot;] + [&amp;quot;N&amp;quot;])&amp;lt;/syntaxhighlight&amp;gt; – Returns the histidine aromatic ring. &lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Rings(4 * [&amp;quot;C&amp;quot;] + [&amp;quot;O&amp;quot;])&amp;lt;/syntaxhighlight&amp;gt; – Returns pentose ring. &lt;br /&gt;
* &#039;&#039;Type: Rings(atoms: Value*) -&amp;gt; Ring&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====ToAtoms()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 1hho]&#039;&#039;&#039; Converts the input pattern into a sequence of individual atoms, i.e. each pattern contains a single atom.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Residues(&amp;quot;HEM&amp;quot;).ToAtoms()&amp;lt;/syntaxhighlight&amp;gt; – Returns all the atoms of HEM residues as a sequence of individual atoms.&lt;br /&gt;
* &#039;&#039;Type: ToAtoms(patterns: Patterns) -&amp;gt; Patterns&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====ToResidues()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 1hho]&#039;&#039;&#039; Converts the input pattern into a sequence of individual residues, i.e. It can either decompose a pattern with multiple residues to a sequence of patterns each containing a single residue, or if applied to a sequence of atoms merge atoms to a single pattern per residue.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Residues(&amp;quot;HEM&amp;quot;).AmbientResidues(2).ToResidues()&amp;lt;/syntaxhighlight&amp;gt; – Returns the sequence of individual residues from the 2A surrounding of the HEM residue, inclusive HEM.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Atoms(&amp;quot;C&amp;quot;).ToResidues()&amp;lt;/syntaxhighlight&amp;gt; – Returns a sequence of patterns. Each pattern contains only carbon atoms grouped together according to their parent residue.&lt;br /&gt;
* &#039;&#039;Type: ToResidues(patterns: PatternSeq) -&amp;gt; Patterns&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Union()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 1hho]&#039;&#039;&#039; Merges the sequence of input patterns to a single pattern. &lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Residues(&amp;quot;HEM&amp;quot;).ConnectedResidues(1).Union()&amp;lt;/syntaxhighlight&amp;gt; –  Takes two HEM residues of the 1hho protein with covalently bonded residues (2 patterns) and merges them into a single pattern.&lt;br /&gt;
* &#039;&#039;Type: Union(patterns: PatternSeq) -&amp;gt; Patterns&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====RegularMotifs()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 1het]&#039;&#039;&#039; Sequence motifs is extracted from the primary sequence based on the input regular expression. Please note, that PQ does not check presence of a gap gap in the chain e.g. if HIS 28 is followed by the residue 30 ALA query ‘HA’ returns positive match for such example.&lt;br /&gt;
* In case the information about posttranslational modifications is present in &#039;&#039;MODRES&#039;&#039; or &#039;&#039;_pdbx_struct_mod_residue&#039;&#039; fields, modified residues are treated as standard amino acids. Therefore, a letter &#039;&#039;P&#039;&#039; stands for a proline residue so as all its modifications, e.g. &#039;&#039;&#039;HYP&#039;&#039;&#039; (hydroxyproline). &lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt; RegularMotifs(&amp;quot;HH&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt; – Finds two consecutive histidine residues or their modifications. &lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt; RegularMotifs(&amp;quot;G.{1,2}G&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt; – Finds two glycine residues separated by one or two other residues. &lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt; RegularMotifs(&amp;quot;G.{1,2}G&amp;quot;).Filter(lambda m: m.IsConnected())&amp;lt;/syntaxhighlight&amp;gt; – Finds two glycine residues separated by one or two residues and verifies that all of them are bonded. &lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt; RegularMotifs(&amp;quot;.P.&amp;quot;).Filter(lambda l: l.Count(NotAminoAcids()) == 0)&amp;lt;/syntaxhighlight&amp;gt; - Finds 3 consecutive residues, where the middle one is proline and verifies that neither of them is outside the &#039;&#039;standard 20&#039;&#039;.&lt;br /&gt;
* &#039;&#039;Type: RegularMotifs(regex: Value) -&amp;gt; Patterns&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Cluster()====&lt;br /&gt;
* Clusters identifies results to a single pattern based on their distance [A]. On contrary to the &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Near()&amp;lt;/syntaxhighlight&amp;gt; query &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Cluster()&amp;lt;/syntaxhighlight&amp;gt; does not provide a count check. See example below.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Cluster(5, Residues(&amp;quot;Ala&amp;quot;))&amp;lt;/syntaxhighlight&amp;gt;  – Returns all the alanine residues which are at most 5A distant to each other.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Cluster(3, RingAtoms(Atoms(&amp;quot;N&amp;quot;), Rings(2 * [&amp;quot;C&amp;quot;] + [&amp;quot;N&amp;quot;] + [&amp;quot;C&amp;quot;] + [&amp;quot;N&amp;quot;])))&amp;lt;/syntaxhighlight&amp;gt; – Returns all the nitrogen atoms from particular rings to a single pattern in case the atoms are at most 3A distant to each other. &lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Cluster(2 , Atoms(&amp;quot;C&amp;quot;), Atoms(&amp;quot;C&amp;quot;))&amp;lt;/syntaxhighlight&amp;gt; – Returns all the carbon atoms which are pairwise closer than 2Å. In case any other carbon atom would be inside this 2A sphere, it is also included in the result. Therefore, if you insist on exactly 2 carbon atoms to be returned, use &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Near()&amp;lt;/syntaxhighlight&amp;gt; query instead.&lt;br /&gt;
* &#039;&#039;Type: Cluster(r: Number, patterns: PatternSeq) -&amp;gt; Patterns&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Boolean operations===&lt;br /&gt;
====Or()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 2hhb]&#039;&#039;&#039; Merges up to &#039;&#039;n&#039;&#039; different patterns together.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Or(AminoAcids(ChargeType=&amp;quot;Negative&amp;quot;), AminoAcids(ChargeType= &amp;quot;Positive&amp;quot;))&amp;lt;/syntaxhighlight&amp;gt; – returns all charged amino acids both positively charged and negatively charged.&lt;br /&gt;
* &#039;&#039;Type: Or(patterns: PatternSeq+) -&amp;gt; Patterns&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Topology function===&lt;br /&gt;
====AmbientAtoms()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 1hho]&#039;&#039;&#039; Returns all the atoms, which are within nÅ from the geometrical center of a given pattern.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Atoms(&amp;quot;Fe&amp;quot;).AmbientAtoms(4)&amp;lt;/syntaxhighlight&amp;gt; – returns all the atoms, which are closer than 4Å from the center of mass of iron atom.&lt;br /&gt;
* &#039;&#039;Type: AmbientAtoms(pattern: PatternSeq, r: Number) -&amp;gt; Patterns&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====AmbientResidues()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 1hho]&#039;&#039;&#039; Returns all the residues, which are within nA from the geometrical center of a given pattern.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Residues(&amp;quot;HEM&amp;quot;).AmbientResidues(4)&amp;lt;/syntaxhighlight&amp;gt; – returns all the residues, which are closer than 4Å from the center of mass of HEM residues.&lt;br /&gt;
* &#039;&#039;Type: AmbientResidues(pattern: PatternSeq, r: Number) -&amp;gt; Patterns&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Near()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 1hho]&#039;&#039;&#039; Clusters all the specified patterns, which are pairwise closer [Å] than a specified argument. Additionally, it checks if the pattern contains exactly specified patterns. On the contrary to the Cluster() query this does the ‘count check’.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Near(0, Rings(6*[&#039;C&#039;]), Rings(4*[&#039;C&#039;] + [&#039;N&#039;]))&amp;lt;/syntaxhighlight&amp;gt; – Returns patterns containing only purine. In this example the purine part of tryptophan side chain will be returned.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Near(2 , Atoms(&amp;quot;C&amp;quot;), Atoms(&amp;quot;C&amp;quot;), Atoms(&amp;quot;C&amp;quot;), Atoms(&amp;quot;C&amp;quot;))&amp;lt;/syntaxhighlight&amp;gt; – Returns patterns which contain exactly 4 carbon atoms within a sphere of 2Å.&lt;br /&gt;
* &#039;&#039;Type: Near(r: Number, patterns: PatternSeq+) -&amp;gt; Patterns&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Filtering===&lt;br /&gt;
====Filter()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 1hho]&#039;&#039;&#039; Filtering is used for removing unwanted patterns from the result. A condition given as a function argument is evaluated for each pattern from input pattern sequence referred to as ‘m’ in the following text. Only results satisfying the condition are returned, others are filtered out. Technically, it uses lambda abstraction for filtering a collection of input patterns. The usage is the same as in the Python programming language, and therefore, your previous Python experiences are beneficial. &lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Residues().Filter(lambda m: m.IsConnectedTo(Atoms(&amp;quot;Fe&amp;quot;))) &amp;lt;/syntaxhighlight&amp;gt; – returns a set of patterns from all residues which are covalently bonded to the iron atom (excluded the HEM residue).&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt; Residues().Filter(lambda m: m.Count(Atoms(&amp;quot;O&amp;quot;)) == 2)&amp;lt;/syntaxhighlight&amp;gt; returns all the residues containing exactly two oxygen atoms.&lt;br /&gt;
* &#039;&#039;Type: Filter(patterns: PatternSeq, filter: Pattern-&amp;gt;Bool) -&amp;gt; Patterns&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Count()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 1hho]&#039;&#039;&#039; Usually it is convenient to utilize this function inside a filtering query. &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;The Count()&amp;lt;/syntaxhighlight&amp;gt; query counts the number of occurrences of a pattern inside a different pattern.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Residues(&amp;quot;HEM&amp;quot;).ConnectedResidues(2).Filter(lambda m: m.Count(Atoms(&amp;quot;S&amp;quot;)) == 1)&amp;lt;/syntaxhighlight&amp;gt; – Returns patterns composed of a HEM residue surrounded by two layers of bonded residues in case that the whole pattern contains exactly one sulphur atom.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Residues(&amp;quot;CYS&amp;quot;).ConnectedResidues(1).Filter(lambda m: m.Count(Residues(&amp;quot;VAL&amp;quot;)) == 2)&amp;lt;/syntaxhighlight&amp;gt; – Returns a cysteine residue which is surrounded from both sides by valine residues.&lt;br /&gt;
* &#039;&#039;Type: Count(where: Pattern, what: PatternSeq) -&amp;gt; Integer&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Contains()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 4hhb]&#039;&#039;&#039; &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Contains()&amp;lt;/syntaxhighlight&amp;gt; query checks if the input pattern contains a specified pattern of interest. In other words Contains() query is similar to a query, where the number of occurrences is higher than zero &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;(Count() &amp;gt; 0)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Residues(&amp;quot;HEM&amp;quot;).AmbientResidues(2).Filter(lambda m: m.Contains(Residues(&amp;quot;HIS&amp;quot;)))&amp;lt;/syntaxhighlight&amp;gt; – Returns patterns, where any atom of HEM residue is at most 2A distant from the histidine.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Residues().Filter(lambda m: m.Contains(Atoms(&amp;quot;S&amp;quot;)))&amp;lt;/syntaxhighlight&amp;gt; – Returns all the residue which has a sulphur incorporated in their structure. For this particular example it is similar to the query &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Residues(&amp;quot;CYS&amp;quot;, &amp;quot;MET&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt;.&lt;br /&gt;
* &#039;&#039;Type: Contains(where: Pattern, what: PatternSeq) -&amp;gt; Bool&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Connectivity===&lt;br /&gt;
====IsConnected()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 4m9e, 4m9v]&#039;&#039;&#039; Checks, whether a particular pattern is composed of a single component&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Atoms(&amp;quot;Zn&amp;quot;).AmbientAtoms(4).Filter(lambda m: m.IsConnected())&amp;lt;/syntaxhighlight&amp;gt; – Atoms which are at most 4 A distant from the zinc atom and are all binded together, i.e. there is no outlier.&lt;br /&gt;
* For comparison please compare with the results of the query &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Atoms(&amp;quot;Zn&amp;quot;).AmbientAtoms(4)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* &#039;&#039;Type: IsConnected(pattern: Pattern) -&amp;gt; Bool.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====IsConnectedTo()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 1hho]&#039;&#039;&#039; Checks if the two provided patterns are connected one to another. &lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Residues(&amp;quot;ALA&amp;quot;).Filter(lambda m: m.IsConnectedTo(Residues(&amp;quot;GLY&amp;quot;)))&amp;lt;/syntaxhighlight&amp;gt; – Returns all the alanine residues and directly connected glycine residues.&lt;br /&gt;
* &#039;&#039;Type: IsConnectedTo(current: Pattern, patterns: PatternSeq) -&amp;gt; Bool&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====IsNotConnectedTo()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 1hho]&#039;&#039;&#039; Checks if the two provided patterns are NOT connected one to another.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Residues(&amp;quot;ALA&amp;quot;).Filter(lambda m: m.IsNotConnectedTo(Residues(&amp;quot;GLY&amp;quot;)))&amp;lt;/syntaxhighlight&amp;gt; – Returns all the alanine residues which are not directly connected to the glycine residues.&lt;br /&gt;
* &#039;&#039;Type: IsNotConnectedTo(current: Pattern, patterns: PatternSeq) -&amp;gt; Bool&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====ConnectedAtoms()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 1hho]&#039;&#039;&#039; Returns &#039;&#039;n&#039;&#039; directly bonded layer of atoms to a given pattern.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Atoms(&amp;quot;Fe&amp;quot;).ConnectedAtoms(1)&amp;lt;/syntaxhighlight&amp;gt; – The iron atom and all the atoms which are covalently bonded to it over a single bond.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Atoms(&amp;quot;Fe&amp;quot;). ConnectedAtoms (2)&amp;lt;/syntaxhighlight&amp;gt; – Previous selection and all the atoms which are covalently bonded to them (i.e. additional layer of bonded atom). In other words the output composes of all the atoms which are 2 bonds away from the iron atom.&lt;br /&gt;
* &#039;&#039;Type: ConnectedAtoms(pattern: PatternSeq, n: Integer) -&amp;gt; Patterns&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====ConnectedResidues()====&lt;br /&gt;
* &#039;&#039;&#039;[PDB id: 1hho]&#039;&#039;&#039; Returns n directly bonded layer of residues to a given pattern.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Residues(&amp;quot;HEM&amp;quot;).ConnectedResidues(1)&amp;lt;/syntaxhighlight&amp;gt; – The HEM residue and all the residues which are covalently bonded to any atom of the HEM residue.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; inline&amp;gt;Residues(&amp;quot;HEM&amp;quot;).ConnectedResidues(2)&amp;lt;/syntaxhighlight&amp;gt; – previous selection and all the residues which are covalently bonded to them (i.e. additional layer of bonded residues).&lt;br /&gt;
* &#039;&#039;Type: ConnectedResidues(pattern: PatternSeq, n: Integer) -&amp;gt; Patterns&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Lukas</name></author>
	</entry>
</feed>