<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://wiki.docking.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jgutierrez6</id>
	<title>DISI - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.docking.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jgutierrez6"/>
	<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Special:Contributions/Jgutierrez6"/>
	<updated>2026-10-11T03:51:19Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.1</generator>
	<entry>
		<id>http://wiki.docking.org/index.php?title=How_To_Use_Ansible&amp;diff=17662</id>
		<title>How To Use Ansible</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=How_To_Use_Ansible&amp;diff=17662"/>
		<updated>2026-10-08T22:51:38Z</updated>

		<summary type="html">&lt;p&gt;Jgutierrez6: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Ansible is provisioning tool for bare-metal and virtual machines.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Warning ==&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt; These commands should only be used by privileged users. &amp;lt;/big&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt; Do not use these instructions if you do not have patience to read them. &amp;lt;/big&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt; One mistake can be very bad.&amp;lt;/big&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Instructions for Both Cluster 2 and 7 ==&lt;br /&gt;
Important Notes/Variables&lt;br /&gt;
* Ansible Head Nodes&lt;br /&gt;
** Cluster 2: epyc&lt;br /&gt;
** Cluster 7: login01&lt;br /&gt;
* Ansible path is&lt;br /&gt;
:&amp;lt;source&amp;gt;&lt;br /&gt;
/etc/ansible&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* List hosts in the inventory file&lt;br /&gt;
: &amp;lt;source&amp;gt;&lt;br /&gt;
ansible-inventory --list all&lt;br /&gt;
OR&lt;br /&gt;
cat /etc/ansible/hosts&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ansible Console ===&lt;br /&gt;
To access a terminal interface use the below command&lt;br /&gt;
 ansible-console -bkK &amp;lt;optional flags&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
 ansible-console -bkK&lt;br /&gt;
 ansible-console -bkK -l zfs&lt;br /&gt;
 ansible-console -bkK -l slurmd&lt;br /&gt;
&lt;br /&gt;
An ansible-console command without other flags will SSH into all defined hosts in the inventory list.&lt;br /&gt;
&lt;br /&gt;
==== Must-Have Flags ====&lt;br /&gt;
* -b, --become          run operations with become (does not imply password prompting)&lt;br /&gt;
* -k, --ask-pass        ask for connection password&lt;br /&gt;
* -K, --ask-become-pass&lt;br /&gt;
&lt;br /&gt;
==== Optional Useful Flags ====&lt;br /&gt;
* -l SUBSET, --limit SUBSET&lt;br /&gt;
* -T TIMEOUT, --timeout TIMEOUT&lt;br /&gt;
&lt;br /&gt;
=== Ansible Playbook ===&lt;br /&gt;
To run full instructions or playbooks&lt;br /&gt;
 ansible-playbook -bkK &amp;lt;path_to_instructions.yml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The playbooks are located in&lt;br /&gt;
 /etc/ansible/playbooks&lt;br /&gt;
&lt;br /&gt;
The directories are labeled&lt;br /&gt;
* maintenance - to check disks and hardware&lt;br /&gt;
* slurm - install and maintain slurm software and configs&lt;br /&gt;
* system - provisioning bare metal and virtual machines&lt;br /&gt;
&lt;br /&gt;
==== Must-Have Flags ====&lt;br /&gt;
* -b, --become          run operations with become (does not imply password prompting)&lt;br /&gt;
* -k, --ask-pass        ask for connection password&lt;br /&gt;
* -K, --ask-become-pass&lt;/div&gt;</summary>
		<author><name>Jgutierrez6</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=How_To_Use_Ansible&amp;diff=17661</id>
		<title>How To Use Ansible</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=How_To_Use_Ansible&amp;diff=17661"/>
		<updated>2026-10-08T22:51:06Z</updated>

		<summary type="html">&lt;p&gt;Jgutierrez6: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Ansible is provisioning tool for bare-metal and virtual machines.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt; These commands should only be used by privileged users. &amp;lt;/big&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt; Do not use these instructions if you do not have patience to read them. &amp;lt;/big&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt; One mistake can be very bad.&amp;lt;/big&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Instructions for Both Cluster 2 and 7 ==&lt;br /&gt;
Important Notes/Variables&lt;br /&gt;
* Ansible Head Nodes&lt;br /&gt;
** Cluster 2: epyc&lt;br /&gt;
** Cluster 7: login01&lt;br /&gt;
* Ansible path is&lt;br /&gt;
:&amp;lt;source&amp;gt;&lt;br /&gt;
/etc/ansible&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* List hosts in the inventory file&lt;br /&gt;
: &amp;lt;source&amp;gt;&lt;br /&gt;
ansible-inventory --list all&lt;br /&gt;
OR&lt;br /&gt;
cat /etc/ansible/hosts&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ansible Console ===&lt;br /&gt;
To access a terminal interface use the below command&lt;br /&gt;
 ansible-console -bkK &amp;lt;optional flags&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
 ansible-console -bkK&lt;br /&gt;
 ansible-console -bkK -l zfs&lt;br /&gt;
 ansible-console -bkK -l slurmd&lt;br /&gt;
&lt;br /&gt;
An ansible-console command without other flags will SSH into all defined hosts in the inventory list.&lt;br /&gt;
&lt;br /&gt;
==== Must-Have Flags ====&lt;br /&gt;
* -b, --become          run operations with become (does not imply password prompting)&lt;br /&gt;
* -k, --ask-pass        ask for connection password&lt;br /&gt;
* -K, --ask-become-pass&lt;br /&gt;
&lt;br /&gt;
==== Optional Useful Flags ====&lt;br /&gt;
* -l SUBSET, --limit SUBSET&lt;br /&gt;
* -T TIMEOUT, --timeout TIMEOUT&lt;br /&gt;
&lt;br /&gt;
=== Ansible Playbook ===&lt;br /&gt;
To run full instructions or playbooks&lt;br /&gt;
 ansible-playbook -bkK &amp;lt;path_to_instructions.yml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The playbooks are located in&lt;br /&gt;
 /etc/ansible/playbooks&lt;br /&gt;
&lt;br /&gt;
The directories are labeled&lt;br /&gt;
* maintenance - to check disks and hardware&lt;br /&gt;
* slurm - install and maintain slurm software and configs&lt;br /&gt;
* system - provisioning bare metal and virtual machines&lt;br /&gt;
&lt;br /&gt;
==== Must-Have Flags ====&lt;br /&gt;
* -b, --become          run operations with become (does not imply password prompting)&lt;br /&gt;
* -k, --ask-pass        ask for connection password&lt;br /&gt;
* -K, --ask-become-pass&lt;/div&gt;</summary>
		<author><name>Jgutierrez6</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=How_To_Use_Ansible&amp;diff=17660</id>
		<title>How To Use Ansible</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=How_To_Use_Ansible&amp;diff=17660"/>
		<updated>2026-10-08T22:50:37Z</updated>

		<summary type="html">&lt;p&gt;Jgutierrez6: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Ansible is provisioning tool for bare-metal and virtual machines.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt; These commands should only be used by privileged users. &amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt; Do not use these instructions if you do not have patience to read them. &amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt; One mistake can be very bad.&amp;lt;/big&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Instructions for Both Cluster 2 and 7 ==&lt;br /&gt;
Important Notes/Variables&lt;br /&gt;
* Ansible Head Nodes&lt;br /&gt;
** Cluster 2: epyc&lt;br /&gt;
** Cluster 7: login01&lt;br /&gt;
* Ansible path is&lt;br /&gt;
:&amp;lt;source&amp;gt;&lt;br /&gt;
/etc/ansible&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* List hosts in the inventory file&lt;br /&gt;
: &amp;lt;source&amp;gt;&lt;br /&gt;
ansible-inventory --list all&lt;br /&gt;
OR&lt;br /&gt;
cat /etc/ansible/hosts&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ansible Console ===&lt;br /&gt;
To access a terminal interface use the below command&lt;br /&gt;
 ansible-console -bkK &amp;lt;optional flags&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
 ansible-console -bkK&lt;br /&gt;
 ansible-console -bkK -l zfs&lt;br /&gt;
 ansible-console -bkK -l slurmd&lt;br /&gt;
&lt;br /&gt;
An ansible-console command without other flags will SSH into all defined hosts in the inventory list.&lt;br /&gt;
&lt;br /&gt;
==== Must-Have Flags ====&lt;br /&gt;
* -b, --become          run operations with become (does not imply password prompting)&lt;br /&gt;
* -k, --ask-pass        ask for connection password&lt;br /&gt;
* -K, --ask-become-pass&lt;br /&gt;
&lt;br /&gt;
==== Optional Useful Flags ====&lt;br /&gt;
* -l SUBSET, --limit SUBSET&lt;br /&gt;
* -T TIMEOUT, --timeout TIMEOUT&lt;br /&gt;
&lt;br /&gt;
=== Ansible Playbook ===&lt;br /&gt;
To run full instructions or playbooks&lt;br /&gt;
 ansible-playbook -bkK &amp;lt;path_to_instructions.yml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The playbooks are located in&lt;br /&gt;
 /etc/ansible/playbooks&lt;br /&gt;
&lt;br /&gt;
The directories are labeled&lt;br /&gt;
* maintenance - to check disks and hardware&lt;br /&gt;
* slurm - install and maintain slurm software and configs&lt;br /&gt;
* system - provisioning bare metal and virtual machines&lt;br /&gt;
&lt;br /&gt;
==== Must-Have Flags ====&lt;br /&gt;
* -b, --become          run operations with become (does not imply password prompting)&lt;br /&gt;
* -k, --ask-pass        ask for connection password&lt;br /&gt;
* -K, --ask-become-pass&lt;/div&gt;</summary>
		<author><name>Jgutierrez6</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=How_To_Use_Ansible&amp;diff=17659</id>
		<title>How To Use Ansible</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=How_To_Use_Ansible&amp;diff=17659"/>
		<updated>2026-10-08T22:49:32Z</updated>

		<summary type="html">&lt;p&gt;Jgutierrez6: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Ansible is provisioning tool for bare-metal and virtual machines.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;&#039;&#039;&#039;These commands should only be used by privileged users.&lt;br /&gt;
Do not use these instructions if you do not have patience to read them. One mistake can be very bad.&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Instructions for Both Cluster 2 and 7 ==&lt;br /&gt;
Important Notes/Variables&lt;br /&gt;
* Ansible Head Nodes&lt;br /&gt;
** Cluster 2: epyc&lt;br /&gt;
** Cluster 7: login01&lt;br /&gt;
* Ansible path is&lt;br /&gt;
:&amp;lt;source&amp;gt;&lt;br /&gt;
/etc/ansible&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* List hosts in the inventory file&lt;br /&gt;
: &amp;lt;source&amp;gt;&lt;br /&gt;
ansible-inventory --list all&lt;br /&gt;
OR&lt;br /&gt;
cat /etc/ansible/hosts&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ansible Console ===&lt;br /&gt;
To access a terminal interface use the below command&lt;br /&gt;
 ansible-console -bkK &amp;lt;optional flags&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
 ansible-console -bkK&lt;br /&gt;
 ansible-console -bkK -l zfs&lt;br /&gt;
 ansible-console -bkK -l slurmd&lt;br /&gt;
&lt;br /&gt;
An ansible-console command without other flags will SSH into all defined hosts in the inventory list.&lt;br /&gt;
&lt;br /&gt;
==== Must-Have Flags ====&lt;br /&gt;
* -b, --become          run operations with become (does not imply password prompting)&lt;br /&gt;
* -k, --ask-pass        ask for connection password&lt;br /&gt;
* -K, --ask-become-pass&lt;br /&gt;
&lt;br /&gt;
==== Optional Useful Flags ====&lt;br /&gt;
* -l SUBSET, --limit SUBSET&lt;br /&gt;
* -T TIMEOUT, --timeout TIMEOUT&lt;br /&gt;
&lt;br /&gt;
=== Ansible Playbook ===&lt;br /&gt;
To run full instructions or playbooks&lt;br /&gt;
 ansible-playbook -bkK &amp;lt;path_to_instructions.yml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The playbooks are located in&lt;br /&gt;
 /etc/ansible/playbooks&lt;br /&gt;
&lt;br /&gt;
The directories are labeled&lt;br /&gt;
* maintenance - to check disks and hardware&lt;br /&gt;
* slurm - install and maintain slurm software and configs&lt;br /&gt;
* system - provisioning bare metal and virtual machines&lt;br /&gt;
&lt;br /&gt;
==== Must-Have Flags ====&lt;br /&gt;
* -b, --become          run operations with become (does not imply password prompting)&lt;br /&gt;
* -k, --ask-pass        ask for connection password&lt;br /&gt;
* -K, --ask-become-pass&lt;/div&gt;</summary>
		<author><name>Jgutierrez6</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=How_To_Use_Ansible&amp;diff=17658</id>
		<title>How To Use Ansible</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=How_To_Use_Ansible&amp;diff=17658"/>
		<updated>2026-10-08T22:48:32Z</updated>

		<summary type="html">&lt;p&gt;Jgutierrez6: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Ansible is provisioning tool for bare-metal and virtual machines.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;&#039;&#039;&#039;These commands should only be used by privileged users.&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Instructions for Both Cluster 2 and 7 ==&lt;br /&gt;
Important Notes/Variables&lt;br /&gt;
* Ansible Head Nodes&lt;br /&gt;
** Cluster 2: epyc&lt;br /&gt;
** Cluster 7: login01&lt;br /&gt;
* Ansible path is&lt;br /&gt;
:&amp;lt;source&amp;gt;&lt;br /&gt;
/etc/ansible&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* List hosts in the inventory file&lt;br /&gt;
: &amp;lt;source&amp;gt;&lt;br /&gt;
ansible-inventory --list all&lt;br /&gt;
OR&lt;br /&gt;
cat /etc/ansible/hosts&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ansible Console ===&lt;br /&gt;
To access a terminal interface use the below command&lt;br /&gt;
 ansible-console -bkK &amp;lt;optional flags&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
 ansible-console -bkK&lt;br /&gt;
 ansible-console -bkK -l zfs&lt;br /&gt;
 ansible-console -bkK -l slurmd&lt;br /&gt;
&lt;br /&gt;
An ansible-console command without other flags will SSH into all defined hosts in the inventory list.&lt;br /&gt;
&lt;br /&gt;
==== Must-Have Flags ====&lt;br /&gt;
* -b, --become          run operations with become (does not imply password prompting)&lt;br /&gt;
* -k, --ask-pass        ask for connection password&lt;br /&gt;
* -K, --ask-become-pass&lt;br /&gt;
&lt;br /&gt;
==== Optional Useful Flags ====&lt;br /&gt;
* -l SUBSET, --limit SUBSET&lt;br /&gt;
* -T TIMEOUT, --timeout TIMEOUT&lt;br /&gt;
&lt;br /&gt;
=== Ansible Playbook ===&lt;br /&gt;
To run full instructions or playbooks&lt;br /&gt;
 ansible-playbook -bkK &amp;lt;path_to_instructions.yml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The playbooks are located in&lt;br /&gt;
 /etc/ansible/playbooks&lt;br /&gt;
&lt;br /&gt;
The directories are labeled&lt;br /&gt;
* maintenance - to check disks and hardware&lt;br /&gt;
* slurm - install and maintain slurm software and configs&lt;br /&gt;
* system - provisioning bare metal and virtual machines&lt;br /&gt;
&lt;br /&gt;
==== Must-Have Flags ====&lt;br /&gt;
* -b, --become          run operations with become (does not imply password prompting)&lt;br /&gt;
* -k, --ask-pass        ask for connection password&lt;br /&gt;
* -K, --ask-become-pass&lt;/div&gt;</summary>
		<author><name>Jgutierrez6</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=How_To_Use_Ansible&amp;diff=17657</id>
		<title>How To Use Ansible</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=How_To_Use_Ansible&amp;diff=17657"/>
		<updated>2026-10-08T22:46:00Z</updated>

		<summary type="html">&lt;p&gt;Jgutierrez6: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Ansible is provisioning tool for bare-metal and virtual machines.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;These commands should only be used by privileged users.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Instructions for Both Cluster 2 and 7 ==&lt;br /&gt;
Important Notes/Variables&lt;br /&gt;
* Ansible Head Nodes&lt;br /&gt;
** Cluster 2: epyc&lt;br /&gt;
** Cluster 7: login01&lt;br /&gt;
* Ansible path is&lt;br /&gt;
:&amp;lt;source&amp;gt;&lt;br /&gt;
/etc/ansible&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* List hosts in the inventory file&lt;br /&gt;
: &amp;lt;source&amp;gt;&lt;br /&gt;
ansible-inventory --list all&lt;br /&gt;
OR&lt;br /&gt;
cat /etc/ansible/hosts&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ansible Console ===&lt;br /&gt;
To access a terminal interface use the below command&lt;br /&gt;
 ansible-console -bkK &amp;lt;optional flags&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
 ansible-console -bkK&lt;br /&gt;
 ansible-console -bkK -l zfs&lt;br /&gt;
 ansible-console -bkK -l slurmd&lt;br /&gt;
&lt;br /&gt;
An ansible-console command without other flags will SSH into all defined hosts in the inventory list.&lt;br /&gt;
&lt;br /&gt;
==== Must-Have Flags ====&lt;br /&gt;
* -b, --become          run operations with become (does not imply password prompting)&lt;br /&gt;
* -k, --ask-pass        ask for connection password&lt;br /&gt;
* -K, --ask-become-pass&lt;br /&gt;
&lt;br /&gt;
==== Optional Useful Flags ====&lt;br /&gt;
* -l SUBSET, --limit SUBSET&lt;br /&gt;
* -T TIMEOUT, --timeout TIMEOUT&lt;br /&gt;
&lt;br /&gt;
=== Ansible Playbook ===&lt;br /&gt;
To run full instructions or playbooks&lt;br /&gt;
 ansible-playbook -bkK &amp;lt;path_to_instructions.yml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The playbooks are located in&lt;br /&gt;
 /etc/ansible/playbooks&lt;br /&gt;
&lt;br /&gt;
The directories are labeled&lt;br /&gt;
* maintenance - to check disks and hardware&lt;br /&gt;
* slurm - install and maintain slurm software and configs&lt;br /&gt;
* system - provisioning bare metal and virtual machines&lt;br /&gt;
&lt;br /&gt;
==== Must-Have Flags ====&lt;br /&gt;
* -b, --become          run operations with become (does not imply password prompting)&lt;br /&gt;
* -k, --ask-pass        ask for connection password&lt;br /&gt;
* -K, --ask-become-pass&lt;/div&gt;</summary>
		<author><name>Jgutierrez6</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=How_To_Use_Ansible&amp;diff=17656</id>
		<title>How To Use Ansible</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=How_To_Use_Ansible&amp;diff=17656"/>
		<updated>2026-10-08T22:30:33Z</updated>

		<summary type="html">&lt;p&gt;Jgutierrez6: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Ansible is provisioning tool for bare-metal and virtual machines.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;These commands should only be used by privileged users.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Instructions for Both Cluster 2 and 7 ==&lt;br /&gt;
Important Notes/Variables&lt;br /&gt;
* Ansible Head Nodes&lt;br /&gt;
** Cluster 2: epyc&lt;br /&gt;
** Cluster 7: login01&lt;br /&gt;
* Ansible path is&lt;br /&gt;
:&amp;lt;source&amp;gt;&lt;br /&gt;
/etc/ansible&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* List hosts in the inventory file&lt;br /&gt;
: &amp;lt;source&amp;gt;&lt;br /&gt;
ansible-inventory --list all&lt;br /&gt;
OR&lt;br /&gt;
cat /etc/ansible/hosts&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ansible Console ===&lt;br /&gt;
To access a terminal interface use the below command&lt;br /&gt;
 ansible-console -bkK &amp;lt;optional flags&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
 ansible-console -bkK&lt;br /&gt;
 ansible-console -bkK -l zfs&lt;br /&gt;
 ansible-console -bkK -l slurmd&lt;br /&gt;
&lt;br /&gt;
An ansible-console command without other flags will SSH into all defined hosts in the inventory list.&lt;br /&gt;
&lt;br /&gt;
==== Must-Have Flags ====&lt;br /&gt;
* -b, --become          run operations with become (does not imply password prompting)&lt;br /&gt;
* -k, --ask-pass        ask for connection password&lt;br /&gt;
* -K, --ask-become-pass&lt;br /&gt;
&lt;br /&gt;
==== Optional Useful Flags ====&lt;br /&gt;
* -l SUBSET, --limit SUBSET&lt;br /&gt;
* -T TIMEOUT, --timeout TIMEOUT&lt;br /&gt;
&lt;br /&gt;
=== Ansible Playbook ===&lt;/div&gt;</summary>
		<author><name>Jgutierrez6</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=How_To_Use_Ansible&amp;diff=17655</id>
		<title>How To Use Ansible</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=How_To_Use_Ansible&amp;diff=17655"/>
		<updated>2026-10-08T21:44:07Z</updated>

		<summary type="html">&lt;p&gt;Jgutierrez6: Created page with &amp;quot;== Introduction == Ansible is provisioning tool for bare-metal and virtual machines.  &amp;#039;&amp;#039;&amp;#039;These commands should only be used by privileged users.&amp;#039;&amp;#039;&amp;#039;  == Cluster 2 == Important Notes/Variables * Scripts live in  :&amp;lt;source&amp;gt; /etc/ansible &amp;lt;/source&amp;gt; * List hosts : &amp;lt;source&amp;gt; ansible-inventory --list all &amp;lt;/source&amp;gt;  === Ansible Console ===&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Ansible is provisioning tool for bare-metal and virtual machines.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;These commands should only be used by privileged users.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Cluster 2 ==&lt;br /&gt;
Important Notes/Variables&lt;br /&gt;
* Scripts live in &lt;br /&gt;
:&amp;lt;source&amp;gt;&lt;br /&gt;
/etc/ansible&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* List hosts&lt;br /&gt;
: &amp;lt;source&amp;gt;&lt;br /&gt;
ansible-inventory --list all&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ansible Console ===&lt;/div&gt;</summary>
		<author><name>Jgutierrez6</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=CoreHPC&amp;diff=17480</id>
		<title>CoreHPC</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=CoreHPC&amp;diff=17480"/>
		<updated>2026-08-31T22:11:47Z</updated>

		<summary type="html">&lt;p&gt;Jgutierrez6: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;We are still learning about FAC/coreHPC.&lt;br /&gt;
&lt;br /&gt;
you will need to get separate (?) FAC and coreHPC accounts. &lt;br /&gt;
* FAC is for storage&lt;br /&gt;
* coreHPC is for compute&lt;br /&gt;
* it is more complicated than that, but it is a reasonable simplification. &lt;br /&gt;
&lt;br /&gt;
* We collectively refer to FAC/coreHPC as &amp;quot;Cluster 8&amp;quot;. &lt;br /&gt;
* We are attempting two strategies for cluster 8: &lt;br /&gt;
** upload ZINC on the fly, dock it, and then throw it away. &lt;br /&gt;
** nfs mount our cluster on coreHPC, data gets pulled as needed&lt;br /&gt;
&lt;br /&gt;
* ZINC thus lives on our cluster (currently hosted on cluster 2, cross mounted read only to cluster 7).&lt;br /&gt;
* a copy of 50% of ZINC lives on Wynton/cluster 3.&lt;br /&gt;
* The pipe to FAC is  100 Gbps. Assming we get 50% of that, allows 1 TB in 3 minutes, and 3 PB is 6 days. &lt;br /&gt;
* thus, ftp/dock/delete. &lt;br /&gt;
&lt;br /&gt;
* to get to corehpc&lt;br /&gt;
 ssh &amp;lt;user&amp;gt;@chpc-ucsf-bastion-vm1.corehpc.ucsf.edu&lt;br /&gt;
&lt;br /&gt;
* to get to slurm head node&lt;br /&gt;
 ssh chpc-ucsf-login-vm1&lt;br /&gt;
&lt;br /&gt;
* disks are &lt;br /&gt;
 /mnt/scratch/user/&amp;lt;user&amp;gt;. &lt;br /&gt;
 /mnt/home/&amp;lt;user&amp;gt; &lt;br /&gt;
 /home/remote/&amp;lt;user&amp;gt;  ; you land here when you login&lt;br /&gt;
&lt;br /&gt;
* To check disk usage&lt;br /&gt;
** For /home/remote and /scratch&lt;br /&gt;
*:: &amp;lt;source&amp;gt; quota -s &amp;lt;/source&amp;gt;&lt;br /&gt;
** For /mnt/fac/CX900007_DS1&lt;br /&gt;
*:: &amp;lt;source&amp;gt; df -h /mnt/fac/CX900007_DS1 &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Learn more == &lt;br /&gt;
 https://wiki.library.ucsf.edu/spaces/CHPC/pages/720396955/CoreHPC+Access+Primer&lt;br /&gt;
 https://it.ucsf.edu/service/corehpc&lt;br /&gt;
 https://wiki.library.ucsf.edu/spaces/CHPC/pages/736476672/CoreHPC+Submission+Examples&lt;br /&gt;
 https://wiki.library.ucsf.edu/spaces/CHPC/pages/751928275/CoreHPC+Technical+Overview&lt;br /&gt;
&lt;br /&gt;
Anyone who uses coreHPC, please take notes, update this and other pages, and teach the rest of the lab how to use it. Thank you. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== how to do remote mounts ==&lt;br /&gt;
 https://wiki.library.ucsf.edu/spaces/CHPC/pages/720396955/CoreHPC+Access+Primer&lt;br /&gt;
&lt;br /&gt;
 https://it.ucsf.edu/how-to/fac-drive-mapping-instructions?check_logged_in=1#linux&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 smb://capstorage.fac.ucsf.edu/CX900007_DS1. lab storage&lt;br /&gt;
 /mnt/fac/CX900007_DS1 fac&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* tiny.ucsf.edu/getfac - this is how you file tickets for FAC. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
our shared storage is on /home/remote/jirwin3/fac&lt;br /&gt;
It is 1 TB. It is group writable for our group and our group alone. &lt;br /&gt;
&lt;br /&gt;
[[Category:Cluster]]&lt;/div&gt;</summary>
		<author><name>Jgutierrez6</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=ZINC26:Help&amp;diff=17305</id>
		<title>ZINC26:Help</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=ZINC26:Help&amp;diff=17305"/>
		<updated>2026-06-15T23:32:52Z</updated>

		<summary type="html">&lt;p&gt;Jgutierrez6: Created page with &amp;quot;== Introduction == For John Irwin to fill out&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
For John Irwin to fill out&lt;/div&gt;</summary>
		<author><name>Jgutierrez6</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=How_To_Use_Rsync&amp;diff=17304</id>
		<title>How To Use Rsync</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=How_To_Use_Rsync&amp;diff=17304"/>
		<updated>2026-06-15T17:10:27Z</updated>

		<summary type="html">&lt;p&gt;Jgutierrez6: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== New Notes ==&lt;br /&gt;
=== Functional Public Domain Names ===&lt;br /&gt;
*rsync://irwinlab1.ucsf.edu&lt;br /&gt;
*rsync://files2.docking.org&lt;br /&gt;
=== List Available Directories for Download ===&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
rsync --list-only rsync://files2.docking.org&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
=== How to Download ===&lt;br /&gt;
For example, I would like to only download all of the smiles from ZINC15-2D and the destination for the files will be called zinc_test&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
rsync -L -a -m --progress --include=&amp;quot;*.smi&amp;quot; --exclude=&amp;quot;*.*&amp;quot; rsync://files2.docking.org/ZINC15-2D zinc_test&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Breaking down the options used:&lt;br /&gt;
* -L: transform symbolic links into referent file/directory&lt;br /&gt;
* -a: This switch puts rsync into archive mode, which preserves time stamps, performs a recursive copy, keeps all file and directory permissions, preserves owner and group information, and copies any symbolic links.&lt;br /&gt;
* -m: Skips empty directories&lt;br /&gt;
* --progress: Shows progress during file transfer&lt;br /&gt;
* --include=”PATTERN”: includes files that are of the same pattern as “*.smi”&lt;br /&gt;
* --exclude=”PATTERN”: excludes everything that isn’t “*.smi”&lt;br /&gt;
You can check what files you can download by excluding the destination folder and removing the “include” and “exclude” options.&lt;br /&gt;
&lt;br /&gt;
You can also use &amp;quot;--dry-run&amp;quot; to simulate what you&#039;re about to download.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Old Notes ==&lt;br /&gt;
=== How To Download ZINC-22 Using Rsync ===&lt;br /&gt;
&lt;br /&gt;
Ok, you can try this&lt;br /&gt;
&lt;br /&gt;
 rsync -Larv --include=&#039;*/&#039;  --include=&#039;[a-z]/H[01]?*-*db2.tgz&#039; --exclude=&#039;sets&#039; --exclude=&#039;*&#039; --verbose rsync://files2.docking.org/ZINC22-3D/zinc-22&amp;lt;?&amp;gt; .&lt;br /&gt;
(all on one line)&lt;br /&gt;
 where &amp;lt;?&amp;gt; is d g h i k l m n o p q r s t u v x &lt;br /&gt;
 n is 50% of the database&lt;br /&gt;
 x is 25%&lt;br /&gt;
 g is &amp;quot;informer set&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will get you all molecules in the &amp;quot;?&amp;quot; layer of ZINC-22. with the db2 format. If you want sdf, mol2 or pdbqt, just change db2 into the relevant one.&lt;br /&gt;
&lt;br /&gt;
We recommended starting with &amp;lt; H20 (thus H[01]? above) .   Once you have up to H19, add H20, H21 progressively. &lt;br /&gt;
Each is typically 50% bigger than the previous one. H25 and H26 together are more than 60% of the database.&lt;br /&gt;
You can do a lot of productive docking with H13-H16 (fragment-like) and H17-H19 (small lead like). &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
The layers have no meaning, other than they allow us to prepare the database independently in steps. If you want only a subset, then you could try using the 3D tranche browser in cartblanche22.docking.org to make a precise selection. &lt;br /&gt;
&lt;br /&gt;
I hope this helps. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:ZINC22]]&lt;/div&gt;</summary>
		<author><name>Jgutierrez6</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Cluster_7&amp;diff=17121</id>
		<title>Cluster 7</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Cluster_7&amp;diff=17121"/>
		<updated>2026-03-16T23:26:08Z</updated>

		<summary type="html">&lt;p&gt;Jgutierrez6: /* SLURM Nodes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
A cluster built on Rocky 9 linux distribution which is under the RHEL umbrella. &lt;br /&gt;
&lt;br /&gt;
== How to Request for Access ==&lt;br /&gt;
Contact a system administrator. &lt;br /&gt;
&lt;br /&gt;
== How to Login ==&lt;br /&gt;
#Remote&lt;br /&gt;
#: &amp;lt;source&amp;gt;ssh &amp;lt;user&amp;gt;@epsilon.compbio.ucsf.edu&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== SLURM Nodes ==&lt;br /&gt;
*To list partitions&lt;br /&gt;
*:&amp;lt;source&amp;gt;&lt;br /&gt;
sinfo&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*To list all nodes and their information&lt;br /&gt;
*:&amp;lt;source&amp;gt;&lt;br /&gt;
sinfo -lNe&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
==== CPU Servers ====&lt;br /&gt;
*cpu02 (128 Cores, 256 Threads, 1TB RAM)&lt;br /&gt;
*cpu[03-17] (48 Cores, 96 Threads, 256GB RAM)&lt;br /&gt;
&lt;br /&gt;
==== GPU Servers ====&lt;br /&gt;
*gpu01 (48 Cores, 96 Threads, 758GB RAM, 8 x RTX 2080 Ti)&lt;br /&gt;
*gpu02 (48 Cores, 96 Threads, 758GB RAM, 4 x RTX 3090)&lt;br /&gt;
&lt;br /&gt;
==== NFS Servers ====&lt;br /&gt;
*home01&lt;br /&gt;
*hdd02&lt;br /&gt;
&lt;br /&gt;
== Global Modules/Software ==&lt;br /&gt;
*To check the list of available modules&lt;br /&gt;
*:&amp;lt;source&amp;gt;&lt;br /&gt;
/* Long version */&lt;br /&gt;
module available &lt;br /&gt;
&lt;br /&gt;
/* OR */&lt;br /&gt;
&lt;br /&gt;
/* Short version */&lt;br /&gt;
ml av &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* To load a module(s)&lt;br /&gt;
*: &amp;lt;source&amp;gt;&lt;br /&gt;
/* Single module */&lt;br /&gt;
module load dock &lt;br /&gt;
&lt;br /&gt;
/* OR */&lt;br /&gt;
&lt;br /&gt;
ml dock &lt;br /&gt;
&lt;br /&gt;
==================================&lt;br /&gt;
&lt;br /&gt;
/* Multi-module */&lt;br /&gt;
module load dock python/3.12, schrodinger&lt;br /&gt;
&lt;br /&gt;
/* OR */&lt;br /&gt;
&lt;br /&gt;
ml dock python/3.12 schrodinger&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*To list all loaded modules&lt;br /&gt;
*: &amp;lt;source&amp;gt;&lt;br /&gt;
module load&lt;br /&gt;
&lt;br /&gt;
/* OR */&lt;br /&gt;
&lt;br /&gt;
ml&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*To unload a module&lt;br /&gt;
*:&amp;lt;source&amp;gt;&lt;br /&gt;
module unload &amp;lt;module&amp;gt;&lt;br /&gt;
/* OR */&lt;br /&gt;
ml unload &amp;lt;module&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*To unload all modules&lt;br /&gt;
*:&amp;lt;source&amp;gt;&lt;br /&gt;
module purge &lt;br /&gt;
/* OR */&lt;br /&gt;
ml purge&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jgutierrez6</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Cluster_7&amp;diff=17115</id>
		<title>Cluster 7</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Cluster_7&amp;diff=17115"/>
		<updated>2026-03-02T20:44:49Z</updated>

		<summary type="html">&lt;p&gt;Jgutierrez6: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
A cluster built on Rocky 9 linux distribution which is under the RHEL umbrella. &lt;br /&gt;
&lt;br /&gt;
== How to Request for Access ==&lt;br /&gt;
Contact a system administrator. &lt;br /&gt;
&lt;br /&gt;
== How to Login ==&lt;br /&gt;
#Remote&lt;br /&gt;
#: &amp;lt;source&amp;gt;ssh &amp;lt;user&amp;gt;@epsilon.compbio.ucsf.edu&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== SLURM Nodes ==&lt;br /&gt;
*To list partitions&lt;br /&gt;
*:&amp;lt;source&amp;gt;&lt;br /&gt;
sinfo&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*To list all nodes and their information&lt;br /&gt;
*:&amp;lt;source&amp;gt;&lt;br /&gt;
sinfo -lNe&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
==== CPU Servers ====&lt;br /&gt;
*cpu02 (128 Cores, 256 Threads, 1TB RAM)&lt;br /&gt;
&lt;br /&gt;
==== GPU Servers ====&lt;br /&gt;
*gpu01 (48 Cores, 96 Threads, 758GB RAM, 8 x RTX 2080 Ti)&lt;br /&gt;
*gpu02 (48 Cores, 96 Threads, 758GB RAM, 4 x RTX 3090)&lt;br /&gt;
&lt;br /&gt;
==== NFS Servers ====&lt;br /&gt;
*home01&lt;br /&gt;
*hdd02&lt;br /&gt;
&lt;br /&gt;
== Global Modules/Software ==&lt;br /&gt;
*To check the list of available modules&lt;br /&gt;
*:&amp;lt;source&amp;gt;&lt;br /&gt;
/* Long version */&lt;br /&gt;
module available &lt;br /&gt;
&lt;br /&gt;
/* OR */&lt;br /&gt;
&lt;br /&gt;
/* Short version */&lt;br /&gt;
ml av &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* To load a module(s)&lt;br /&gt;
*: &amp;lt;source&amp;gt;&lt;br /&gt;
/* Single module */&lt;br /&gt;
module load dock &lt;br /&gt;
&lt;br /&gt;
/* OR */&lt;br /&gt;
&lt;br /&gt;
ml dock &lt;br /&gt;
&lt;br /&gt;
==================================&lt;br /&gt;
&lt;br /&gt;
/* Multi-module */&lt;br /&gt;
module load dock python/3.12, schrodinger&lt;br /&gt;
&lt;br /&gt;
/* OR */&lt;br /&gt;
&lt;br /&gt;
ml dock python/3.12 schrodinger&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*To list all loaded modules&lt;br /&gt;
*: &amp;lt;source&amp;gt;&lt;br /&gt;
module load&lt;br /&gt;
&lt;br /&gt;
/* OR */&lt;br /&gt;
&lt;br /&gt;
ml&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*To unload a module&lt;br /&gt;
*:&amp;lt;source&amp;gt;&lt;br /&gt;
module unload &amp;lt;module&amp;gt;&lt;br /&gt;
/* OR */&lt;br /&gt;
ml unload &amp;lt;module&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*To unload all modules&lt;br /&gt;
*:&amp;lt;source&amp;gt;&lt;br /&gt;
module purge &lt;br /&gt;
/* OR */&lt;br /&gt;
ml purge&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jgutierrez6</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Using_LVM_To_Mount_Drives&amp;diff=17108</id>
		<title>Using LVM To Mount Drives</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Using_LVM_To_Mount_Drives&amp;diff=17108"/>
		<updated>2026-02-20T23:11:43Z</updated>

		<summary type="html">&lt;p&gt;Jgutierrez6: /* RAID0 with LVM (Stripe) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Format Disk ==&lt;br /&gt;
Do these commands as root:&lt;br /&gt;
* fdisk -l&lt;br /&gt;
** Find disks/RAID disks to format&lt;br /&gt;
*parted&lt;br /&gt;
*print&lt;br /&gt;
*mklabel gpt&lt;br /&gt;
*mkpart logical 0GB 9995GB. (based on what we read in result of print above)&lt;br /&gt;
*print. (to confirm)&lt;br /&gt;
*quit&lt;br /&gt;
&lt;br /&gt;
== Mount storage disks using LVM ==&lt;br /&gt;
Reference guide: &#039;&#039;&#039;https://www.thegeekdiary.com/redhat-centos-a-beginners-guide-to-lvm-logical-volume-manager/&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1. Scan devices to be used as physical volumes (PV)&lt;br /&gt;
 lvmdiskscan&lt;br /&gt;
&lt;br /&gt;
2. Initialize the block devices&lt;br /&gt;
 pvcreate &amp;lt;drive1&amp;gt; &amp;lt;drive2&amp;gt; &amp;lt;...&amp;gt; ...&lt;br /&gt;
 example: pvcreate /dev/sdb /dev/sdc /dev/sdd&lt;br /&gt;
&lt;br /&gt;
3. To double check PV&lt;br /&gt;
 pvdisplay&lt;br /&gt;
 pvscan&lt;br /&gt;
 pvs&lt;br /&gt;
&lt;br /&gt;
4. After PV, create a Volume Group (VG)&lt;br /&gt;
 vgcreate &amp;lt;name of volume&amp;gt; &amp;lt;drive1&amp;gt; &amp;lt;drive2&amp;gt; &amp;lt;...&amp;gt; ...&lt;br /&gt;
 example: vgcreate soft2 /dev/sdb /dev/sdc /dev/sdd&lt;br /&gt;
&lt;br /&gt;
5. To double check VG&lt;br /&gt;
 vgs &amp;lt;VG name&amp;gt;&lt;br /&gt;
 vgdisplay &amp;lt;VG name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6. After VG, create a Logical Volume (LV)&lt;br /&gt;
 lvcreate &amp;lt;options&amp;gt; &amp;lt;name of LV&amp;gt; &amp;lt;VG Name&amp;gt;&lt;br /&gt;
 example: lvcreate -l 100%FREE -n soft_lv soft2 &lt;br /&gt;
 &amp;quot;-l&amp;quot; is for storage space in percent, 100%FREE means use all space in VG&lt;br /&gt;
 &amp;quot;-n&amp;quot; is for name of LV&lt;br /&gt;
&lt;br /&gt;
7. Double Check LV&lt;br /&gt;
 lvs /dev/&amp;lt;VG NAME&amp;gt;/&amp;lt;LV NAME&amp;gt;&lt;br /&gt;
 lvdisplay /dev/&amp;lt;VG NAME&amp;gt;/&amp;lt;LV NAME&amp;gt;&lt;br /&gt;
 lvscan&lt;br /&gt;
&lt;br /&gt;
8. Create a File System&lt;br /&gt;
 mkfs.ext4 &amp;lt;options&amp;gt; /dev/&amp;lt;VG NAME&amp;gt;/&amp;lt;LV NAME&amp;gt;&lt;br /&gt;
 example: mkfs.ext4 /dev/soft2/soft_lv&lt;br /&gt;
&lt;br /&gt;
9. Make the directory:&lt;br /&gt;
 mkdir &amp;lt;somewhere&amp;gt;&lt;br /&gt;
 example: mkdir /export/soft2&lt;br /&gt;
&lt;br /&gt;
10. Mount permanently:&lt;br /&gt;
 vim /etc/fstab&lt;br /&gt;
 /dev/&amp;lt;VG NAME&amp;gt;/&amp;lt;LV NAME&amp;gt;      &amp;lt;somewhere&amp;gt;       &amp;lt;type of file system&amp;gt;      &amp;lt;mount options&amp;gt;      &amp;lt;dump&amp;gt;         &amp;lt;fsck&amp;gt;&lt;br /&gt;
 example:&lt;br /&gt;
 /dev/soft2/soft_lv	/export/soft2	ext4	defaults	1	2&lt;br /&gt;
&lt;br /&gt;
11. Lastly, mount all&lt;br /&gt;
 mount -a&lt;br /&gt;
&lt;br /&gt;
== RAID0 with LVM (Stripe) ==&lt;br /&gt;
&lt;br /&gt;
# Determine which disks to stripe together&lt;br /&gt;
#: &amp;lt;source&amp;gt;pvscan &amp;lt;/source&amp;gt;&lt;br /&gt;
# Initialize Disk for LVM use&lt;br /&gt;
#:  &amp;lt;source&amp;gt;pvcreate &amp;lt;disk&amp;gt; &amp;lt;disk&amp;gt; &amp;lt;disk&amp;gt; ... &amp;lt;/source&amp;gt;&lt;br /&gt;
# Create Volume Group&lt;br /&gt;
#:  &amp;lt;source&amp;gt; vgcreate &amp;lt;name&amp;gt; &amp;lt;disk1&amp;gt; &amp;lt;disk2&amp;gt; ... &amp;lt;/source&amp;gt;&lt;br /&gt;
# Create a logical volume with &amp;quot;-i &amp;lt;#&amp;gt;&amp;quot; flag to create stripe&lt;br /&gt;
#:  &amp;lt;source&amp;gt; &lt;br /&gt;
lvcreate -i &amp;lt;how_many_disks&amp;gt; -l &amp;lt;how much of disk to use in percent&amp;gt; -n &amp;lt;name&amp;gt; &amp;lt;volume_group&amp;gt;&lt;br /&gt;
 example: lvcreate -i 2 -l 100%FREE -n scratch_lv scratch&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
# Double Check if successful&lt;br /&gt;
#:  &amp;lt;source&amp;gt; lvscan &amp;lt;/source&amp;gt;&lt;br /&gt;
# Create Filesystem of choice&lt;br /&gt;
#:  &amp;lt;source&amp;gt;&lt;br /&gt;
 mkfs.xfs &amp;lt;logical_volume_name&amp;gt;&lt;br /&gt;
 OR&lt;br /&gt;
 mkfs.ext4 &amp;lt;logical_volume_name&amp;gt;&lt;br /&gt;
 etc...&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== RAID1 with LVM on fresh drives ==&lt;br /&gt;
1. Check which disk will act as the mirror&lt;br /&gt;
 fdisk -l&lt;br /&gt;
&lt;br /&gt;
2. Create physical volumes of the drives&lt;br /&gt;
 pvcreate &amp;lt;disk&amp;gt; &amp;lt;disk&amp;gt; &amp;lt;disk&amp;gt;&lt;br /&gt;
 example: pvcreate /dev/sdz /dev/sdaa&lt;br /&gt;
&lt;br /&gt;
3. Create a volume group for these drives&lt;br /&gt;
 vgcreate &amp;lt;name&amp;gt; &amp;lt;disk1&amp;gt; &amp;lt;disk2&amp;gt;&lt;br /&gt;
 example: vgcreate local2 /dev/sdz /dev/sdaa&lt;br /&gt;
&lt;br /&gt;
4. Create a logical volume with &amp;quot;-m1&amp;quot; flag to say mirror/raid1 &lt;br /&gt;
 lvcreate -l &amp;lt;how much of disk to use in percent&amp;gt; -m1 -n &amp;lt;name&amp;gt; &amp;lt;volume_group&amp;gt;&lt;br /&gt;
 example: lvcreate -l 100%FREE -m1 -n local2_lv local2&lt;br /&gt;
&lt;br /&gt;
5. Mount permanently:&lt;br /&gt;
 vim /etc/fstab&lt;br /&gt;
 /dev/&amp;lt;VG NAME&amp;gt;/&amp;lt;LV NAME&amp;gt;      &amp;lt;somewhere&amp;gt;       &amp;lt;type of file system&amp;gt;      &amp;lt;mount options&amp;gt;      &amp;lt;dump&amp;gt;         &amp;lt;fsck&amp;gt;&lt;br /&gt;
 example:&lt;br /&gt;
 /dev/local2/local2_lv   /local2         ext4    defaults        1       2&lt;br /&gt;
&lt;br /&gt;
6. Lastly, mount all&lt;br /&gt;
 mount -a&lt;br /&gt;
&lt;br /&gt;
== RAID1 with LVM on an existing used logical volume ==&lt;br /&gt;
&#039;&#039;&#039;Before starting, make sure that the disk that will mirror data is the same size or bigger than the drive being mirrored.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1. Check if the volume has free space for lvm logs. Mirror will fail if no free space available.&lt;br /&gt;
 pvscan&lt;br /&gt;
 example output:&lt;br /&gt;
  PV /dev/sda2   VG centos          lvm2 [&amp;lt;222.57 GiB / 0    free]&lt;br /&gt;
  PV /dev/sdb1   VG centos          lvm2 [&amp;lt;223.57 GiB / 0    free]&lt;br /&gt;
  PV /dev/sdd1   VG local2          lvm2 [&amp;lt;7.28 TiB / &amp;lt;5.03 GiB free]&lt;br /&gt;
If &#039;&#039;&#039; PV /dev/sdd1   VG local2          lvm2 [&amp;lt;7.28 TiB / 0 free] &#039;&#039;&#039; then do&lt;br /&gt;
 lvreduce -l -1 --resizefs /dev/&amp;lt;volume_group&amp;gt;/&amp;lt;logical_volume&amp;gt;&lt;br /&gt;
 example : lvreduce -l -1 --resizefs /dev/local2/zinc_lv&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Check which disk will act as the mirror&lt;br /&gt;
 fdisk -l&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. Extend the disk to volume group&lt;br /&gt;
 vgextend &amp;lt;volume_group&amp;gt; /dev/&amp;lt;disk&amp;gt;&lt;br /&gt;
 example: vgextend local2 /dev/sdc&lt;br /&gt;
To remove extension:&lt;br /&gt;
 vgreduce &amp;lt;volume_group&amp;gt; /dev/&amp;lt;disk&amp;gt;&lt;br /&gt;
 example: vgreduce local2 /dev/sdc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. Convert current working logical volume to RAID1 and assign mirror&lt;br /&gt;
 lvconvert -m1 /dev/&amp;lt;volume_group&amp;gt;/&amp;lt;logical_volume&amp;gt; /dev/&amp;lt;disk&amp;gt;&lt;br /&gt;
 example: lvconvert -m1 /dev/local2/zinc_lv /dev/sdc&lt;br /&gt;
&lt;br /&gt;
5. It should say it was successful, to check syncing progress&lt;br /&gt;
 lvs -a -o +devices&lt;/div&gt;</summary>
		<author><name>Jgutierrez6</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Using_LVM_To_Mount_Drives&amp;diff=17107</id>
		<title>Using LVM To Mount Drives</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Using_LVM_To_Mount_Drives&amp;diff=17107"/>
		<updated>2026-02-20T23:07:01Z</updated>

		<summary type="html">&lt;p&gt;Jgutierrez6: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Format Disk ==&lt;br /&gt;
Do these commands as root:&lt;br /&gt;
* fdisk -l&lt;br /&gt;
** Find disks/RAID disks to format&lt;br /&gt;
*parted&lt;br /&gt;
*print&lt;br /&gt;
*mklabel gpt&lt;br /&gt;
*mkpart logical 0GB 9995GB. (based on what we read in result of print above)&lt;br /&gt;
*print. (to confirm)&lt;br /&gt;
*quit&lt;br /&gt;
&lt;br /&gt;
== Mount storage disks using LVM ==&lt;br /&gt;
Reference guide: &#039;&#039;&#039;https://www.thegeekdiary.com/redhat-centos-a-beginners-guide-to-lvm-logical-volume-manager/&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1. Scan devices to be used as physical volumes (PV)&lt;br /&gt;
 lvmdiskscan&lt;br /&gt;
&lt;br /&gt;
2. Initialize the block devices&lt;br /&gt;
 pvcreate &amp;lt;drive1&amp;gt; &amp;lt;drive2&amp;gt; &amp;lt;...&amp;gt; ...&lt;br /&gt;
 example: pvcreate /dev/sdb /dev/sdc /dev/sdd&lt;br /&gt;
&lt;br /&gt;
3. To double check PV&lt;br /&gt;
 pvdisplay&lt;br /&gt;
 pvscan&lt;br /&gt;
 pvs&lt;br /&gt;
&lt;br /&gt;
4. After PV, create a Volume Group (VG)&lt;br /&gt;
 vgcreate &amp;lt;name of volume&amp;gt; &amp;lt;drive1&amp;gt; &amp;lt;drive2&amp;gt; &amp;lt;...&amp;gt; ...&lt;br /&gt;
 example: vgcreate soft2 /dev/sdb /dev/sdc /dev/sdd&lt;br /&gt;
&lt;br /&gt;
5. To double check VG&lt;br /&gt;
 vgs &amp;lt;VG name&amp;gt;&lt;br /&gt;
 vgdisplay &amp;lt;VG name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6. After VG, create a Logical Volume (LV)&lt;br /&gt;
 lvcreate &amp;lt;options&amp;gt; &amp;lt;name of LV&amp;gt; &amp;lt;VG Name&amp;gt;&lt;br /&gt;
 example: lvcreate -l 100%FREE -n soft_lv soft2 &lt;br /&gt;
 &amp;quot;-l&amp;quot; is for storage space in percent, 100%FREE means use all space in VG&lt;br /&gt;
 &amp;quot;-n&amp;quot; is for name of LV&lt;br /&gt;
&lt;br /&gt;
7. Double Check LV&lt;br /&gt;
 lvs /dev/&amp;lt;VG NAME&amp;gt;/&amp;lt;LV NAME&amp;gt;&lt;br /&gt;
 lvdisplay /dev/&amp;lt;VG NAME&amp;gt;/&amp;lt;LV NAME&amp;gt;&lt;br /&gt;
 lvscan&lt;br /&gt;
&lt;br /&gt;
8. Create a File System&lt;br /&gt;
 mkfs.ext4 &amp;lt;options&amp;gt; /dev/&amp;lt;VG NAME&amp;gt;/&amp;lt;LV NAME&amp;gt;&lt;br /&gt;
 example: mkfs.ext4 /dev/soft2/soft_lv&lt;br /&gt;
&lt;br /&gt;
9. Make the directory:&lt;br /&gt;
 mkdir &amp;lt;somewhere&amp;gt;&lt;br /&gt;
 example: mkdir /export/soft2&lt;br /&gt;
&lt;br /&gt;
10. Mount permanently:&lt;br /&gt;
 vim /etc/fstab&lt;br /&gt;
 /dev/&amp;lt;VG NAME&amp;gt;/&amp;lt;LV NAME&amp;gt;      &amp;lt;somewhere&amp;gt;       &amp;lt;type of file system&amp;gt;      &amp;lt;mount options&amp;gt;      &amp;lt;dump&amp;gt;         &amp;lt;fsck&amp;gt;&lt;br /&gt;
 example:&lt;br /&gt;
 /dev/soft2/soft_lv	/export/soft2	ext4	defaults	1	2&lt;br /&gt;
&lt;br /&gt;
11. Lastly, mount all&lt;br /&gt;
 mount -a&lt;br /&gt;
&lt;br /&gt;
== RAID0 with LVM (Stripe) ==&lt;br /&gt;
&lt;br /&gt;
# Determine which disks to stripe together&lt;br /&gt;
 pvscan&lt;br /&gt;
&lt;br /&gt;
# Initialize Disk for LVM use&lt;br /&gt;
 pvcreate &amp;lt;disk&amp;gt; &amp;lt;disk&amp;gt; &amp;lt;disk&amp;gt; ...&lt;br /&gt;
&lt;br /&gt;
# Create Volume Group&lt;br /&gt;
 vgcreate &amp;lt;name&amp;gt; &amp;lt;disk1&amp;gt; &amp;lt;disk2&amp;gt; ...&lt;br /&gt;
&lt;br /&gt;
# Create a logical volume with &amp;quot;-i &amp;lt;#&amp;gt;&amp;quot; flag to create stripe&lt;br /&gt;
 lvcreate -i &amp;lt;how_many_disks&amp;gt; -l &amp;lt;how much of disk to use in percent&amp;gt; -n &amp;lt;name&amp;gt; &amp;lt;volume_group&amp;gt;&lt;br /&gt;
 example: lvcreate -i 2 -l 100%FREE -n scratch_lv scratch&lt;br /&gt;
&lt;br /&gt;
# Double Check if successful&lt;br /&gt;
 lvscan&lt;br /&gt;
&lt;br /&gt;
# Create Filesystem of choice&lt;br /&gt;
 mkfs.xfs &amp;lt;logical_volume_name&amp;gt;&lt;br /&gt;
 OR&lt;br /&gt;
 mkfs.ext4 &amp;lt;logical_volume_name&amp;gt;&lt;br /&gt;
 etc...&lt;br /&gt;
&lt;br /&gt;
== RAID1 with LVM on fresh drives ==&lt;br /&gt;
1. Check which disk will act as the mirror&lt;br /&gt;
 fdisk -l&lt;br /&gt;
&lt;br /&gt;
2. Create physical volumes of the drives&lt;br /&gt;
 pvcreate &amp;lt;disk&amp;gt; &amp;lt;disk&amp;gt; &amp;lt;disk&amp;gt;&lt;br /&gt;
 example: pvcreate /dev/sdz /dev/sdaa&lt;br /&gt;
&lt;br /&gt;
3. Create a volume group for these drives&lt;br /&gt;
 vgcreate &amp;lt;name&amp;gt; &amp;lt;disk1&amp;gt; &amp;lt;disk2&amp;gt;&lt;br /&gt;
 example: vgcreate local2 /dev/sdz /dev/sdaa&lt;br /&gt;
&lt;br /&gt;
4. Create a logical volume with &amp;quot;-m1&amp;quot; flag to say mirror/raid1 &lt;br /&gt;
 lvcreate -l &amp;lt;how much of disk to use in percent&amp;gt; -m1 -n &amp;lt;name&amp;gt; &amp;lt;volume_group&amp;gt;&lt;br /&gt;
 example: lvcreate -l 100%FREE -m1 -n local2_lv local2&lt;br /&gt;
&lt;br /&gt;
5. Mount permanently:&lt;br /&gt;
 vim /etc/fstab&lt;br /&gt;
 /dev/&amp;lt;VG NAME&amp;gt;/&amp;lt;LV NAME&amp;gt;      &amp;lt;somewhere&amp;gt;       &amp;lt;type of file system&amp;gt;      &amp;lt;mount options&amp;gt;      &amp;lt;dump&amp;gt;         &amp;lt;fsck&amp;gt;&lt;br /&gt;
 example:&lt;br /&gt;
 /dev/local2/local2_lv   /local2         ext4    defaults        1       2&lt;br /&gt;
&lt;br /&gt;
6. Lastly, mount all&lt;br /&gt;
 mount -a&lt;br /&gt;
&lt;br /&gt;
== RAID1 with LVM on an existing used logical volume ==&lt;br /&gt;
&#039;&#039;&#039;Before starting, make sure that the disk that will mirror data is the same size or bigger than the drive being mirrored.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1. Check if the volume has free space for lvm logs. Mirror will fail if no free space available.&lt;br /&gt;
 pvscan&lt;br /&gt;
 example output:&lt;br /&gt;
  PV /dev/sda2   VG centos          lvm2 [&amp;lt;222.57 GiB / 0    free]&lt;br /&gt;
  PV /dev/sdb1   VG centos          lvm2 [&amp;lt;223.57 GiB / 0    free]&lt;br /&gt;
  PV /dev/sdd1   VG local2          lvm2 [&amp;lt;7.28 TiB / &amp;lt;5.03 GiB free]&lt;br /&gt;
If &#039;&#039;&#039; PV /dev/sdd1   VG local2          lvm2 [&amp;lt;7.28 TiB / 0 free] &#039;&#039;&#039; then do&lt;br /&gt;
 lvreduce -l -1 --resizefs /dev/&amp;lt;volume_group&amp;gt;/&amp;lt;logical_volume&amp;gt;&lt;br /&gt;
 example : lvreduce -l -1 --resizefs /dev/local2/zinc_lv&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Check which disk will act as the mirror&lt;br /&gt;
 fdisk -l&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. Extend the disk to volume group&lt;br /&gt;
 vgextend &amp;lt;volume_group&amp;gt; /dev/&amp;lt;disk&amp;gt;&lt;br /&gt;
 example: vgextend local2 /dev/sdc&lt;br /&gt;
To remove extension:&lt;br /&gt;
 vgreduce &amp;lt;volume_group&amp;gt; /dev/&amp;lt;disk&amp;gt;&lt;br /&gt;
 example: vgreduce local2 /dev/sdc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. Convert current working logical volume to RAID1 and assign mirror&lt;br /&gt;
 lvconvert -m1 /dev/&amp;lt;volume_group&amp;gt;/&amp;lt;logical_volume&amp;gt; /dev/&amp;lt;disk&amp;gt;&lt;br /&gt;
 example: lvconvert -m1 /dev/local2/zinc_lv /dev/sdc&lt;br /&gt;
&lt;br /&gt;
5. It should say it was successful, to check syncing progress&lt;br /&gt;
 lvs -a -o +devices&lt;/div&gt;</summary>
		<author><name>Jgutierrez6</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Using_LVM_To_Mount_Drives&amp;diff=17106</id>
		<title>Using LVM To Mount Drives</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Using_LVM_To_Mount_Drives&amp;diff=17106"/>
		<updated>2026-02-20T23:02:46Z</updated>

		<summary type="html">&lt;p&gt;Jgutierrez6: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Format Disk ==&lt;br /&gt;
Do these commands as root:&lt;br /&gt;
* fdisk -l&lt;br /&gt;
** Find disks/RAID disks to format&lt;br /&gt;
*parted&lt;br /&gt;
*print&lt;br /&gt;
*mklabel gpt&lt;br /&gt;
*mkpart logical 0GB 9995GB. (based on what we read in result of print above)&lt;br /&gt;
*print. (to confirm)&lt;br /&gt;
*quit&lt;br /&gt;
&lt;br /&gt;
== Mount storage disks using LVM ==&lt;br /&gt;
Reference guide: &#039;&#039;&#039;https://www.thegeekdiary.com/redhat-centos-a-beginners-guide-to-lvm-logical-volume-manager/&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1. Scan devices to be used as physical volumes (PV)&lt;br /&gt;
 lvmdiskscan&lt;br /&gt;
&lt;br /&gt;
2. Initialize the block devices&lt;br /&gt;
 pvcreate &amp;lt;drive1&amp;gt; &amp;lt;drive2&amp;gt; &amp;lt;...&amp;gt; ...&lt;br /&gt;
 example: pvcreate /dev/sdb /dev/sdc /dev/sdd&lt;br /&gt;
&lt;br /&gt;
3. To double check PV&lt;br /&gt;
 pvdisplay&lt;br /&gt;
 pvscan&lt;br /&gt;
 pvs&lt;br /&gt;
&lt;br /&gt;
4. After PV, create a Volume Group (VG)&lt;br /&gt;
 vgcreate &amp;lt;name of volume&amp;gt; &amp;lt;drive1&amp;gt; &amp;lt;drive2&amp;gt; &amp;lt;...&amp;gt; ...&lt;br /&gt;
 example: vgcreate soft2 /dev/sdb /dev/sdc /dev/sdd&lt;br /&gt;
&lt;br /&gt;
5. To double check VG&lt;br /&gt;
 vgs &amp;lt;VG name&amp;gt;&lt;br /&gt;
 vgdisplay &amp;lt;VG name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6. After VG, create a Logical Volume (LV)&lt;br /&gt;
 lvcreate &amp;lt;options&amp;gt; &amp;lt;name of LV&amp;gt; &amp;lt;VG Name&amp;gt;&lt;br /&gt;
 example: lvcreate -l 100%FREE -n soft_lv soft2 &lt;br /&gt;
 &amp;quot;-l&amp;quot; is for storage space in percent, 100%FREE means use all space in VG&lt;br /&gt;
 &amp;quot;-n&amp;quot; is for name of LV&lt;br /&gt;
&lt;br /&gt;
7. Double Check LV&lt;br /&gt;
 lvs /dev/&amp;lt;VG NAME&amp;gt;/&amp;lt;LV NAME&amp;gt;&lt;br /&gt;
 lvdisplay /dev/&amp;lt;VG NAME&amp;gt;/&amp;lt;LV NAME&amp;gt;&lt;br /&gt;
 lvscan&lt;br /&gt;
&lt;br /&gt;
8. Create a File System&lt;br /&gt;
 mkfs.ext4 &amp;lt;options&amp;gt; /dev/&amp;lt;VG NAME&amp;gt;/&amp;lt;LV NAME&amp;gt;&lt;br /&gt;
 example: mkfs.ext4 /dev/soft2/soft_lv&lt;br /&gt;
&lt;br /&gt;
9. Make the directory:&lt;br /&gt;
 mkdir &amp;lt;somewhere&amp;gt;&lt;br /&gt;
 example: mkdir /export/soft2&lt;br /&gt;
&lt;br /&gt;
10. Mount permanently:&lt;br /&gt;
 vim /etc/fstab&lt;br /&gt;
 /dev/&amp;lt;VG NAME&amp;gt;/&amp;lt;LV NAME&amp;gt;      &amp;lt;somewhere&amp;gt;       &amp;lt;type of file system&amp;gt;      &amp;lt;mount options&amp;gt;      &amp;lt;dump&amp;gt;         &amp;lt;fsck&amp;gt;&lt;br /&gt;
 example:&lt;br /&gt;
 /dev/soft2/soft_lv	/export/soft2	ext4	defaults	1	2&lt;br /&gt;
&lt;br /&gt;
11. Lastly, mount all&lt;br /&gt;
 mount -a&lt;br /&gt;
&lt;br /&gt;
== RAID0 with LVM (Stripe) ==&lt;br /&gt;
&lt;br /&gt;
#pvscan&lt;br /&gt;
&lt;br /&gt;
== RAID1 with LVM on fresh drives ==&lt;br /&gt;
1. Check which disk will act as the mirror&lt;br /&gt;
 fdisk -l&lt;br /&gt;
&lt;br /&gt;
2. Create physical volumes of the drives&lt;br /&gt;
 pvcreate &amp;lt;disk&amp;gt; &amp;lt;disk&amp;gt; &amp;lt;disk&amp;gt;&lt;br /&gt;
 example: pvcreate /dev/sdz /dev/sdaa&lt;br /&gt;
&lt;br /&gt;
3. Create a volume group for these drives&lt;br /&gt;
 vgcreate &amp;lt;name&amp;gt; &amp;lt;disk1&amp;gt; &amp;lt;disk2&amp;gt;&lt;br /&gt;
 example: vgcreate local2 /dev/sdz /dev/sdaa&lt;br /&gt;
&lt;br /&gt;
4. Create a logical volume with &amp;quot;-m1&amp;quot; flag to say mirror/raid1 &lt;br /&gt;
 lvcreate -l &amp;lt;how much of disk to use in percent&amp;gt; -m1 -n &amp;lt;name&amp;gt; &amp;lt;volume_group&amp;gt;&lt;br /&gt;
 example: lvcreate -l 100%FREE -m1 -n local2_lv local2&lt;br /&gt;
&lt;br /&gt;
5. Mount permanently:&lt;br /&gt;
 vim /etc/fstab&lt;br /&gt;
 /dev/&amp;lt;VG NAME&amp;gt;/&amp;lt;LV NAME&amp;gt;      &amp;lt;somewhere&amp;gt;       &amp;lt;type of file system&amp;gt;      &amp;lt;mount options&amp;gt;      &amp;lt;dump&amp;gt;         &amp;lt;fsck&amp;gt;&lt;br /&gt;
 example:&lt;br /&gt;
 /dev/local2/local2_lv   /local2         ext4    defaults        1       2&lt;br /&gt;
&lt;br /&gt;
6. Lastly, mount all&lt;br /&gt;
 mount -a&lt;br /&gt;
&lt;br /&gt;
== RAID1 with LVM on an existing used logical volume ==&lt;br /&gt;
&#039;&#039;&#039;Before starting, make sure that the disk that will mirror data is the same size or bigger than the drive being mirrored.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1. Check if the volume has free space for lvm logs. Mirror will fail if no free space available.&lt;br /&gt;
 pvscan&lt;br /&gt;
 example output:&lt;br /&gt;
  PV /dev/sda2   VG centos          lvm2 [&amp;lt;222.57 GiB / 0    free]&lt;br /&gt;
  PV /dev/sdb1   VG centos          lvm2 [&amp;lt;223.57 GiB / 0    free]&lt;br /&gt;
  PV /dev/sdd1   VG local2          lvm2 [&amp;lt;7.28 TiB / &amp;lt;5.03 GiB free]&lt;br /&gt;
If &#039;&#039;&#039; PV /dev/sdd1   VG local2          lvm2 [&amp;lt;7.28 TiB / 0 free] &#039;&#039;&#039; then do&lt;br /&gt;
 lvreduce -l -1 --resizefs /dev/&amp;lt;volume_group&amp;gt;/&amp;lt;logical_volume&amp;gt;&lt;br /&gt;
 example : lvreduce -l -1 --resizefs /dev/local2/zinc_lv&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Check which disk will act as the mirror&lt;br /&gt;
 fdisk -l&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. Extend the disk to volume group&lt;br /&gt;
 vgextend &amp;lt;volume_group&amp;gt; /dev/&amp;lt;disk&amp;gt;&lt;br /&gt;
 example: vgextend local2 /dev/sdc&lt;br /&gt;
To remove extension:&lt;br /&gt;
 vgreduce &amp;lt;volume_group&amp;gt; /dev/&amp;lt;disk&amp;gt;&lt;br /&gt;
 example: vgreduce local2 /dev/sdc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. Convert current working logical volume to RAID1 and assign mirror&lt;br /&gt;
 lvconvert -m1 /dev/&amp;lt;volume_group&amp;gt;/&amp;lt;logical_volume&amp;gt; /dev/&amp;lt;disk&amp;gt;&lt;br /&gt;
 example: lvconvert -m1 /dev/local2/zinc_lv /dev/sdc&lt;br /&gt;
&lt;br /&gt;
5. It should say it was successful, to check syncing progress&lt;br /&gt;
 lvs -a -o +devices&lt;/div&gt;</summary>
		<author><name>Jgutierrez6</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Using_LVM_To_Mount_Drives&amp;diff=17105</id>
		<title>Using LVM To Mount Drives</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Using_LVM_To_Mount_Drives&amp;diff=17105"/>
		<updated>2026-02-20T23:02:16Z</updated>

		<summary type="html">&lt;p&gt;Jgutierrez6: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Format Disk ==&lt;br /&gt;
Do these commands as root:&lt;br /&gt;
* fdisk -l&lt;br /&gt;
** Find disks/RAID disks to format&lt;br /&gt;
*parted&lt;br /&gt;
*print&lt;br /&gt;
*mklabel gpt&lt;br /&gt;
*mkpart logical 0GB 9995GB. (based on what we read in result of print above)&lt;br /&gt;
*print. (to confirm)&lt;br /&gt;
*quit&lt;br /&gt;
&lt;br /&gt;
== Mount storage disks using LVM ==&lt;br /&gt;
Reference guide: &#039;&#039;&#039;https://www.thegeekdiary.com/redhat-centos-a-beginners-guide-to-lvm-logical-volume-manager/&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1. Scan devices to be used as physical volumes (PV)&lt;br /&gt;
 lvmdiskscan&lt;br /&gt;
&lt;br /&gt;
2. Initialize the block devices&lt;br /&gt;
 pvcreate &amp;lt;drive1&amp;gt; &amp;lt;drive2&amp;gt; &amp;lt;...&amp;gt; ...&lt;br /&gt;
 example: pvcreate /dev/sdb /dev/sdc /dev/sdd&lt;br /&gt;
&lt;br /&gt;
3. To double check PV&lt;br /&gt;
 pvdisplay&lt;br /&gt;
 pvscan&lt;br /&gt;
 pvs&lt;br /&gt;
&lt;br /&gt;
4. After PV, create a Volume Group (VG)&lt;br /&gt;
 vgcreate &amp;lt;name of volume&amp;gt; &amp;lt;drive1&amp;gt; &amp;lt;drive2&amp;gt; &amp;lt;...&amp;gt; ...&lt;br /&gt;
 example: vgcreate soft2 /dev/sdb /dev/sdc /dev/sdd&lt;br /&gt;
&lt;br /&gt;
5. To double check VG&lt;br /&gt;
 vgs &amp;lt;VG name&amp;gt;&lt;br /&gt;
 vgdisplay &amp;lt;VG name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6. After VG, create a Logical Volume (LV)&lt;br /&gt;
 lvcreate &amp;lt;options&amp;gt; &amp;lt;name of LV&amp;gt; &amp;lt;VG Name&amp;gt;&lt;br /&gt;
 example: lvcreate -l 100%FREE -n soft_lv soft2 &lt;br /&gt;
 &amp;quot;-l&amp;quot; is for storage space in percent, 100%FREE means use all space in VG&lt;br /&gt;
 &amp;quot;-n&amp;quot; is for name of LV&lt;br /&gt;
&lt;br /&gt;
7. Double Check LV&lt;br /&gt;
 lvs /dev/&amp;lt;VG NAME&amp;gt;/&amp;lt;LV NAME&amp;gt;&lt;br /&gt;
 lvdisplay /dev/&amp;lt;VG NAME&amp;gt;/&amp;lt;LV NAME&amp;gt;&lt;br /&gt;
 lvscan&lt;br /&gt;
&lt;br /&gt;
8. Create a File System&lt;br /&gt;
 mkfs.ext4 &amp;lt;options&amp;gt; /dev/&amp;lt;VG NAME&amp;gt;/&amp;lt;LV NAME&amp;gt;&lt;br /&gt;
 example: mkfs.ext4 /dev/soft2/soft_lv&lt;br /&gt;
&lt;br /&gt;
9. Make the directory:&lt;br /&gt;
 mkdir &amp;lt;somewhere&amp;gt;&lt;br /&gt;
 example: mkdir /export/soft2&lt;br /&gt;
&lt;br /&gt;
10. Mount permanently:&lt;br /&gt;
 vim /etc/fstab&lt;br /&gt;
 /dev/&amp;lt;VG NAME&amp;gt;/&amp;lt;LV NAME&amp;gt;      &amp;lt;somewhere&amp;gt;       &amp;lt;type of file system&amp;gt;      &amp;lt;mount options&amp;gt;      &amp;lt;dump&amp;gt;         &amp;lt;fsck&amp;gt;&lt;br /&gt;
 example:&lt;br /&gt;
 /dev/soft2/soft_lv	/export/soft2	ext4	defaults	1	2&lt;br /&gt;
&lt;br /&gt;
11. Lastly, mount all&lt;br /&gt;
 mount -a&lt;br /&gt;
&lt;br /&gt;
== RAID1 with LVM on fresh drives ==&lt;br /&gt;
1. Check which disk will act as the mirror&lt;br /&gt;
 fdisk -l&lt;br /&gt;
&lt;br /&gt;
2. Create physical volumes of the drives&lt;br /&gt;
 pvcreate &amp;lt;disk&amp;gt; &amp;lt;disk&amp;gt; &amp;lt;disk&amp;gt;&lt;br /&gt;
 example: pvcreate /dev/sdz /dev/sdaa&lt;br /&gt;
&lt;br /&gt;
3. Create a volume group for these drives&lt;br /&gt;
 vgcreate &amp;lt;name&amp;gt; &amp;lt;disk1&amp;gt; &amp;lt;disk2&amp;gt;&lt;br /&gt;
 example: vgcreate local2 /dev/sdz /dev/sdaa&lt;br /&gt;
&lt;br /&gt;
4. Create a logical volume with &amp;quot;-m1&amp;quot; flag to say mirror/raid1 &lt;br /&gt;
 lvcreate -l &amp;lt;how much of disk to use in percent&amp;gt; -m1 -n &amp;lt;name&amp;gt; &amp;lt;volume_group&amp;gt;&lt;br /&gt;
 example: lvcreate -l 100%FREE -m1 -n local2_lv local2&lt;br /&gt;
&lt;br /&gt;
5. Mount permanently:&lt;br /&gt;
 vim /etc/fstab&lt;br /&gt;
 /dev/&amp;lt;VG NAME&amp;gt;/&amp;lt;LV NAME&amp;gt;      &amp;lt;somewhere&amp;gt;       &amp;lt;type of file system&amp;gt;      &amp;lt;mount options&amp;gt;      &amp;lt;dump&amp;gt;         &amp;lt;fsck&amp;gt;&lt;br /&gt;
 example:&lt;br /&gt;
 /dev/local2/local2_lv   /local2         ext4    defaults        1       2&lt;br /&gt;
&lt;br /&gt;
6. Lastly, mount all&lt;br /&gt;
 mount -a&lt;br /&gt;
&lt;br /&gt;
== RAID0 with LVM (Stripe) ==&lt;br /&gt;
&lt;br /&gt;
#pvscan&lt;br /&gt;
&lt;br /&gt;
== RAID1 with LVM on an existing used logical volume ==&lt;br /&gt;
&#039;&#039;&#039;Before starting, make sure that the disk that will mirror data is the same size or bigger than the drive being mirrored.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1. Check if the volume has free space for lvm logs. Mirror will fail if no free space available.&lt;br /&gt;
 pvscan&lt;br /&gt;
 example output:&lt;br /&gt;
  PV /dev/sda2   VG centos          lvm2 [&amp;lt;222.57 GiB / 0    free]&lt;br /&gt;
  PV /dev/sdb1   VG centos          lvm2 [&amp;lt;223.57 GiB / 0    free]&lt;br /&gt;
  PV /dev/sdd1   VG local2          lvm2 [&amp;lt;7.28 TiB / &amp;lt;5.03 GiB free]&lt;br /&gt;
If &#039;&#039;&#039; PV /dev/sdd1   VG local2          lvm2 [&amp;lt;7.28 TiB / 0 free] &#039;&#039;&#039; then do&lt;br /&gt;
 lvreduce -l -1 --resizefs /dev/&amp;lt;volume_group&amp;gt;/&amp;lt;logical_volume&amp;gt;&lt;br /&gt;
 example : lvreduce -l -1 --resizefs /dev/local2/zinc_lv&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Check which disk will act as the mirror&lt;br /&gt;
 fdisk -l&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. Extend the disk to volume group&lt;br /&gt;
 vgextend &amp;lt;volume_group&amp;gt; /dev/&amp;lt;disk&amp;gt;&lt;br /&gt;
 example: vgextend local2 /dev/sdc&lt;br /&gt;
To remove extension:&lt;br /&gt;
 vgreduce &amp;lt;volume_group&amp;gt; /dev/&amp;lt;disk&amp;gt;&lt;br /&gt;
 example: vgreduce local2 /dev/sdc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. Convert current working logical volume to RAID1 and assign mirror&lt;br /&gt;
 lvconvert -m1 /dev/&amp;lt;volume_group&amp;gt;/&amp;lt;logical_volume&amp;gt; /dev/&amp;lt;disk&amp;gt;&lt;br /&gt;
 example: lvconvert -m1 /dev/local2/zinc_lv /dev/sdc&lt;br /&gt;
&lt;br /&gt;
5. It should say it was successful, to check syncing progress&lt;br /&gt;
 lvs -a -o +devices&lt;/div&gt;</summary>
		<author><name>Jgutierrez6</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Using_LVM_To_Mount_Drives&amp;diff=17104</id>
		<title>Using LVM To Mount Drives</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Using_LVM_To_Mount_Drives&amp;diff=17104"/>
		<updated>2026-02-20T23:01:15Z</updated>

		<summary type="html">&lt;p&gt;Jgutierrez6: Jgutierrez6 moved page Format And Mount local2 to Using LVM To Mount Drives without leaving a redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Format Disk ==&lt;br /&gt;
Do these commands as root:&lt;br /&gt;
* fdisk -l&lt;br /&gt;
** Find disks/RAID disks to format&lt;br /&gt;
*parted&lt;br /&gt;
*print&lt;br /&gt;
*mklabel gpt&lt;br /&gt;
*mkpart logical 0GB 9995GB. (based on what we read in result of print above)&lt;br /&gt;
*print. (to confirm)&lt;br /&gt;
*quit&lt;br /&gt;
&lt;br /&gt;
== Mount storage disks using LVM ==&lt;br /&gt;
Reference guide: &#039;&#039;&#039;https://www.thegeekdiary.com/redhat-centos-a-beginners-guide-to-lvm-logical-volume-manager/&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1. Scan devices to be used as physical volumes (PV)&lt;br /&gt;
 lvmdiskscan&lt;br /&gt;
&lt;br /&gt;
2. Initialize the block devices&lt;br /&gt;
 pvcreate &amp;lt;drive1&amp;gt; &amp;lt;drive2&amp;gt; &amp;lt;...&amp;gt; ...&lt;br /&gt;
 example: pvcreate /dev/sdb /dev/sdc /dev/sdd&lt;br /&gt;
&lt;br /&gt;
3. To double check PV&lt;br /&gt;
 pvdisplay&lt;br /&gt;
 pvscan&lt;br /&gt;
 pvs&lt;br /&gt;
&lt;br /&gt;
4. After PV, create a Volume Group (VG)&lt;br /&gt;
 vgcreate &amp;lt;name of volume&amp;gt; &amp;lt;drive1&amp;gt; &amp;lt;drive2&amp;gt; &amp;lt;...&amp;gt; ...&lt;br /&gt;
 example: vgcreate soft2 /dev/sdb /dev/sdc /dev/sdd&lt;br /&gt;
&lt;br /&gt;
5. To double check VG&lt;br /&gt;
 vgs &amp;lt;VG name&amp;gt;&lt;br /&gt;
 vgdisplay &amp;lt;VG name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6. After VG, create a Logical Volume (LV)&lt;br /&gt;
 lvcreate &amp;lt;options&amp;gt; &amp;lt;name of LV&amp;gt; &amp;lt;VG Name&amp;gt;&lt;br /&gt;
 example: lvcreate -l 100%FREE -n soft_lv soft2 &lt;br /&gt;
 &amp;quot;-l&amp;quot; is for storage space in percent, 100%FREE means use all space in VG&lt;br /&gt;
 &amp;quot;-n&amp;quot; is for name of LV&lt;br /&gt;
&lt;br /&gt;
7. Double Check LV&lt;br /&gt;
 lvs /dev/&amp;lt;VG NAME&amp;gt;/&amp;lt;LV NAME&amp;gt;&lt;br /&gt;
 lvdisplay /dev/&amp;lt;VG NAME&amp;gt;/&amp;lt;LV NAME&amp;gt;&lt;br /&gt;
 lvscan&lt;br /&gt;
&lt;br /&gt;
8. Create a File System&lt;br /&gt;
 mkfs.ext4 &amp;lt;options&amp;gt; /dev/&amp;lt;VG NAME&amp;gt;/&amp;lt;LV NAME&amp;gt;&lt;br /&gt;
 example: mkfs.ext4 /dev/soft2/soft_lv&lt;br /&gt;
&lt;br /&gt;
9. Make the directory:&lt;br /&gt;
 mkdir &amp;lt;somewhere&amp;gt;&lt;br /&gt;
 example: mkdir /export/soft2&lt;br /&gt;
&lt;br /&gt;
10. Mount permanently:&lt;br /&gt;
 vim /etc/fstab&lt;br /&gt;
 /dev/&amp;lt;VG NAME&amp;gt;/&amp;lt;LV NAME&amp;gt;      &amp;lt;somewhere&amp;gt;       &amp;lt;type of file system&amp;gt;      &amp;lt;mount options&amp;gt;      &amp;lt;dump&amp;gt;         &amp;lt;fsck&amp;gt;&lt;br /&gt;
 example:&lt;br /&gt;
 /dev/soft2/soft_lv	/export/soft2	ext4	defaults	1	2&lt;br /&gt;
&lt;br /&gt;
11. Lastly, mount all&lt;br /&gt;
 mount -a&lt;br /&gt;
&lt;br /&gt;
== RAID1 with LVM on fresh drives ==&lt;br /&gt;
1. Check which disk will act as the mirror&lt;br /&gt;
 fdisk -l&lt;br /&gt;
&lt;br /&gt;
2. Create physical volumes of the drives&lt;br /&gt;
 pvcreate &amp;lt;disk&amp;gt; &amp;lt;disk&amp;gt; &amp;lt;disk&amp;gt;&lt;br /&gt;
 example: pvcreate /dev/sdz /dev/sdaa&lt;br /&gt;
&lt;br /&gt;
3. Create a volume group for these drives&lt;br /&gt;
 vgcreate &amp;lt;name&amp;gt; &amp;lt;disk1&amp;gt; &amp;lt;disk2&amp;gt;&lt;br /&gt;
 example: vgcreate local2 /dev/sdz /dev/sdaa&lt;br /&gt;
&lt;br /&gt;
4. Create a logical volume with &amp;quot;-m1&amp;quot; flag to say mirror/raid1 &lt;br /&gt;
 lvcreate -l &amp;lt;how much of disk to use in percent&amp;gt; -m1 -n &amp;lt;name&amp;gt; &amp;lt;volume_group&amp;gt;&lt;br /&gt;
 example: lvcreate -l 100%FREE -m1 -n local2_lv local2&lt;br /&gt;
&lt;br /&gt;
5. Mount permanently:&lt;br /&gt;
 vim /etc/fstab&lt;br /&gt;
 /dev/&amp;lt;VG NAME&amp;gt;/&amp;lt;LV NAME&amp;gt;      &amp;lt;somewhere&amp;gt;       &amp;lt;type of file system&amp;gt;      &amp;lt;mount options&amp;gt;      &amp;lt;dump&amp;gt;         &amp;lt;fsck&amp;gt;&lt;br /&gt;
 example:&lt;br /&gt;
 /dev/local2/local2_lv   /local2         ext4    defaults        1       2&lt;br /&gt;
&lt;br /&gt;
6. Lastly, mount all&lt;br /&gt;
 mount -a&lt;br /&gt;
&lt;br /&gt;
== RAID1 with LVM on an existing used logical volume ==&lt;br /&gt;
&#039;&#039;&#039;Before starting, make sure that the disk that will mirror data is the same size or bigger than the drive being mirrored.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1. Check if the volume has free space for lvm logs. Mirror will fail if no free space available.&lt;br /&gt;
 pvscan&lt;br /&gt;
 example output:&lt;br /&gt;
  PV /dev/sda2   VG centos          lvm2 [&amp;lt;222.57 GiB / 0    free]&lt;br /&gt;
  PV /dev/sdb1   VG centos          lvm2 [&amp;lt;223.57 GiB / 0    free]&lt;br /&gt;
  PV /dev/sdd1   VG local2          lvm2 [&amp;lt;7.28 TiB / &amp;lt;5.03 GiB free]&lt;br /&gt;
If &#039;&#039;&#039; PV /dev/sdd1   VG local2          lvm2 [&amp;lt;7.28 TiB / 0 free] &#039;&#039;&#039; then do&lt;br /&gt;
 lvreduce -l -1 --resizefs /dev/&amp;lt;volume_group&amp;gt;/&amp;lt;logical_volume&amp;gt;&lt;br /&gt;
 example : lvreduce -l -1 --resizefs /dev/local2/zinc_lv&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Check which disk will act as the mirror&lt;br /&gt;
 fdisk -l&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. Extend the disk to volume group&lt;br /&gt;
 vgextend &amp;lt;volume_group&amp;gt; /dev/&amp;lt;disk&amp;gt;&lt;br /&gt;
 example: vgextend local2 /dev/sdc&lt;br /&gt;
To remove extension:&lt;br /&gt;
 vgreduce &amp;lt;volume_group&amp;gt; /dev/&amp;lt;disk&amp;gt;&lt;br /&gt;
 example: vgreduce local2 /dev/sdc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. Convert current working logical volume to RAID1 and assign mirror&lt;br /&gt;
 lvconvert -m1 /dev/&amp;lt;volume_group&amp;gt;/&amp;lt;logical_volume&amp;gt; /dev/&amp;lt;disk&amp;gt;&lt;br /&gt;
 example: lvconvert -m1 /dev/local2/zinc_lv /dev/sdc&lt;br /&gt;
&lt;br /&gt;
5. It should say it was successful, to check syncing progress&lt;br /&gt;
 lvs -a -o +devices&lt;/div&gt;</summary>
		<author><name>Jgutierrez6</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Cluster_7&amp;diff=17055</id>
		<title>Cluster 7</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Cluster_7&amp;diff=17055"/>
		<updated>2026-02-04T22:30:31Z</updated>

		<summary type="html">&lt;p&gt;Jgutierrez6: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
A cluster built on Rocky 9 linux distribution which is under the RHEL umbrella. &lt;br /&gt;
&lt;br /&gt;
== How to Request for Access ==&lt;br /&gt;
Contact a system administrator. &lt;br /&gt;
&lt;br /&gt;
== How to Login ==&lt;br /&gt;
#Remote&lt;br /&gt;
#: &amp;lt;source&amp;gt;ssh &amp;lt;user&amp;gt;@epsilon.compbio.ucsf.edu&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== SLURM Nodes ==&lt;br /&gt;
*To list partitions&lt;br /&gt;
*:&amp;lt;source&amp;gt;&lt;br /&gt;
sinfo&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*To list all nodes and their information&lt;br /&gt;
*:&amp;lt;source&amp;gt;&lt;br /&gt;
sinfo -lNe&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
==== CPU Servers ====&lt;br /&gt;
*cpu02 (128 Cores, 256 Threads, 1TB RAM)&lt;br /&gt;
&lt;br /&gt;
==== GPU Servers ====&lt;br /&gt;
*gpu01 (48 Cores, 96 Threads, 758GB RAM, 8 x RTX 2080 Ti)&lt;br /&gt;
&lt;br /&gt;
==== NFS Servers ====&lt;br /&gt;
*home01&lt;br /&gt;
*hdd02&lt;br /&gt;
&lt;br /&gt;
== Global Modules/Software ==&lt;br /&gt;
*To check the list of available modules&lt;br /&gt;
*:&amp;lt;source&amp;gt;&lt;br /&gt;
/* Long version */&lt;br /&gt;
module available &lt;br /&gt;
&lt;br /&gt;
/* OR */&lt;br /&gt;
&lt;br /&gt;
/* Short version */&lt;br /&gt;
ml av &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* To load a module(s)&lt;br /&gt;
*: &amp;lt;source&amp;gt;&lt;br /&gt;
/* Single module */&lt;br /&gt;
module load dock &lt;br /&gt;
&lt;br /&gt;
/* OR */&lt;br /&gt;
&lt;br /&gt;
ml dock &lt;br /&gt;
&lt;br /&gt;
==================================&lt;br /&gt;
&lt;br /&gt;
/* Multi-module */&lt;br /&gt;
module load dock python/3.12, schrodinger&lt;br /&gt;
&lt;br /&gt;
/* OR */&lt;br /&gt;
&lt;br /&gt;
ml dock python/3.12 schrodinger&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*To list all loaded modules&lt;br /&gt;
*: &amp;lt;source&amp;gt;&lt;br /&gt;
module load&lt;br /&gt;
&lt;br /&gt;
/* OR */&lt;br /&gt;
&lt;br /&gt;
ml&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*To unload a module&lt;br /&gt;
*:&amp;lt;source&amp;gt;&lt;br /&gt;
module unload &amp;lt;module&amp;gt;&lt;br /&gt;
/* OR */&lt;br /&gt;
ml unload &amp;lt;module&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*To unload all modules&lt;br /&gt;
*:&amp;lt;source&amp;gt;&lt;br /&gt;
module purge &lt;br /&gt;
/* OR */&lt;br /&gt;
ml purge&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jgutierrez6</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Cluster_7&amp;diff=17053</id>
		<title>Cluster 7</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Cluster_7&amp;diff=17053"/>
		<updated>2026-02-03T23:48:55Z</updated>

		<summary type="html">&lt;p&gt;Jgutierrez6: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
A cluster built on Rocky 9 linux distribution which is under the RHEL umbrella. &lt;br /&gt;
&lt;br /&gt;
== How to Request for Access ==&lt;br /&gt;
Contact a system administrator. &lt;br /&gt;
&lt;br /&gt;
== How to Login ==&lt;br /&gt;
#Remote&lt;br /&gt;
#: &amp;lt;source&amp;gt;ssh &amp;lt;user&amp;gt;@epsilon.compbio.ucsf.edu&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== SLURM Nodes ==&lt;br /&gt;
*To list partitions&lt;br /&gt;
*:&amp;lt;source&amp;gt;&lt;br /&gt;
sinfo&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*To list all nodes and their information&lt;br /&gt;
*:&amp;lt;source&amp;gt;&lt;br /&gt;
sinfo -lNe&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
==== CPU Servers ====&lt;br /&gt;
*cpu02 (128 Cores, 256 Threads, 1TB RAM)&lt;br /&gt;
&lt;br /&gt;
==== GPU Servers ====&lt;br /&gt;
*gpu01 (48 Cores, 96 Threads, 758TB RAM, 8 x RTX 2080 Ti)&lt;br /&gt;
&lt;br /&gt;
==== NFS Servers ====&lt;br /&gt;
*home01&lt;br /&gt;
*hdd02&lt;br /&gt;
&lt;br /&gt;
== Global Modules/Software ==&lt;br /&gt;
*To check the list of available modules&lt;br /&gt;
*:&amp;lt;source&amp;gt;&lt;br /&gt;
/* Long version */&lt;br /&gt;
module available &lt;br /&gt;
&lt;br /&gt;
/* OR */&lt;br /&gt;
&lt;br /&gt;
/* Short version */&lt;br /&gt;
ml av &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* To load a module(s)&lt;br /&gt;
*: &amp;lt;source&amp;gt;&lt;br /&gt;
/* Single module */&lt;br /&gt;
module load dock &lt;br /&gt;
&lt;br /&gt;
/* OR */&lt;br /&gt;
&lt;br /&gt;
ml dock &lt;br /&gt;
&lt;br /&gt;
==================================&lt;br /&gt;
&lt;br /&gt;
/* Multi-module */&lt;br /&gt;
module load dock python/3.12, schrodinger&lt;br /&gt;
&lt;br /&gt;
/* OR */&lt;br /&gt;
&lt;br /&gt;
ml dock python/3.12 schrodinger&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*To list all loaded modules&lt;br /&gt;
*: &amp;lt;source&amp;gt;&lt;br /&gt;
module load&lt;br /&gt;
&lt;br /&gt;
/* OR */&lt;br /&gt;
&lt;br /&gt;
ml&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*To unload a module&lt;br /&gt;
*:&amp;lt;source&amp;gt;&lt;br /&gt;
module unload &amp;lt;module&amp;gt;&lt;br /&gt;
/* OR */&lt;br /&gt;
ml unload &amp;lt;module&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*To unload all modules&lt;br /&gt;
*:&amp;lt;source&amp;gt;&lt;br /&gt;
module purge &lt;br /&gt;
/* OR */&lt;br /&gt;
ml purge&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jgutierrez6</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=SmallWorld_Documentation_for_Future_Developer&amp;diff=17052</id>
		<title>SmallWorld Documentation for Future Developer</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=SmallWorld_Documentation_for_Future_Developer&amp;diff=17052"/>
		<updated>2026-02-03T22:46:17Z</updated>

		<summary type="html">&lt;p&gt;Jgutierrez6: /* Update Smallworld Start Script */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
[https://www.nextmovesoftware.com/downloads/smallworld/documentation/SmallWorld.pdf Here is the link to Smallworld&#039;s manual]&lt;br /&gt;
* Username: ucsf@nextmovesoftware.com&lt;br /&gt;
* Password: &amp;lt;Ask jjiteam@googlegroups.com&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All smallworld databases live in abacus&#039; db3.&lt;br /&gt;
&lt;br /&gt;
Smallworld frontend files are consolidated and located at &#039;&#039;&#039;/export/db3/smallworld_extract/.extract&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Execute command &#039;&#039;&#039;start_smallworld&#039;&#039;&#039; to see options on which smallworld instance to start/restart.&lt;br /&gt;
&lt;br /&gt;
= How to Download Smallworld =&lt;br /&gt;
# Ssh to abacus and become root. Prepare directory&lt;br /&gt;
#: &amp;lt;source&amp;gt; mkdir /opt/nextmove/smallworld-&amp;lt;version&amp;gt; &amp;amp;&amp;amp; cd /opt/nextmove/smallworld-&amp;lt;version&amp;gt; &amp;lt;/source&amp;gt;&lt;br /&gt;
# [https://www.nextmovesoftware.com/downloads/smallworld/ Download Software with this link]&lt;br /&gt;
#* Username: ucsf@nextmovesoftware.com&lt;br /&gt;
#* Password: &amp;lt;Ask jjiteam@googlegroups.com&amp;gt;&lt;br /&gt;
# Go to releases. Look for &#039;&#039;&#039; smallworld-java-&amp;lt;version&amp;gt;.tar.gz &#039;&#039;&#039; and copy the link address.&lt;br /&gt;
# Download using wget&lt;br /&gt;
#: &amp;lt;source&amp;gt; wget --user ucsf@nextmovesoftware.com --password &amp;lt;Ask jjiteam@googlegroups.com&amp;gt; &amp;lt;link address&amp;gt; &amp;lt;/source&amp;gt;&lt;br /&gt;
# Decompress the file&lt;br /&gt;
#* &amp;lt;source&amp;gt; tar -xvf &amp;lt;file_name&amp;gt; &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= How to Launch Smallworld For The First Time =&lt;br /&gt;
== Prepare Files and Directories ==&lt;br /&gt;
# Ssh to abacus and become root&lt;br /&gt;
# Open a port in the firewall&lt;br /&gt;
#: &amp;lt;source&amp;gt;firewall-cmd --permanent --add-port=&amp;lt;port_number&amp;gt;/tcp &lt;br /&gt;
firewall-cmd --reload&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
# Go to smallworld databases directory&lt;br /&gt;
#: &amp;lt;source&amp;gt;cd /export/db3/&amp;lt;/source&amp;gt;&lt;br /&gt;
# Create a Smallworld directory and go to it&lt;br /&gt;
#: &amp;lt;source&amp;gt;mkdir &amp;lt;smallworld_dir&amp;gt; &amp;amp;&amp;amp; cd &amp;lt;smallworld_dir&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
# Inside that directory, create these&lt;br /&gt;
#* a symbolic link to the smallworld anon map&lt;br /&gt;
#: &amp;lt;source&amp;gt;ln -s /export/db2/smallworld_anon_21Q4 anon&amp;lt;/source&amp;gt;&lt;br /&gt;
#* a sub-directory called maps to store databases&lt;br /&gt;
#: &amp;lt;source&amp;gt;mkdir maps&amp;lt;/source&amp;gt;&lt;br /&gt;
#* a smallworld config file&lt;br /&gt;
#: &amp;lt;source&amp;gt;vim smallworld.cfg&amp;lt;/source&amp;gt;&lt;br /&gt;
#* Add this block of code inside the config file&lt;br /&gt;
#: &amp;lt;source&amp;gt;&lt;br /&gt;
[WebApp]&lt;br /&gt;
DepictionUrl=./depict/svg?w=%w&amp;amp;h=%h&amp;amp;smi=%s&amp;amp;qry=%q&amp;amp;cols=%c&amp;amp;cmap=%m&lt;br /&gt;
ResolverUrl=./util/smi2mol?smi=%s&lt;br /&gt;
SearchTimeOut=5000&lt;br /&gt;
SearchAsYouDraw=true&lt;br /&gt;
[Score]&lt;br /&gt;
Name=Atom Alignment&lt;br /&gt;
Description=Aligns and scores each hit relative to the query atom types, differences are categorised as MAJ, MIN, HYB, SUB &lt;br /&gt;
Class=com.nmsoftware.smallworld.score.SimpleAtomAlignment &lt;br /&gt;
EnabledByDefault=false&lt;br /&gt;
MappingMode=EditMap&lt;br /&gt;
[Score]&lt;br /&gt;
Name=SMARTS Alignment&lt;br /&gt;
Description=Treat input as SMARTS and align and score each hit relative to the query atom expressions in the input &lt;br /&gt;
Class=com.nmsoftware.smallworld.score.SmartsAtomAlignment &lt;br /&gt;
EnabledByDefault=false&lt;br /&gt;
[Score]&lt;br /&gt;
Name=ECFP4&lt;br /&gt;
Description=Extended Connectivity Circular Fingerprint&lt;br /&gt;
Class=com.nmsoftware.smallworld.score.EcfpTanimoto&lt;br /&gt;
Radius=2&lt;br /&gt;
EnabledByDefault=true&lt;br /&gt;
[Score]&lt;br /&gt;
Name=Daylight&lt;br /&gt;
Description=Path based fingerprint&lt;br /&gt;
Class=com.nmsoftware.smallworld.score.DaylightTanimoto&lt;br /&gt;
EnabledByDefault=true&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
#* &#039;&#039;&#039;SearchTimeOut&#039;&#039;&#039; should be the only option you&#039;ll change in the future. It caps search time to lessen strain on machine.&lt;br /&gt;
#Place any *.anon.maps you&#039;ve already compiled for testing into the maps sub-directory.&lt;br /&gt;
== Start Smallworld Instance ==&lt;br /&gt;
# Create a screen&lt;br /&gt;
#: &amp;lt;source&amp;gt;screen -S &amp;lt;screen_name&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
# Export the smallworld directory you&#039;ve made&lt;br /&gt;
#: &amp;lt;source&amp;gt;export SWDIR=/export/db5/&amp;lt;smallworld_dir&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
# Launch java&lt;br /&gt;
#: &amp;lt;source&amp;gt;java -jar -Dserver.port=9999 sw_source/smallworld-&amp;lt;version&amp;gt;/sw-ws-&amp;lt;version&amp;gt;.war&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= How to Build Smallworld Maps/Databases =&lt;br /&gt;
Consolidate smiles into &#039;&#039;&#039;/export/db3/temp_mapping&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Use the script located in that directory called &#039;&#039;&#039;smallworld_map_script&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Here is the content of the script:&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
#!/bin/csh -f&lt;br /&gt;
setenv SWDIR /export/db3/public_smallworld_4th_gen/&lt;br /&gt;
&lt;br /&gt;
alias sw &#039;time java -jar /opt/nextmove/smallworld-5.1/sw.jar&#039;&lt;br /&gt;
&lt;br /&gt;
set target = &#039;*.smi&#039;&lt;br /&gt;
&lt;br /&gt;
foreach i ($target)&lt;br /&gt;
	echo &#039;(sw map&#039; $i &#039;-T tmp/ -o &#039;${i}&#039;.anon.map -u &#039;${i}&#039;.anon.unmapped) |&amp;amp; tee &#039;${i}&#039;_log&#039;&lt;br /&gt;
	(sw map $i -T tmp/ -o ${i}.anon.map -u ${i}.anon.unmapped) |&amp;amp; tee ${i}_log&lt;br /&gt;
	echo &#039;sw blm -p 0.01 &#039;${i}&#039;.anon.map&#039;&lt;br /&gt;
	sw blm -p 0.01 ${i}.anon.map&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
== Command Details ==&lt;br /&gt;
&#039;&#039;&#039;setenv&#039;&#039;&#039; sets the environment where the anon master map is&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;java -jar /opt/nextmove/smallworld-5.1/sw.jar&#039;&#039;&#039; shortened to &#039;&#039;&#039;sw&#039;&#039;&#039; via alias&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;map&#039;&#039;&#039; will map the smiles based on the current anon master map.&lt;br /&gt;
*&#039;&#039;&#039;-T&#039;&#039;&#039; stores temp files so /tmp does not get overloaded&lt;br /&gt;
*&#039;&#039;&#039;-o&#039;&#039;&#039; output with custom name you like&lt;br /&gt;
*&#039;&#039;&#039;-u&#039;&#039;&#039; will collect the unmapped molecules to send to Nextmove or to use swextend&lt;br /&gt;
&#039;&#039;&#039;tee&#039;&#039;&#039; will log the progress of the process&lt;br /&gt;
&lt;br /&gt;
== Splitting Databases ==&lt;br /&gt;
[[http://wiki.docking.org/index.php/Creating_Maps_on_SmallWorld| Follow this page if John has asked you to split the database into smaller slices.]]&lt;br /&gt;
&lt;br /&gt;
= Active Smallworld Instances =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Caption text&lt;br /&gt;
|-&lt;br /&gt;
! Type !! URL !! Machine:Port !! Directory&lt;br /&gt;
|-&lt;br /&gt;
| Public || http://sw.docking.org/ || 10.20.0.5:5020 || /nfs/db3/public_smallworld_4th_gen&lt;br /&gt;
|-&lt;br /&gt;
| Private || http://swp.docking.org/ || 10.20.0.5:8080 || /nfs/db3/private_smallworld_4th_gen&lt;br /&gt;
|-&lt;br /&gt;
| Super Private || http://swc.docking.org/ || 10.20.0.5:5099 || /nfs/db3/super_private_smallworld_4th_gen&lt;br /&gt;
|-&lt;br /&gt;
| SWBB || http://swbb.docking.org/ || 10.20.0.5:8081 || /nfs/db3/swbb_5th_gen&lt;br /&gt;
|-&lt;br /&gt;
| SWCC || http://swcc.docking.org/ || 10.20.0.5:8082 || /nfs/db3/swcc_5th_gen&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Customize Smallworld FrontEnd To Our Needs (Smallworld 5.5) =&lt;br /&gt;
&#039;&#039;&#039;These instructions only worked and compiled for me in the machine called epyc which is running Rocky 8 Linux operating system.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Summary of changes in swsearch.js:&lt;br /&gt;
* Conditional hyperlinks attached to smallworld hits. Leads to zinc20, cartblanche22, or nothing.&lt;br /&gt;
* Adding clipboard icon to copy SMILES of hits.&lt;br /&gt;
&lt;br /&gt;
Summary of changes in search.html:&lt;br /&gt;
* Add &#039;Ask Questions&#039; and contact info&lt;br /&gt;
* Add &#039;Database Information&#039; hyperlink&lt;br /&gt;
* Pre-toggle Advanced Option&lt;br /&gt;
&lt;br /&gt;
Summary of changes in smallworld-swagger.yaml:&lt;br /&gt;
* Change API route to be just &amp;quot;/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Install Prerequisite Packages ==&lt;br /&gt;
# Install Apache Maven&lt;br /&gt;
#* &amp;lt;source&amp;gt;dnf install maven -y&amp;lt;/source&amp;gt;&lt;br /&gt;
# In your home directory, create a new directory to hold the files for the upcoming procedures&lt;br /&gt;
#* &amp;lt;source&amp;gt;mkdir /mnt/nfs/home/jjg/smallworld_build_from_source&amp;lt;/source&amp;gt;&lt;br /&gt;
# Download these latest Smallworlds and store them in &#039;smallworld_build_from_source/&#039;. [[SmallWorld_Documentation_for_Future_Developer#How_to_Download_Smallworld|Here&#039;s how to download Smallworld.]]&lt;br /&gt;
#* smallworld-java-5.5.tar.gz&lt;br /&gt;
#* smallworld-java-src-5.5.tar.gz&lt;br /&gt;
# Extract contents from the tar.gz files&lt;br /&gt;
#* &amp;lt;source&amp;gt;tar -xvf smallworld-java-5.5.tar.gz&lt;br /&gt;
tar -xvf smallworld-java-src-5.5.tar.gz&amp;lt;/source&amp;gt;&lt;br /&gt;
# Install Apache Maven Smallworld Dependencies&lt;br /&gt;
#* &amp;lt;source&amp;gt;&lt;br /&gt;
cd /mnt/nfs/home/jjg/smallworld_build_from_source/smallworld-java/lib/&lt;br /&gt;
bash mvn-install.sh&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Customizing swsearch.js ==&lt;br /&gt;
Location: /mnt/nfs/home/jjg/smallworld_build_from_source/smallworld-java-src/web/src/main/webapp/WEB-INF/static/js/swsearch.js&lt;br /&gt;
&lt;br /&gt;
=== Conditional Hyperlinks ===&lt;br /&gt;
# vim /mnt/nfs/home/jjg/smallworld_build_from_source/smallworld-java-src/web/src/main/webapp/WEB-INF/static/js/swsearch.js&lt;br /&gt;
# Search for this&lt;br /&gt;
#* &amp;lt;source&amp;gt;?div.append(&amp;quot;&amp;lt;b&amp;gt;&amp;quot; + id + &amp;quot;&amp;lt;/b&amp;gt;&amp;quot;);&amp;lt;/source&amp;gt; &lt;br /&gt;
# Replace the inside of the else statement with these lines of code&lt;br /&gt;
#* &amp;lt;source&amp;gt;&lt;br /&gt;
                if (id.substring(0,6) == &amp;quot;ZINC00&amp;quot;) {&lt;br /&gt;
                        div.append(&amp;quot;&amp;lt;b&amp;gt;&amp;lt;a target=&#039;_blank&#039; href=&#039;https://zinc20.docking.org/substances/&amp;quot;+id+&amp;quot;&#039;&amp;gt;&amp;quot; + id + &amp;quot;&amp;lt;/a&amp;gt;&amp;lt;/b&amp;gt;&amp;quot;);&lt;br /&gt;
                } else if(id.substring(0,4) == &amp;quot;ZINC&amp;quot; &amp;amp;&amp;amp; id.substring(4,6) != &amp;quot;00&amp;quot;) {&lt;br /&gt;
                        div.append(&amp;quot;&amp;lt;b&amp;gt;&amp;lt;a target=&#039;_blank&#039; href=&#039;https://cartblanche22.docking.org/substance/&amp;quot;+id+&amp;quot;&#039;&amp;gt;&amp;quot; + id + &amp;quot;&amp;lt;/a&amp;gt;&amp;lt;/b&amp;gt;&amp;quot;);&lt;br /&gt;
                } else {&lt;br /&gt;
                        div.append(&amp;quot;&amp;lt;b&amp;gt;&amp;quot; + id + &amp;quot;&amp;lt;/b&amp;gt;&amp;quot;);&lt;br /&gt;
                }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
=== Copy SMILES of Hits ===&lt;br /&gt;
# Search for this&lt;br /&gt;
#: &amp;lt;source&amp;gt;?var $props&amp;lt;/source&amp;gt;&lt;br /&gt;
# Add this line at the end of the appends&lt;br /&gt;
#: &amp;lt;source&amp;gt;&lt;br /&gt;
                               .append(&#039;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Copy SMILES: &amp;lt;/b&amp;gt;&amp;lt;a href=&amp;quot;#&amp;quot; onclick=&amp;quot;copySmiles(\&#039;&#039; + get_smiles_parts(data.hitSmiles)[0] + &#039;\&#039;);&amp;quot; &amp;gt;&amp;lt;i class=&amp;quot;fa fa-clipboard&amp;quot; aria-hidden=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;&amp;lt;/a&amp;gt;&#039;);&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
# It should look like this&lt;br /&gt;
#: &amp;lt;source&amp;gt;&lt;br /&gt;
        var $props = $(&#039;&amp;lt;div&amp;gt;&#039;).append(&#039;&amp;lt;b&amp;gt;SWIDX:&amp;lt;/b&amp;gt; &#039; + data.anonIdx)&lt;br /&gt;
                               .append(&#039;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;MW:&amp;lt;/b&amp;gt; &#039; + data.mw)&lt;br /&gt;
                               .append(&#039;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;MF:&amp;lt;/b&amp;gt; &#039; + data.mf)&lt;br /&gt;
                               .append(&#039;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Copy SMILES: &amp;lt;/b&amp;gt;&amp;lt;a href=&amp;quot;#&amp;quot; onclick=&amp;quot;copySmiles(\&#039;&#039; + get_smiles_parts(data.hitSmiles)[0] + &#039;\&#039;);&amp;quot; &amp;gt;&amp;lt;i class=&amp;quot;fa fa-clipboard&amp;quot; aria-hidden=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;&amp;lt;/a&amp;gt;&#039;);&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
# Then add this function anywhere except inside another function&#039;s scope&lt;br /&gt;
#: &amp;lt;source&amp;gt;&lt;br /&gt;
function copySmiles(smiles) {&lt;br /&gt;
        navigator.clipboard.writeText(smiles);&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Customizing search.html ==&lt;br /&gt;
Location: /mnt/nfs/home/jjg/smallworld_build_from_source/smallworld-java-src/web/src/main/webapp/WEB-INF/static/search.html&lt;br /&gt;
&lt;br /&gt;
=== Add &#039;Ask Questions&#039; and &#039;Database Information&#039; ===&lt;br /&gt;
# vim /mnt/nfs/home/jjg/smallworld_build_from_source/smallworld-java-src/web/src/main/webapp/WEB-INF/static/search.html&lt;br /&gt;
# Search &#039;Scoring Methods&#039;&lt;br /&gt;
#: &amp;lt;source&amp;gt;?Scoring Methods&amp;lt;/source&amp;gt;&lt;br /&gt;
# At the end of that big block of &#039;div&#039;, add these:&lt;br /&gt;
#: &amp;lt;source&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;section-head&amp;quot;&amp;gt;&lt;br /&gt;
        Ask Questions&lt;br /&gt;
        &amp;lt;table class=&amp;quot;swopt searchasyoudraw&amp;quot; style=&amp;quot;width: 100%&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;th style=&amp;quot;text-align: left&amp;quot;&amp;gt;Email us: jjiteam@googlegroups.com&amp;lt;/th&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;section-head&amp;quot;&amp;gt;&lt;br /&gt;
        Database Descriptions&lt;br /&gt;
        &amp;lt;table class=&amp;quot;swopt searchasyoudraw&amp;quot; style=&amp;quot;width: 100%&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;th style=&amp;quot;text-align: left&amp;quot;&amp;gt;&lt;br /&gt;
                       &amp;lt;a href=&amp;quot;https://wiki.docking.org/index.php/Smallworld_and_Arthor_Databases#Smallworld_Databases&amp;quot; target=&amp;quot;_blank&amp;quot;&amp;gt;Database Information Link&amp;lt;/a&amp;gt;&lt;br /&gt;
                &amp;lt;/th&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
# It should look like this&lt;br /&gt;
#: &amp;lt;source&amp;gt;&lt;br /&gt;
            &amp;lt;div class=&amp;quot;section-head&amp;quot;&amp;gt;&lt;br /&gt;
                Scoring Methods&lt;br /&gt;
            &amp;lt;/div&amp;gt;&lt;br /&gt;
            &amp;lt;table id=&amp;quot;swscore&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
            &amp;lt;/table&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;section-head&amp;quot;&amp;gt;&lt;br /&gt;
                Ask Questions&lt;br /&gt;
                &amp;lt;table class=&amp;quot;swopt searchasyoudraw&amp;quot; style=&amp;quot;width: 100%&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;th style=&amp;quot;text-align: left&amp;quot;&amp;gt;Email us: jjiteam@googlegroups.com&amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/table&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;section-head&amp;quot;&amp;gt;&lt;br /&gt;
                Database Descriptions&lt;br /&gt;
                &amp;lt;table class=&amp;quot;swopt searchasyoudraw&amp;quot; style=&amp;quot;width: 100%&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;th style=&amp;quot;text-align: left&amp;quot;&amp;gt;&lt;br /&gt;
                                &amp;lt;a href=&amp;quot;https://wiki.docking.org/index.php/Smallworld_and_Arthor_Databases#Smallworld_Databases&amp;quot; target=&amp;quot;_blank&amp;quot;&amp;gt;Database Information Link&amp;lt;/a&amp;gt;&lt;br /&gt;
                        &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/table&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
=== Pre-toggle Advanced Option ===&lt;br /&gt;
# Inside the script element, add this function&lt;br /&gt;
#: &amp;lt;source&amp;gt;&lt;br /&gt;
window.onload = function() {&lt;br /&gt;
        $(&#039;#advPanel&#039;).css(&#039;display&#039;, $(this).prop(&#039;checked&#039;, true) &amp;amp;&amp;amp; &#039;block&#039;); update_visible_columns();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
# Then search for &amp;quot;update_visible_columns&amp;quot; and scroll till you find the input checkbox element&lt;br /&gt;
#:&amp;lt;source&amp;gt;?update_visible_columns&amp;lt;/source&amp;gt;&lt;br /&gt;
# In the input box element, add the checked option. Should look like this&lt;br /&gt;
#:&amp;lt;source&amp;gt;&lt;br /&gt;
&amp;lt;input name=&amp;quot;optAdv&amp;quot; type=&amp;quot;checkbox&amp;quot;&lt;br /&gt;
                           onchange=&amp;quot;$(&#039;#advPanel&#039;).css(&#039;display&#039;, $(this).prop(&#039;checked&#039;) ? &#039;block&#039; : &#039;none&#039;); update_visible_columns();&amp;quot; checked&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Change API Route to &amp;quot;/&amp;quot; ===&lt;br /&gt;
# path smallworld-java-src/web/target/sw-ws-5.6.1/WEB-INF/static/swagger/smallworld-swagger.yaml&lt;br /&gt;
&lt;br /&gt;
== Compile Code To Make WAR File ==&lt;br /&gt;
#Build WAR File&lt;br /&gt;
#: &amp;lt;source&amp;gt;&lt;br /&gt;
cd /nfs/home/jjg/smallworld_build_from_source/smallworld-java-src&lt;br /&gt;
mvn install -Pbootable&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
#If it works, then the new WAR File is located at &#039;&#039;&#039;/mnt/nfs/home/jjg/smallworld_build_from_source/smallworld-java-src/web/target/sw-ws-5.5.war&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Restarting Smallworld Instance(s) =&lt;br /&gt;
=== Old Way ===&lt;br /&gt;
# Ssh to abacus and become root&lt;br /&gt;
# execute &#039;&#039;&#039;run_sw_on_reboot.sh&#039;&#039;&#039; to show restart all instances on the machine&lt;br /&gt;
#: &amp;lt;source&amp;gt;&lt;br /&gt;
bash /root/run_arthors_on_reboot.sh&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
# execute &#039;&#039;&#039;start_smallworld&#039;&#039;&#039; to restart specific Smallworld instance. It will show you options to choose from.&lt;br /&gt;
#: &amp;lt;source&amp;gt;&lt;br /&gt;
start_smallworld&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
=== New Way ===&lt;br /&gt;
# Ssh to abacus and become root. Then run&lt;br /&gt;
#: &amp;lt;source&amp;gt;&lt;br /&gt;
systemctl &amp;lt;start|stop|restart&amp;gt; &amp;lt;sw|swp|swc|swbb|swcc&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Update Smallworld Start Script =&lt;br /&gt;
Become Root on abacus. The script that the daemon uses is located in &lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
/root/start_smallworld_service.sh&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Smallworld]]&lt;br /&gt;
[[Category:Developer]]&lt;/div&gt;</summary>
		<author><name>Jgutierrez6</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=SmallWorld_Documentation_for_Future_Developer&amp;diff=17051</id>
		<title>SmallWorld Documentation for Future Developer</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=SmallWorld_Documentation_for_Future_Developer&amp;diff=17051"/>
		<updated>2026-02-03T22:45:50Z</updated>

		<summary type="html">&lt;p&gt;Jgutierrez6: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
[https://www.nextmovesoftware.com/downloads/smallworld/documentation/SmallWorld.pdf Here is the link to Smallworld&#039;s manual]&lt;br /&gt;
* Username: ucsf@nextmovesoftware.com&lt;br /&gt;
* Password: &amp;lt;Ask jjiteam@googlegroups.com&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All smallworld databases live in abacus&#039; db3.&lt;br /&gt;
&lt;br /&gt;
Smallworld frontend files are consolidated and located at &#039;&#039;&#039;/export/db3/smallworld_extract/.extract&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Execute command &#039;&#039;&#039;start_smallworld&#039;&#039;&#039; to see options on which smallworld instance to start/restart.&lt;br /&gt;
&lt;br /&gt;
= How to Download Smallworld =&lt;br /&gt;
# Ssh to abacus and become root. Prepare directory&lt;br /&gt;
#: &amp;lt;source&amp;gt; mkdir /opt/nextmove/smallworld-&amp;lt;version&amp;gt; &amp;amp;&amp;amp; cd /opt/nextmove/smallworld-&amp;lt;version&amp;gt; &amp;lt;/source&amp;gt;&lt;br /&gt;
# [https://www.nextmovesoftware.com/downloads/smallworld/ Download Software with this link]&lt;br /&gt;
#* Username: ucsf@nextmovesoftware.com&lt;br /&gt;
#* Password: &amp;lt;Ask jjiteam@googlegroups.com&amp;gt;&lt;br /&gt;
# Go to releases. Look for &#039;&#039;&#039; smallworld-java-&amp;lt;version&amp;gt;.tar.gz &#039;&#039;&#039; and copy the link address.&lt;br /&gt;
# Download using wget&lt;br /&gt;
#: &amp;lt;source&amp;gt; wget --user ucsf@nextmovesoftware.com --password &amp;lt;Ask jjiteam@googlegroups.com&amp;gt; &amp;lt;link address&amp;gt; &amp;lt;/source&amp;gt;&lt;br /&gt;
# Decompress the file&lt;br /&gt;
#* &amp;lt;source&amp;gt; tar -xvf &amp;lt;file_name&amp;gt; &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= How to Launch Smallworld For The First Time =&lt;br /&gt;
== Prepare Files and Directories ==&lt;br /&gt;
# Ssh to abacus and become root&lt;br /&gt;
# Open a port in the firewall&lt;br /&gt;
#: &amp;lt;source&amp;gt;firewall-cmd --permanent --add-port=&amp;lt;port_number&amp;gt;/tcp &lt;br /&gt;
firewall-cmd --reload&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
# Go to smallworld databases directory&lt;br /&gt;
#: &amp;lt;source&amp;gt;cd /export/db3/&amp;lt;/source&amp;gt;&lt;br /&gt;
# Create a Smallworld directory and go to it&lt;br /&gt;
#: &amp;lt;source&amp;gt;mkdir &amp;lt;smallworld_dir&amp;gt; &amp;amp;&amp;amp; cd &amp;lt;smallworld_dir&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
# Inside that directory, create these&lt;br /&gt;
#* a symbolic link to the smallworld anon map&lt;br /&gt;
#: &amp;lt;source&amp;gt;ln -s /export/db2/smallworld_anon_21Q4 anon&amp;lt;/source&amp;gt;&lt;br /&gt;
#* a sub-directory called maps to store databases&lt;br /&gt;
#: &amp;lt;source&amp;gt;mkdir maps&amp;lt;/source&amp;gt;&lt;br /&gt;
#* a smallworld config file&lt;br /&gt;
#: &amp;lt;source&amp;gt;vim smallworld.cfg&amp;lt;/source&amp;gt;&lt;br /&gt;
#* Add this block of code inside the config file&lt;br /&gt;
#: &amp;lt;source&amp;gt;&lt;br /&gt;
[WebApp]&lt;br /&gt;
DepictionUrl=./depict/svg?w=%w&amp;amp;h=%h&amp;amp;smi=%s&amp;amp;qry=%q&amp;amp;cols=%c&amp;amp;cmap=%m&lt;br /&gt;
ResolverUrl=./util/smi2mol?smi=%s&lt;br /&gt;
SearchTimeOut=5000&lt;br /&gt;
SearchAsYouDraw=true&lt;br /&gt;
[Score]&lt;br /&gt;
Name=Atom Alignment&lt;br /&gt;
Description=Aligns and scores each hit relative to the query atom types, differences are categorised as MAJ, MIN, HYB, SUB &lt;br /&gt;
Class=com.nmsoftware.smallworld.score.SimpleAtomAlignment &lt;br /&gt;
EnabledByDefault=false&lt;br /&gt;
MappingMode=EditMap&lt;br /&gt;
[Score]&lt;br /&gt;
Name=SMARTS Alignment&lt;br /&gt;
Description=Treat input as SMARTS and align and score each hit relative to the query atom expressions in the input &lt;br /&gt;
Class=com.nmsoftware.smallworld.score.SmartsAtomAlignment &lt;br /&gt;
EnabledByDefault=false&lt;br /&gt;
[Score]&lt;br /&gt;
Name=ECFP4&lt;br /&gt;
Description=Extended Connectivity Circular Fingerprint&lt;br /&gt;
Class=com.nmsoftware.smallworld.score.EcfpTanimoto&lt;br /&gt;
Radius=2&lt;br /&gt;
EnabledByDefault=true&lt;br /&gt;
[Score]&lt;br /&gt;
Name=Daylight&lt;br /&gt;
Description=Path based fingerprint&lt;br /&gt;
Class=com.nmsoftware.smallworld.score.DaylightTanimoto&lt;br /&gt;
EnabledByDefault=true&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
#* &#039;&#039;&#039;SearchTimeOut&#039;&#039;&#039; should be the only option you&#039;ll change in the future. It caps search time to lessen strain on machine.&lt;br /&gt;
#Place any *.anon.maps you&#039;ve already compiled for testing into the maps sub-directory.&lt;br /&gt;
== Start Smallworld Instance ==&lt;br /&gt;
# Create a screen&lt;br /&gt;
#: &amp;lt;source&amp;gt;screen -S &amp;lt;screen_name&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
# Export the smallworld directory you&#039;ve made&lt;br /&gt;
#: &amp;lt;source&amp;gt;export SWDIR=/export/db5/&amp;lt;smallworld_dir&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
# Launch java&lt;br /&gt;
#: &amp;lt;source&amp;gt;java -jar -Dserver.port=9999 sw_source/smallworld-&amp;lt;version&amp;gt;/sw-ws-&amp;lt;version&amp;gt;.war&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= How to Build Smallworld Maps/Databases =&lt;br /&gt;
Consolidate smiles into &#039;&#039;&#039;/export/db3/temp_mapping&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Use the script located in that directory called &#039;&#039;&#039;smallworld_map_script&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Here is the content of the script:&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
#!/bin/csh -f&lt;br /&gt;
setenv SWDIR /export/db3/public_smallworld_4th_gen/&lt;br /&gt;
&lt;br /&gt;
alias sw &#039;time java -jar /opt/nextmove/smallworld-5.1/sw.jar&#039;&lt;br /&gt;
&lt;br /&gt;
set target = &#039;*.smi&#039;&lt;br /&gt;
&lt;br /&gt;
foreach i ($target)&lt;br /&gt;
	echo &#039;(sw map&#039; $i &#039;-T tmp/ -o &#039;${i}&#039;.anon.map -u &#039;${i}&#039;.anon.unmapped) |&amp;amp; tee &#039;${i}&#039;_log&#039;&lt;br /&gt;
	(sw map $i -T tmp/ -o ${i}.anon.map -u ${i}.anon.unmapped) |&amp;amp; tee ${i}_log&lt;br /&gt;
	echo &#039;sw blm -p 0.01 &#039;${i}&#039;.anon.map&#039;&lt;br /&gt;
	sw blm -p 0.01 ${i}.anon.map&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
== Command Details ==&lt;br /&gt;
&#039;&#039;&#039;setenv&#039;&#039;&#039; sets the environment where the anon master map is&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;java -jar /opt/nextmove/smallworld-5.1/sw.jar&#039;&#039;&#039; shortened to &#039;&#039;&#039;sw&#039;&#039;&#039; via alias&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;map&#039;&#039;&#039; will map the smiles based on the current anon master map.&lt;br /&gt;
*&#039;&#039;&#039;-T&#039;&#039;&#039; stores temp files so /tmp does not get overloaded&lt;br /&gt;
*&#039;&#039;&#039;-o&#039;&#039;&#039; output with custom name you like&lt;br /&gt;
*&#039;&#039;&#039;-u&#039;&#039;&#039; will collect the unmapped molecules to send to Nextmove or to use swextend&lt;br /&gt;
&#039;&#039;&#039;tee&#039;&#039;&#039; will log the progress of the process&lt;br /&gt;
&lt;br /&gt;
== Splitting Databases ==&lt;br /&gt;
[[http://wiki.docking.org/index.php/Creating_Maps_on_SmallWorld| Follow this page if John has asked you to split the database into smaller slices.]]&lt;br /&gt;
&lt;br /&gt;
= Active Smallworld Instances =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Caption text&lt;br /&gt;
|-&lt;br /&gt;
! Type !! URL !! Machine:Port !! Directory&lt;br /&gt;
|-&lt;br /&gt;
| Public || http://sw.docking.org/ || 10.20.0.5:5020 || /nfs/db3/public_smallworld_4th_gen&lt;br /&gt;
|-&lt;br /&gt;
| Private || http://swp.docking.org/ || 10.20.0.5:8080 || /nfs/db3/private_smallworld_4th_gen&lt;br /&gt;
|-&lt;br /&gt;
| Super Private || http://swc.docking.org/ || 10.20.0.5:5099 || /nfs/db3/super_private_smallworld_4th_gen&lt;br /&gt;
|-&lt;br /&gt;
| SWBB || http://swbb.docking.org/ || 10.20.0.5:8081 || /nfs/db3/swbb_5th_gen&lt;br /&gt;
|-&lt;br /&gt;
| SWCC || http://swcc.docking.org/ || 10.20.0.5:8082 || /nfs/db3/swcc_5th_gen&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Customize Smallworld FrontEnd To Our Needs (Smallworld 5.5) =&lt;br /&gt;
&#039;&#039;&#039;These instructions only worked and compiled for me in the machine called epyc which is running Rocky 8 Linux operating system.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Summary of changes in swsearch.js:&lt;br /&gt;
* Conditional hyperlinks attached to smallworld hits. Leads to zinc20, cartblanche22, or nothing.&lt;br /&gt;
* Adding clipboard icon to copy SMILES of hits.&lt;br /&gt;
&lt;br /&gt;
Summary of changes in search.html:&lt;br /&gt;
* Add &#039;Ask Questions&#039; and contact info&lt;br /&gt;
* Add &#039;Database Information&#039; hyperlink&lt;br /&gt;
* Pre-toggle Advanced Option&lt;br /&gt;
&lt;br /&gt;
Summary of changes in smallworld-swagger.yaml:&lt;br /&gt;
* Change API route to be just &amp;quot;/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Install Prerequisite Packages ==&lt;br /&gt;
# Install Apache Maven&lt;br /&gt;
#* &amp;lt;source&amp;gt;dnf install maven -y&amp;lt;/source&amp;gt;&lt;br /&gt;
# In your home directory, create a new directory to hold the files for the upcoming procedures&lt;br /&gt;
#* &amp;lt;source&amp;gt;mkdir /mnt/nfs/home/jjg/smallworld_build_from_source&amp;lt;/source&amp;gt;&lt;br /&gt;
# Download these latest Smallworlds and store them in &#039;smallworld_build_from_source/&#039;. [[SmallWorld_Documentation_for_Future_Developer#How_to_Download_Smallworld|Here&#039;s how to download Smallworld.]]&lt;br /&gt;
#* smallworld-java-5.5.tar.gz&lt;br /&gt;
#* smallworld-java-src-5.5.tar.gz&lt;br /&gt;
# Extract contents from the tar.gz files&lt;br /&gt;
#* &amp;lt;source&amp;gt;tar -xvf smallworld-java-5.5.tar.gz&lt;br /&gt;
tar -xvf smallworld-java-src-5.5.tar.gz&amp;lt;/source&amp;gt;&lt;br /&gt;
# Install Apache Maven Smallworld Dependencies&lt;br /&gt;
#* &amp;lt;source&amp;gt;&lt;br /&gt;
cd /mnt/nfs/home/jjg/smallworld_build_from_source/smallworld-java/lib/&lt;br /&gt;
bash mvn-install.sh&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Customizing swsearch.js ==&lt;br /&gt;
Location: /mnt/nfs/home/jjg/smallworld_build_from_source/smallworld-java-src/web/src/main/webapp/WEB-INF/static/js/swsearch.js&lt;br /&gt;
&lt;br /&gt;
=== Conditional Hyperlinks ===&lt;br /&gt;
# vim /mnt/nfs/home/jjg/smallworld_build_from_source/smallworld-java-src/web/src/main/webapp/WEB-INF/static/js/swsearch.js&lt;br /&gt;
# Search for this&lt;br /&gt;
#* &amp;lt;source&amp;gt;?div.append(&amp;quot;&amp;lt;b&amp;gt;&amp;quot; + id + &amp;quot;&amp;lt;/b&amp;gt;&amp;quot;);&amp;lt;/source&amp;gt; &lt;br /&gt;
# Replace the inside of the else statement with these lines of code&lt;br /&gt;
#* &amp;lt;source&amp;gt;&lt;br /&gt;
                if (id.substring(0,6) == &amp;quot;ZINC00&amp;quot;) {&lt;br /&gt;
                        div.append(&amp;quot;&amp;lt;b&amp;gt;&amp;lt;a target=&#039;_blank&#039; href=&#039;https://zinc20.docking.org/substances/&amp;quot;+id+&amp;quot;&#039;&amp;gt;&amp;quot; + id + &amp;quot;&amp;lt;/a&amp;gt;&amp;lt;/b&amp;gt;&amp;quot;);&lt;br /&gt;
                } else if(id.substring(0,4) == &amp;quot;ZINC&amp;quot; &amp;amp;&amp;amp; id.substring(4,6) != &amp;quot;00&amp;quot;) {&lt;br /&gt;
                        div.append(&amp;quot;&amp;lt;b&amp;gt;&amp;lt;a target=&#039;_blank&#039; href=&#039;https://cartblanche22.docking.org/substance/&amp;quot;+id+&amp;quot;&#039;&amp;gt;&amp;quot; + id + &amp;quot;&amp;lt;/a&amp;gt;&amp;lt;/b&amp;gt;&amp;quot;);&lt;br /&gt;
                } else {&lt;br /&gt;
                        div.append(&amp;quot;&amp;lt;b&amp;gt;&amp;quot; + id + &amp;quot;&amp;lt;/b&amp;gt;&amp;quot;);&lt;br /&gt;
                }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
=== Copy SMILES of Hits ===&lt;br /&gt;
# Search for this&lt;br /&gt;
#: &amp;lt;source&amp;gt;?var $props&amp;lt;/source&amp;gt;&lt;br /&gt;
# Add this line at the end of the appends&lt;br /&gt;
#: &amp;lt;source&amp;gt;&lt;br /&gt;
                               .append(&#039;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Copy SMILES: &amp;lt;/b&amp;gt;&amp;lt;a href=&amp;quot;#&amp;quot; onclick=&amp;quot;copySmiles(\&#039;&#039; + get_smiles_parts(data.hitSmiles)[0] + &#039;\&#039;);&amp;quot; &amp;gt;&amp;lt;i class=&amp;quot;fa fa-clipboard&amp;quot; aria-hidden=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;&amp;lt;/a&amp;gt;&#039;);&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
# It should look like this&lt;br /&gt;
#: &amp;lt;source&amp;gt;&lt;br /&gt;
        var $props = $(&#039;&amp;lt;div&amp;gt;&#039;).append(&#039;&amp;lt;b&amp;gt;SWIDX:&amp;lt;/b&amp;gt; &#039; + data.anonIdx)&lt;br /&gt;
                               .append(&#039;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;MW:&amp;lt;/b&amp;gt; &#039; + data.mw)&lt;br /&gt;
                               .append(&#039;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;MF:&amp;lt;/b&amp;gt; &#039; + data.mf)&lt;br /&gt;
                               .append(&#039;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Copy SMILES: &amp;lt;/b&amp;gt;&amp;lt;a href=&amp;quot;#&amp;quot; onclick=&amp;quot;copySmiles(\&#039;&#039; + get_smiles_parts(data.hitSmiles)[0] + &#039;\&#039;);&amp;quot; &amp;gt;&amp;lt;i class=&amp;quot;fa fa-clipboard&amp;quot; aria-hidden=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;&amp;lt;/a&amp;gt;&#039;);&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
# Then add this function anywhere except inside another function&#039;s scope&lt;br /&gt;
#: &amp;lt;source&amp;gt;&lt;br /&gt;
function copySmiles(smiles) {&lt;br /&gt;
        navigator.clipboard.writeText(smiles);&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Customizing search.html ==&lt;br /&gt;
Location: /mnt/nfs/home/jjg/smallworld_build_from_source/smallworld-java-src/web/src/main/webapp/WEB-INF/static/search.html&lt;br /&gt;
&lt;br /&gt;
=== Add &#039;Ask Questions&#039; and &#039;Database Information&#039; ===&lt;br /&gt;
# vim /mnt/nfs/home/jjg/smallworld_build_from_source/smallworld-java-src/web/src/main/webapp/WEB-INF/static/search.html&lt;br /&gt;
# Search &#039;Scoring Methods&#039;&lt;br /&gt;
#: &amp;lt;source&amp;gt;?Scoring Methods&amp;lt;/source&amp;gt;&lt;br /&gt;
# At the end of that big block of &#039;div&#039;, add these:&lt;br /&gt;
#: &amp;lt;source&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;section-head&amp;quot;&amp;gt;&lt;br /&gt;
        Ask Questions&lt;br /&gt;
        &amp;lt;table class=&amp;quot;swopt searchasyoudraw&amp;quot; style=&amp;quot;width: 100%&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;th style=&amp;quot;text-align: left&amp;quot;&amp;gt;Email us: jjiteam@googlegroups.com&amp;lt;/th&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;section-head&amp;quot;&amp;gt;&lt;br /&gt;
        Database Descriptions&lt;br /&gt;
        &amp;lt;table class=&amp;quot;swopt searchasyoudraw&amp;quot; style=&amp;quot;width: 100%&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;th style=&amp;quot;text-align: left&amp;quot;&amp;gt;&lt;br /&gt;
                       &amp;lt;a href=&amp;quot;https://wiki.docking.org/index.php/Smallworld_and_Arthor_Databases#Smallworld_Databases&amp;quot; target=&amp;quot;_blank&amp;quot;&amp;gt;Database Information Link&amp;lt;/a&amp;gt;&lt;br /&gt;
                &amp;lt;/th&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
# It should look like this&lt;br /&gt;
#: &amp;lt;source&amp;gt;&lt;br /&gt;
            &amp;lt;div class=&amp;quot;section-head&amp;quot;&amp;gt;&lt;br /&gt;
                Scoring Methods&lt;br /&gt;
            &amp;lt;/div&amp;gt;&lt;br /&gt;
            &amp;lt;table id=&amp;quot;swscore&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
            &amp;lt;/table&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;section-head&amp;quot;&amp;gt;&lt;br /&gt;
                Ask Questions&lt;br /&gt;
                &amp;lt;table class=&amp;quot;swopt searchasyoudraw&amp;quot; style=&amp;quot;width: 100%&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;th style=&amp;quot;text-align: left&amp;quot;&amp;gt;Email us: jjiteam@googlegroups.com&amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/table&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;section-head&amp;quot;&amp;gt;&lt;br /&gt;
                Database Descriptions&lt;br /&gt;
                &amp;lt;table class=&amp;quot;swopt searchasyoudraw&amp;quot; style=&amp;quot;width: 100%&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;th style=&amp;quot;text-align: left&amp;quot;&amp;gt;&lt;br /&gt;
                                &amp;lt;a href=&amp;quot;https://wiki.docking.org/index.php/Smallworld_and_Arthor_Databases#Smallworld_Databases&amp;quot; target=&amp;quot;_blank&amp;quot;&amp;gt;Database Information Link&amp;lt;/a&amp;gt;&lt;br /&gt;
                        &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/table&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
=== Pre-toggle Advanced Option ===&lt;br /&gt;
# Inside the script element, add this function&lt;br /&gt;
#: &amp;lt;source&amp;gt;&lt;br /&gt;
window.onload = function() {&lt;br /&gt;
        $(&#039;#advPanel&#039;).css(&#039;display&#039;, $(this).prop(&#039;checked&#039;, true) &amp;amp;&amp;amp; &#039;block&#039;); update_visible_columns();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
# Then search for &amp;quot;update_visible_columns&amp;quot; and scroll till you find the input checkbox element&lt;br /&gt;
#:&amp;lt;source&amp;gt;?update_visible_columns&amp;lt;/source&amp;gt;&lt;br /&gt;
# In the input box element, add the checked option. Should look like this&lt;br /&gt;
#:&amp;lt;source&amp;gt;&lt;br /&gt;
&amp;lt;input name=&amp;quot;optAdv&amp;quot; type=&amp;quot;checkbox&amp;quot;&lt;br /&gt;
                           onchange=&amp;quot;$(&#039;#advPanel&#039;).css(&#039;display&#039;, $(this).prop(&#039;checked&#039;) ? &#039;block&#039; : &#039;none&#039;); update_visible_columns();&amp;quot; checked&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Change API Route to &amp;quot;/&amp;quot; ===&lt;br /&gt;
# path smallworld-java-src/web/target/sw-ws-5.6.1/WEB-INF/static/swagger/smallworld-swagger.yaml&lt;br /&gt;
&lt;br /&gt;
== Compile Code To Make WAR File ==&lt;br /&gt;
#Build WAR File&lt;br /&gt;
#: &amp;lt;source&amp;gt;&lt;br /&gt;
cd /nfs/home/jjg/smallworld_build_from_source/smallworld-java-src&lt;br /&gt;
mvn install -Pbootable&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
#If it works, then the new WAR File is located at &#039;&#039;&#039;/mnt/nfs/home/jjg/smallworld_build_from_source/smallworld-java-src/web/target/sw-ws-5.5.war&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Restarting Smallworld Instance(s) =&lt;br /&gt;
=== Old Way ===&lt;br /&gt;
# Ssh to abacus and become root&lt;br /&gt;
# execute &#039;&#039;&#039;run_sw_on_reboot.sh&#039;&#039;&#039; to show restart all instances on the machine&lt;br /&gt;
#: &amp;lt;source&amp;gt;&lt;br /&gt;
bash /root/run_arthors_on_reboot.sh&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
# execute &#039;&#039;&#039;start_smallworld&#039;&#039;&#039; to restart specific Smallworld instance. It will show you options to choose from.&lt;br /&gt;
#: &amp;lt;source&amp;gt;&lt;br /&gt;
start_smallworld&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
=== New Way ===&lt;br /&gt;
# Ssh to abacus and become root. Then run&lt;br /&gt;
#: &amp;lt;source&amp;gt;&lt;br /&gt;
systemctl &amp;lt;start|stop|restart&amp;gt; &amp;lt;sw|swp|swc|swbb|swcc&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Update Smallworld Start Script =&lt;br /&gt;
Become Root on abacus. The script that the daemon uses is located in ```/root/start_smallworld_service.sh```.&lt;br /&gt;
&lt;br /&gt;
[[Category:Smallworld]]&lt;br /&gt;
[[Category:Developer]]&lt;/div&gt;</summary>
		<author><name>Jgutierrez6</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Cluster_7&amp;diff=17050</id>
		<title>Cluster 7</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Cluster_7&amp;diff=17050"/>
		<updated>2026-02-03T20:54:31Z</updated>

		<summary type="html">&lt;p&gt;Jgutierrez6: /* SLURM Nodes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
A cluster built on Rocky 9 linux distribution which is under the RHEL umbrella. &lt;br /&gt;
&lt;br /&gt;
== How to Request for Access ==&lt;br /&gt;
Contact a system administrator. &lt;br /&gt;
&lt;br /&gt;
== How to Login ==&lt;br /&gt;
#Remote&lt;br /&gt;
#: &amp;lt;source&amp;gt;ssh &amp;lt;user&amp;gt;@epsilon.compbio.ucsf.edu&amp;lt;/source&amp;gt;&lt;br /&gt;
#On-premise&lt;br /&gt;
#: &amp;lt;source&amp;gt;ssh &amp;lt;user&amp;gt;@login02.compbio.ucsf.edu&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== SLURM Nodes ==&lt;br /&gt;
*To list partitions&lt;br /&gt;
*:&amp;lt;source&amp;gt;&lt;br /&gt;
sinfo&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*To list all nodes and their information&lt;br /&gt;
*:&amp;lt;source&amp;gt;&lt;br /&gt;
sinfo -lNe&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
==== CPU Servers ====&lt;br /&gt;
*cpu02 (128 Cores, 256 Threads, 1TB RAM)&lt;br /&gt;
&lt;br /&gt;
==== GPU Servers ====&lt;br /&gt;
*gpu01 (48 Cores, 96 Threads, 758TB RAM, 8 x RTX 2080 Ti)&lt;br /&gt;
&lt;br /&gt;
==== NFS Servers ====&lt;br /&gt;
*home01&lt;br /&gt;
*hdd02&lt;br /&gt;
&lt;br /&gt;
== Global Modules/Software ==&lt;br /&gt;
*To check the list of available modules&lt;br /&gt;
*:&amp;lt;source&amp;gt;&lt;br /&gt;
/* Long version */&lt;br /&gt;
module available &lt;br /&gt;
&lt;br /&gt;
/* OR */&lt;br /&gt;
&lt;br /&gt;
/* Short version */&lt;br /&gt;
ml av &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* To load a module(s)&lt;br /&gt;
*: &amp;lt;source&amp;gt;&lt;br /&gt;
/* Single module */&lt;br /&gt;
module load dock &lt;br /&gt;
&lt;br /&gt;
/* OR */&lt;br /&gt;
&lt;br /&gt;
ml dock &lt;br /&gt;
&lt;br /&gt;
==================================&lt;br /&gt;
&lt;br /&gt;
/* Multi-module */&lt;br /&gt;
module load dock python/3.12, schrodinger&lt;br /&gt;
&lt;br /&gt;
/* OR */&lt;br /&gt;
&lt;br /&gt;
ml dock python/3.12 schrodinger&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*To list all loaded modules&lt;br /&gt;
*: &amp;lt;source&amp;gt;&lt;br /&gt;
module load&lt;br /&gt;
&lt;br /&gt;
/* OR */&lt;br /&gt;
&lt;br /&gt;
ml&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*To unload a module&lt;br /&gt;
*:&amp;lt;source&amp;gt;&lt;br /&gt;
module unload &amp;lt;module&amp;gt;&lt;br /&gt;
/* OR */&lt;br /&gt;
ml unload &amp;lt;module&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*To unload all modules&lt;br /&gt;
*:&amp;lt;source&amp;gt;&lt;br /&gt;
module purge &lt;br /&gt;
/* OR */&lt;br /&gt;
ml purge&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jgutierrez6</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Cluster_7&amp;diff=17049</id>
		<title>Cluster 7</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Cluster_7&amp;diff=17049"/>
		<updated>2026-02-03T20:53:54Z</updated>

		<summary type="html">&lt;p&gt;Jgutierrez6: /* SLURM Nodes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
A cluster built on Rocky 9 linux distribution which is under the RHEL umbrella. &lt;br /&gt;
&lt;br /&gt;
== How to Request for Access ==&lt;br /&gt;
Contact a system administrator. &lt;br /&gt;
&lt;br /&gt;
== How to Login ==&lt;br /&gt;
#Remote&lt;br /&gt;
#: &amp;lt;source&amp;gt;ssh &amp;lt;user&amp;gt;@epsilon.compbio.ucsf.edu&amp;lt;/source&amp;gt;&lt;br /&gt;
#On-premise&lt;br /&gt;
#: &amp;lt;source&amp;gt;ssh &amp;lt;user&amp;gt;@login02.compbio.ucsf.edu&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== SLURM Nodes ==&lt;br /&gt;
*To list partitions&lt;br /&gt;
*:&amp;lt;source&amp;gt;&lt;br /&gt;
sinfo&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*To list all nodes and their information&lt;br /&gt;
*:&amp;lt;source&amp;gt;&lt;br /&gt;
sinfo -lNe&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
==== CPU Servers ====&lt;br /&gt;
*cpu02 (128 Cores, 256 Threads, 1TB RAM)&lt;br /&gt;
&lt;br /&gt;
==== GPU Servers ====&lt;br /&gt;
*gpu01 (48 Cores, 96 Threads, 758TB RAM)&lt;br /&gt;
&lt;br /&gt;
==== NFS Servers ====&lt;br /&gt;
*home01&lt;br /&gt;
*hdd02&lt;br /&gt;
&lt;br /&gt;
== Global Modules/Software ==&lt;br /&gt;
*To check the list of available modules&lt;br /&gt;
*:&amp;lt;source&amp;gt;&lt;br /&gt;
/* Long version */&lt;br /&gt;
module available &lt;br /&gt;
&lt;br /&gt;
/* OR */&lt;br /&gt;
&lt;br /&gt;
/* Short version */&lt;br /&gt;
ml av &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* To load a module(s)&lt;br /&gt;
*: &amp;lt;source&amp;gt;&lt;br /&gt;
/* Single module */&lt;br /&gt;
module load dock &lt;br /&gt;
&lt;br /&gt;
/* OR */&lt;br /&gt;
&lt;br /&gt;
ml dock &lt;br /&gt;
&lt;br /&gt;
==================================&lt;br /&gt;
&lt;br /&gt;
/* Multi-module */&lt;br /&gt;
module load dock python/3.12, schrodinger&lt;br /&gt;
&lt;br /&gt;
/* OR */&lt;br /&gt;
&lt;br /&gt;
ml dock python/3.12 schrodinger&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*To list all loaded modules&lt;br /&gt;
*: &amp;lt;source&amp;gt;&lt;br /&gt;
module load&lt;br /&gt;
&lt;br /&gt;
/* OR */&lt;br /&gt;
&lt;br /&gt;
ml&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*To unload a module&lt;br /&gt;
*:&amp;lt;source&amp;gt;&lt;br /&gt;
module unload &amp;lt;module&amp;gt;&lt;br /&gt;
/* OR */&lt;br /&gt;
ml unload &amp;lt;module&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*To unload all modules&lt;br /&gt;
*:&amp;lt;source&amp;gt;&lt;br /&gt;
module purge &lt;br /&gt;
/* OR */&lt;br /&gt;
ml purge&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jgutierrez6</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Cluster_7&amp;diff=17048</id>
		<title>Cluster 7</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Cluster_7&amp;diff=17048"/>
		<updated>2026-02-03T20:42:53Z</updated>

		<summary type="html">&lt;p&gt;Jgutierrez6: /* SLURM Nodes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
A cluster built on Rocky 9 linux distribution which is under the RHEL umbrella. &lt;br /&gt;
&lt;br /&gt;
== How to Request for Access ==&lt;br /&gt;
Contact a system administrator. &lt;br /&gt;
&lt;br /&gt;
== How to Login ==&lt;br /&gt;
#Remote&lt;br /&gt;
#: &amp;lt;source&amp;gt;ssh &amp;lt;user&amp;gt;@epsilon.compbio.ucsf.edu&amp;lt;/source&amp;gt;&lt;br /&gt;
#On-premise&lt;br /&gt;
#: &amp;lt;source&amp;gt;ssh &amp;lt;user&amp;gt;@login02.compbio.ucsf.edu&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== SLURM Nodes ==&lt;br /&gt;
*To list partitions&lt;br /&gt;
*:&amp;lt;source&amp;gt;&lt;br /&gt;
sinfo&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*To list all nodes and their information&lt;br /&gt;
*:&amp;lt;source&amp;gt;&lt;br /&gt;
sinfo -lNe&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
==== CPU Servers ====&lt;br /&gt;
*cpu02&lt;br /&gt;
&lt;br /&gt;
==== GPU Servers ====&lt;br /&gt;
*gpu01&lt;br /&gt;
&lt;br /&gt;
==== NFS Servers ====&lt;br /&gt;
*home01&lt;br /&gt;
*hdd02&lt;br /&gt;
&lt;br /&gt;
== Global Modules/Software ==&lt;br /&gt;
*To check the list of available modules&lt;br /&gt;
*:&amp;lt;source&amp;gt;&lt;br /&gt;
/* Long version */&lt;br /&gt;
module available &lt;br /&gt;
&lt;br /&gt;
/* OR */&lt;br /&gt;
&lt;br /&gt;
/* Short version */&lt;br /&gt;
ml av &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* To load a module(s)&lt;br /&gt;
*: &amp;lt;source&amp;gt;&lt;br /&gt;
/* Single module */&lt;br /&gt;
module load dock &lt;br /&gt;
&lt;br /&gt;
/* OR */&lt;br /&gt;
&lt;br /&gt;
ml dock &lt;br /&gt;
&lt;br /&gt;
==================================&lt;br /&gt;
&lt;br /&gt;
/* Multi-module */&lt;br /&gt;
module load dock python/3.12, schrodinger&lt;br /&gt;
&lt;br /&gt;
/* OR */&lt;br /&gt;
&lt;br /&gt;
ml dock python/3.12 schrodinger&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*To list all loaded modules&lt;br /&gt;
*: &amp;lt;source&amp;gt;&lt;br /&gt;
module load&lt;br /&gt;
&lt;br /&gt;
/* OR */&lt;br /&gt;
&lt;br /&gt;
ml&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*To unload a module&lt;br /&gt;
*:&amp;lt;source&amp;gt;&lt;br /&gt;
module unload &amp;lt;module&amp;gt;&lt;br /&gt;
/* OR */&lt;br /&gt;
ml unload &amp;lt;module&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*To unload all modules&lt;br /&gt;
*:&amp;lt;source&amp;gt;&lt;br /&gt;
module purge &lt;br /&gt;
/* OR */&lt;br /&gt;
ml purge&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jgutierrez6</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Cluster_7&amp;diff=17047</id>
		<title>Cluster 7</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Cluster_7&amp;diff=17047"/>
		<updated>2026-02-03T20:42:35Z</updated>

		<summary type="html">&lt;p&gt;Jgutierrez6: /* SLURM Nodes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
A cluster built on Rocky 9 linux distribution which is under the RHEL umbrella. &lt;br /&gt;
&lt;br /&gt;
== How to Request for Access ==&lt;br /&gt;
Contact a system administrator. &lt;br /&gt;
&lt;br /&gt;
== How to Login ==&lt;br /&gt;
#Remote&lt;br /&gt;
#: &amp;lt;source&amp;gt;ssh &amp;lt;user&amp;gt;@epsilon.compbio.ucsf.edu&amp;lt;/source&amp;gt;&lt;br /&gt;
#On-premise&lt;br /&gt;
#: &amp;lt;source&amp;gt;ssh &amp;lt;user&amp;gt;@login02.compbio.ucsf.edu&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== SLURM Nodes ==&lt;br /&gt;
*To list partitions&lt;br /&gt;
*:&amp;lt;source&amp;gt;&lt;br /&gt;
sinfo&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*To list all nodes and their information&lt;br /&gt;
*:&amp;lt;source&amp;gt;&lt;br /&gt;
sinfo -lNe&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
==== CPU Servers ====&lt;br /&gt;
cpu02&lt;br /&gt;
&lt;br /&gt;
==== GPU Servers ====&lt;br /&gt;
gpu01&lt;br /&gt;
&lt;br /&gt;
==== NFS Servers ====&lt;br /&gt;
home01&lt;br /&gt;
hdd02&lt;br /&gt;
&lt;br /&gt;
== Global Modules/Software ==&lt;br /&gt;
*To check the list of available modules&lt;br /&gt;
*:&amp;lt;source&amp;gt;&lt;br /&gt;
/* Long version */&lt;br /&gt;
module available &lt;br /&gt;
&lt;br /&gt;
/* OR */&lt;br /&gt;
&lt;br /&gt;
/* Short version */&lt;br /&gt;
ml av &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* To load a module(s)&lt;br /&gt;
*: &amp;lt;source&amp;gt;&lt;br /&gt;
/* Single module */&lt;br /&gt;
module load dock &lt;br /&gt;
&lt;br /&gt;
/* OR */&lt;br /&gt;
&lt;br /&gt;
ml dock &lt;br /&gt;
&lt;br /&gt;
==================================&lt;br /&gt;
&lt;br /&gt;
/* Multi-module */&lt;br /&gt;
module load dock python/3.12, schrodinger&lt;br /&gt;
&lt;br /&gt;
/* OR */&lt;br /&gt;
&lt;br /&gt;
ml dock python/3.12 schrodinger&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*To list all loaded modules&lt;br /&gt;
*: &amp;lt;source&amp;gt;&lt;br /&gt;
module load&lt;br /&gt;
&lt;br /&gt;
/* OR */&lt;br /&gt;
&lt;br /&gt;
ml&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*To unload a module&lt;br /&gt;
*:&amp;lt;source&amp;gt;&lt;br /&gt;
module unload &amp;lt;module&amp;gt;&lt;br /&gt;
/* OR */&lt;br /&gt;
ml unload &amp;lt;module&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*To unload all modules&lt;br /&gt;
*:&amp;lt;source&amp;gt;&lt;br /&gt;
module purge &lt;br /&gt;
/* OR */&lt;br /&gt;
ml purge&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jgutierrez6</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Cluster_7&amp;diff=16995</id>
		<title>Cluster 7</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Cluster_7&amp;diff=16995"/>
		<updated>2025-11-17T23:37:15Z</updated>

		<summary type="html">&lt;p&gt;Jgutierrez6: /* SLURM Nodes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
A cluster built on Rocky 9 linux distribution which is under the RHEL umbrella. &lt;br /&gt;
&lt;br /&gt;
== How to Request for Access ==&lt;br /&gt;
Contact a system administrator. &lt;br /&gt;
&lt;br /&gt;
== How to Login ==&lt;br /&gt;
#Remote&lt;br /&gt;
#: &amp;lt;source&amp;gt;ssh &amp;lt;user&amp;gt;@epsilon.compbio.ucsf.edu&amp;lt;/source&amp;gt;&lt;br /&gt;
#On-premise&lt;br /&gt;
#: &amp;lt;source&amp;gt;ssh &amp;lt;user&amp;gt;@login02.compbio.ucsf.edu&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== SLURM Nodes ==&lt;br /&gt;
*To list partitions&lt;br /&gt;
*:&amp;lt;source&amp;gt;&lt;br /&gt;
sinfo&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*To list all nodes and their information&lt;br /&gt;
*:&amp;lt;source&amp;gt;&lt;br /&gt;
sinfo -lNe&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
==== CPU Servers ====&lt;br /&gt;
&lt;br /&gt;
==== GPU Servers ====&lt;br /&gt;
gpu01&lt;br /&gt;
&lt;br /&gt;
== Global Modules/Software ==&lt;br /&gt;
*To check the list of available modules&lt;br /&gt;
*:&amp;lt;source&amp;gt;&lt;br /&gt;
/* Long version */&lt;br /&gt;
module available &lt;br /&gt;
&lt;br /&gt;
/* OR */&lt;br /&gt;
&lt;br /&gt;
/* Short version */&lt;br /&gt;
ml av &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* To load a module(s)&lt;br /&gt;
*: &amp;lt;source&amp;gt;&lt;br /&gt;
/* Single module */&lt;br /&gt;
module load dock &lt;br /&gt;
&lt;br /&gt;
/* OR */&lt;br /&gt;
&lt;br /&gt;
ml dock &lt;br /&gt;
&lt;br /&gt;
==================================&lt;br /&gt;
&lt;br /&gt;
/* Multi-module */&lt;br /&gt;
module load dock python/3.12, schrodinger&lt;br /&gt;
&lt;br /&gt;
/* OR */&lt;br /&gt;
&lt;br /&gt;
ml dock python/3.12 schrodinger&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*To list all loaded modules&lt;br /&gt;
*: &amp;lt;source&amp;gt;&lt;br /&gt;
module load&lt;br /&gt;
&lt;br /&gt;
/* OR */&lt;br /&gt;
&lt;br /&gt;
ml&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*To unload a module&lt;br /&gt;
*:&amp;lt;source&amp;gt;&lt;br /&gt;
module unload &amp;lt;module&amp;gt;&lt;br /&gt;
/* OR */&lt;br /&gt;
ml unload &amp;lt;module&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*To unload all modules&lt;br /&gt;
*:&amp;lt;source&amp;gt;&lt;br /&gt;
module purge &lt;br /&gt;
/* OR */&lt;br /&gt;
ml purge&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jgutierrez6</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Cluster_7&amp;diff=16994</id>
		<title>Cluster 7</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Cluster_7&amp;diff=16994"/>
		<updated>2025-11-17T23:36:54Z</updated>

		<summary type="html">&lt;p&gt;Jgutierrez6: /* SLURM Nodes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
A cluster built on Rocky 9 linux distribution which is under the RHEL umbrella. &lt;br /&gt;
&lt;br /&gt;
== How to Request for Access ==&lt;br /&gt;
Contact a system administrator. &lt;br /&gt;
&lt;br /&gt;
== How to Login ==&lt;br /&gt;
#Remote&lt;br /&gt;
#: &amp;lt;source&amp;gt;ssh &amp;lt;user&amp;gt;@epsilon.compbio.ucsf.edu&amp;lt;/source&amp;gt;&lt;br /&gt;
#On-premise&lt;br /&gt;
#: &amp;lt;source&amp;gt;ssh &amp;lt;user&amp;gt;@login02.compbio.ucsf.edu&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== SLURM Nodes ==&lt;br /&gt;
*To list partitions&lt;br /&gt;
*:&amp;lt;source&amp;gt;&lt;br /&gt;
sinfo&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*To list all nodes and their information&lt;br /&gt;
*:&amp;lt;source&amp;gt;&lt;br /&gt;
sinfo -lNe&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
==== CPUs ====&lt;br /&gt;
&lt;br /&gt;
==== GPUs ====&lt;br /&gt;
gpu01&lt;br /&gt;
&lt;br /&gt;
== Global Modules/Software ==&lt;br /&gt;
*To check the list of available modules&lt;br /&gt;
*:&amp;lt;source&amp;gt;&lt;br /&gt;
/* Long version */&lt;br /&gt;
module available &lt;br /&gt;
&lt;br /&gt;
/* OR */&lt;br /&gt;
&lt;br /&gt;
/* Short version */&lt;br /&gt;
ml av &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* To load a module(s)&lt;br /&gt;
*: &amp;lt;source&amp;gt;&lt;br /&gt;
/* Single module */&lt;br /&gt;
module load dock &lt;br /&gt;
&lt;br /&gt;
/* OR */&lt;br /&gt;
&lt;br /&gt;
ml dock &lt;br /&gt;
&lt;br /&gt;
==================================&lt;br /&gt;
&lt;br /&gt;
/* Multi-module */&lt;br /&gt;
module load dock python/3.12, schrodinger&lt;br /&gt;
&lt;br /&gt;
/* OR */&lt;br /&gt;
&lt;br /&gt;
ml dock python/3.12 schrodinger&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*To list all loaded modules&lt;br /&gt;
*: &amp;lt;source&amp;gt;&lt;br /&gt;
module load&lt;br /&gt;
&lt;br /&gt;
/* OR */&lt;br /&gt;
&lt;br /&gt;
ml&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*To unload a module&lt;br /&gt;
*:&amp;lt;source&amp;gt;&lt;br /&gt;
module unload &amp;lt;module&amp;gt;&lt;br /&gt;
/* OR */&lt;br /&gt;
ml unload &amp;lt;module&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*To unload all modules&lt;br /&gt;
*:&amp;lt;source&amp;gt;&lt;br /&gt;
module purge &lt;br /&gt;
/* OR */&lt;br /&gt;
ml purge&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jgutierrez6</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Cluster_7&amp;diff=16993</id>
		<title>Cluster 7</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Cluster_7&amp;diff=16993"/>
		<updated>2025-11-17T23:35:27Z</updated>

		<summary type="html">&lt;p&gt;Jgutierrez6: /* Global Modules */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
A cluster built on Rocky 9 linux distribution which is under the RHEL umbrella. &lt;br /&gt;
&lt;br /&gt;
== How to Request for Access ==&lt;br /&gt;
Contact a system administrator. &lt;br /&gt;
&lt;br /&gt;
== How to Login ==&lt;br /&gt;
#Remote&lt;br /&gt;
#: &amp;lt;source&amp;gt;ssh &amp;lt;user&amp;gt;@epsilon.compbio.ucsf.edu&amp;lt;/source&amp;gt;&lt;br /&gt;
#On-premise&lt;br /&gt;
#: &amp;lt;source&amp;gt;ssh &amp;lt;user&amp;gt;@login02.compbio.ucsf.edu&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== SLURM Nodes ==&lt;br /&gt;
*To list partitions&lt;br /&gt;
*:&amp;lt;source&amp;gt;&lt;br /&gt;
sinfo&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*To list all nodes and their information&lt;br /&gt;
*:&amp;lt;source&amp;gt;&lt;br /&gt;
sinfo -lNe&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
==== CPU ====&lt;br /&gt;
&lt;br /&gt;
==== GPU ====&lt;br /&gt;
gpu01&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Global Modules/Software ==&lt;br /&gt;
*To check the list of available modules&lt;br /&gt;
*:&amp;lt;source&amp;gt;&lt;br /&gt;
/* Long version */&lt;br /&gt;
module available &lt;br /&gt;
&lt;br /&gt;
/* OR */&lt;br /&gt;
&lt;br /&gt;
/* Short version */&lt;br /&gt;
ml av &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* To load a module(s)&lt;br /&gt;
*: &amp;lt;source&amp;gt;&lt;br /&gt;
/* Single module */&lt;br /&gt;
module load dock &lt;br /&gt;
&lt;br /&gt;
/* OR */&lt;br /&gt;
&lt;br /&gt;
ml dock &lt;br /&gt;
&lt;br /&gt;
==================================&lt;br /&gt;
&lt;br /&gt;
/* Multi-module */&lt;br /&gt;
module load dock python/3.12, schrodinger&lt;br /&gt;
&lt;br /&gt;
/* OR */&lt;br /&gt;
&lt;br /&gt;
ml dock python/3.12 schrodinger&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*To list all loaded modules&lt;br /&gt;
*: &amp;lt;source&amp;gt;&lt;br /&gt;
module load&lt;br /&gt;
&lt;br /&gt;
/* OR */&lt;br /&gt;
&lt;br /&gt;
ml&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*To unload a module&lt;br /&gt;
*:&amp;lt;source&amp;gt;&lt;br /&gt;
module unload &amp;lt;module&amp;gt;&lt;br /&gt;
/* OR */&lt;br /&gt;
ml unload &amp;lt;module&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*To unload all modules&lt;br /&gt;
*:&amp;lt;source&amp;gt;&lt;br /&gt;
module purge &lt;br /&gt;
/* OR */&lt;br /&gt;
ml purge&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jgutierrez6</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Cluster_7&amp;diff=16992</id>
		<title>Cluster 7</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Cluster_7&amp;diff=16992"/>
		<updated>2025-11-17T23:35:02Z</updated>

		<summary type="html">&lt;p&gt;Jgutierrez6: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
A cluster built on Rocky 9 linux distribution which is under the RHEL umbrella. &lt;br /&gt;
&lt;br /&gt;
== How to Request for Access ==&lt;br /&gt;
Contact a system administrator. &lt;br /&gt;
&lt;br /&gt;
== How to Login ==&lt;br /&gt;
#Remote&lt;br /&gt;
#: &amp;lt;source&amp;gt;ssh &amp;lt;user&amp;gt;@epsilon.compbio.ucsf.edu&amp;lt;/source&amp;gt;&lt;br /&gt;
#On-premise&lt;br /&gt;
#: &amp;lt;source&amp;gt;ssh &amp;lt;user&amp;gt;@login02.compbio.ucsf.edu&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== SLURM Nodes ==&lt;br /&gt;
*To list partitions&lt;br /&gt;
*:&amp;lt;source&amp;gt;&lt;br /&gt;
sinfo&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*To list all nodes and their information&lt;br /&gt;
*:&amp;lt;source&amp;gt;&lt;br /&gt;
sinfo -lNe&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
==== CPU ====&lt;br /&gt;
&lt;br /&gt;
==== GPU ====&lt;br /&gt;
gpu01&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Global Modules ==&lt;br /&gt;
*To check the list of available modules&lt;br /&gt;
*:&amp;lt;source&amp;gt;&lt;br /&gt;
/* Long version */&lt;br /&gt;
module available &lt;br /&gt;
&lt;br /&gt;
/* OR */&lt;br /&gt;
&lt;br /&gt;
/* Short version */&lt;br /&gt;
ml av &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* To load a module(s)&lt;br /&gt;
*: &amp;lt;source&amp;gt;&lt;br /&gt;
/* Single module */&lt;br /&gt;
module load dock &lt;br /&gt;
&lt;br /&gt;
/* OR */&lt;br /&gt;
&lt;br /&gt;
ml dock &lt;br /&gt;
&lt;br /&gt;
==================================&lt;br /&gt;
&lt;br /&gt;
/* Multi-module */&lt;br /&gt;
module load dock python/3.12, schrodinger&lt;br /&gt;
&lt;br /&gt;
/* OR */&lt;br /&gt;
&lt;br /&gt;
ml dock python/3.12 schrodinger&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*To list all loaded modules&lt;br /&gt;
*: &amp;lt;source&amp;gt;&lt;br /&gt;
module load&lt;br /&gt;
&lt;br /&gt;
/* OR */&lt;br /&gt;
&lt;br /&gt;
ml&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*To unload a module&lt;br /&gt;
*:&amp;lt;source&amp;gt;&lt;br /&gt;
module unload &amp;lt;module&amp;gt;&lt;br /&gt;
/* OR */&lt;br /&gt;
ml unload &amp;lt;module&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*To unload all modules&lt;br /&gt;
*:&amp;lt;source&amp;gt;&lt;br /&gt;
module purge &lt;br /&gt;
/* OR */&lt;br /&gt;
ml purge&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jgutierrez6</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Cluster_7&amp;diff=16991</id>
		<title>Cluster 7</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Cluster_7&amp;diff=16991"/>
		<updated>2025-11-17T23:33:17Z</updated>

		<summary type="html">&lt;p&gt;Jgutierrez6: /* Global Modules */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
A cluster built on Rocky 9 linux distribution which is under the RHEL umbrella. &lt;br /&gt;
&lt;br /&gt;
== How to Request for Access ==&lt;br /&gt;
Contact a system administrator. &lt;br /&gt;
&lt;br /&gt;
== How to Login ==&lt;br /&gt;
#Remote&lt;br /&gt;
#: &amp;lt;source&amp;gt;ssh &amp;lt;user&amp;gt;@epsilon.compbio.ucsf.edu&amp;lt;/source&amp;gt;&lt;br /&gt;
#On-premise&lt;br /&gt;
#: &amp;lt;source&amp;gt;ssh &amp;lt;user&amp;gt;@login02.compbio.ucsf.edu&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== SLURM Nodes ==&lt;br /&gt;
==== CPU ====&lt;br /&gt;
&lt;br /&gt;
==== GPU ====&lt;br /&gt;
gpu01&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Global Modules ==&lt;br /&gt;
*To check the list of available modules&lt;br /&gt;
*:&amp;lt;source&amp;gt;&lt;br /&gt;
/* Long version */&lt;br /&gt;
module available &lt;br /&gt;
&lt;br /&gt;
/* OR */&lt;br /&gt;
&lt;br /&gt;
/* Short version */&lt;br /&gt;
ml av &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* To load a module(s)&lt;br /&gt;
*: &amp;lt;source&amp;gt;&lt;br /&gt;
/* Single module */&lt;br /&gt;
module load dock &lt;br /&gt;
&lt;br /&gt;
/* OR */&lt;br /&gt;
&lt;br /&gt;
ml dock &lt;br /&gt;
&lt;br /&gt;
==================================&lt;br /&gt;
&lt;br /&gt;
/* Multi-module */&lt;br /&gt;
module load dock python/3.12, schrodinger&lt;br /&gt;
&lt;br /&gt;
/* OR */&lt;br /&gt;
&lt;br /&gt;
ml dock python/3.12 schrodinger&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*To list all loaded modules&lt;br /&gt;
*: &amp;lt;source&amp;gt;&lt;br /&gt;
module load&lt;br /&gt;
&lt;br /&gt;
/* OR */&lt;br /&gt;
&lt;br /&gt;
ml&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*To unload a module&lt;br /&gt;
*:&amp;lt;source&amp;gt;&lt;br /&gt;
module unload &amp;lt;module&amp;gt;&lt;br /&gt;
/* OR */&lt;br /&gt;
ml unload &amp;lt;module&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*To unload all modules&lt;br /&gt;
*:&amp;lt;source&amp;gt;&lt;br /&gt;
module purge &lt;br /&gt;
/* OR */&lt;br /&gt;
ml purge&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jgutierrez6</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Cluster_7&amp;diff=16990</id>
		<title>Cluster 7</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Cluster_7&amp;diff=16990"/>
		<updated>2025-11-17T23:25:00Z</updated>

		<summary type="html">&lt;p&gt;Jgutierrez6: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
A cluster built on Rocky 9 linux distribution which is under the RHEL umbrella. &lt;br /&gt;
&lt;br /&gt;
== How to Request for Access ==&lt;br /&gt;
Contact a system administrator. &lt;br /&gt;
&lt;br /&gt;
== How to Login ==&lt;br /&gt;
#Remote&lt;br /&gt;
#: &amp;lt;source&amp;gt;ssh &amp;lt;user&amp;gt;@epsilon.compbio.ucsf.edu&amp;lt;/source&amp;gt;&lt;br /&gt;
#On-premise&lt;br /&gt;
#: &amp;lt;source&amp;gt;ssh &amp;lt;user&amp;gt;@login02.compbio.ucsf.edu&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== SLURM Nodes ==&lt;br /&gt;
==== CPU ====&lt;br /&gt;
&lt;br /&gt;
==== GPU ====&lt;br /&gt;
gpu01&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Global Modules ==&lt;br /&gt;
*To check the list of available modules&lt;br /&gt;
*:&amp;lt;source&amp;gt;// Long version&lt;br /&gt;
module available &lt;br /&gt;
&lt;br /&gt;
/* OR */&lt;br /&gt;
&lt;br /&gt;
// Short version&lt;br /&gt;
ml av &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* To load a module(s)&lt;br /&gt;
*: &amp;lt;source&amp;gt;// Single module&lt;br /&gt;
module load dock &lt;br /&gt;
&lt;br /&gt;
/* OR */&lt;br /&gt;
&lt;br /&gt;
ml dock &lt;br /&gt;
&lt;br /&gt;
==================================&lt;br /&gt;
&lt;br /&gt;
// Multi-module&lt;br /&gt;
module load dock python schrodinger&lt;br /&gt;
&lt;br /&gt;
/* OR */&lt;br /&gt;
&lt;br /&gt;
// Multi-module&lt;br /&gt;
ml dock python schrodinger&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
*To List all loaded modules&lt;br /&gt;
*: &amp;lt;source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jgutierrez6</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Cluster_7&amp;diff=16989</id>
		<title>Cluster 7</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Cluster_7&amp;diff=16989"/>
		<updated>2025-11-17T23:23:35Z</updated>

		<summary type="html">&lt;p&gt;Jgutierrez6: /* Global Modules */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
A cluster built on Rocky 9 linux distribution which is under the RHEL umbrella. &lt;br /&gt;
&lt;br /&gt;
== How to Request for Access ==&lt;br /&gt;
Contact a system administrator. &lt;br /&gt;
&lt;br /&gt;
== How to Login ==&lt;br /&gt;
#Remote&lt;br /&gt;
#: &amp;lt;source&amp;gt;ssh &amp;lt;user&amp;gt;@epsilon.compbio.ucsf.edu&amp;lt;/source&amp;gt;&lt;br /&gt;
#On-premise&lt;br /&gt;
#: &amp;lt;source&amp;gt;ssh &amp;lt;user&amp;gt;@login02.compbio.ucsf.edu&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== SLURM Nodes ==&lt;br /&gt;
==== CPU ====&lt;br /&gt;
&lt;br /&gt;
==== GPU ====&lt;br /&gt;
gpu01&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Global Modules ==&lt;br /&gt;
*To check the list of available modules&lt;br /&gt;
*:&amp;lt;source&amp;gt;// Long version&lt;br /&gt;
module available &lt;br /&gt;
&lt;br /&gt;
/* OR */&lt;br /&gt;
&lt;br /&gt;
// Short version&lt;br /&gt;
ml av &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* To load a module(s)&lt;br /&gt;
*: &amp;lt;source&amp;gt;// Single module, Long version&lt;br /&gt;
module load dock &lt;br /&gt;
&lt;br /&gt;
/* OR */&lt;br /&gt;
&lt;br /&gt;
// Single module, Short version&lt;br /&gt;
ml dock &lt;br /&gt;
&lt;br /&gt;
==================================&lt;br /&gt;
&lt;br /&gt;
// Multi-module, Long version&lt;br /&gt;
module load dock python schrodinger&lt;br /&gt;
&lt;br /&gt;
/* OR */&lt;br /&gt;
&lt;br /&gt;
// Multi-module, Short version&lt;br /&gt;
ml dock python schrodinger&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jgutierrez6</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Cluster_7&amp;diff=16988</id>
		<title>Cluster 7</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Cluster_7&amp;diff=16988"/>
		<updated>2025-11-17T23:23:20Z</updated>

		<summary type="html">&lt;p&gt;Jgutierrez6: /* Global Modules */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
A cluster built on Rocky 9 linux distribution which is under the RHEL umbrella. &lt;br /&gt;
&lt;br /&gt;
== How to Request for Access ==&lt;br /&gt;
Contact a system administrator. &lt;br /&gt;
&lt;br /&gt;
== How to Login ==&lt;br /&gt;
#Remote&lt;br /&gt;
#: &amp;lt;source&amp;gt;ssh &amp;lt;user&amp;gt;@epsilon.compbio.ucsf.edu&amp;lt;/source&amp;gt;&lt;br /&gt;
#On-premise&lt;br /&gt;
#: &amp;lt;source&amp;gt;ssh &amp;lt;user&amp;gt;@login02.compbio.ucsf.edu&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== SLURM Nodes ==&lt;br /&gt;
==== CPU ====&lt;br /&gt;
&lt;br /&gt;
==== GPU ====&lt;br /&gt;
gpu01&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Global Modules ==&lt;br /&gt;
*To check the list of available modules&lt;br /&gt;
*:&amp;lt;source&amp;gt;// Long version&lt;br /&gt;
module available &lt;br /&gt;
&lt;br /&gt;
/* OR */&lt;br /&gt;
&lt;br /&gt;
// Short version&lt;br /&gt;
ml av &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* To load a module(s)&lt;br /&gt;
*: &amp;lt;source&amp;gt;// Single module, Long version&lt;br /&gt;
module load dock &lt;br /&gt;
&lt;br /&gt;
/* OR */&lt;br /&gt;
&lt;br /&gt;
// Single module, Short version&lt;br /&gt;
ml dock &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==================================&lt;br /&gt;
// Multi-module, Long version&lt;br /&gt;
module load dock python schrodinger&lt;br /&gt;
&lt;br /&gt;
/* OR */&lt;br /&gt;
&lt;br /&gt;
// Multi-module, Short version&lt;br /&gt;
ml dock python schrodinger&lt;/div&gt;</summary>
		<author><name>Jgutierrez6</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Cluster_7&amp;diff=16987</id>
		<title>Cluster 7</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Cluster_7&amp;diff=16987"/>
		<updated>2025-11-17T23:21:25Z</updated>

		<summary type="html">&lt;p&gt;Jgutierrez6: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
A cluster built on Rocky 9 linux distribution which is under the RHEL umbrella. &lt;br /&gt;
&lt;br /&gt;
== How to Request for Access ==&lt;br /&gt;
Contact a system administrator. &lt;br /&gt;
&lt;br /&gt;
== How to Login ==&lt;br /&gt;
#Remote&lt;br /&gt;
#: &amp;lt;source&amp;gt;ssh &amp;lt;user&amp;gt;@epsilon.compbio.ucsf.edu&amp;lt;/source&amp;gt;&lt;br /&gt;
#On-premise&lt;br /&gt;
#: &amp;lt;source&amp;gt;ssh &amp;lt;user&amp;gt;@login02.compbio.ucsf.edu&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== SLURM Nodes ==&lt;br /&gt;
==== CPU ====&lt;br /&gt;
&lt;br /&gt;
==== GPU ====&lt;br /&gt;
gpu01&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Global Modules ==&lt;br /&gt;
*To check the list of available modules&lt;br /&gt;
*:&amp;lt;source&amp;gt;// Long version&lt;br /&gt;
module available &lt;br /&gt;
&lt;br /&gt;
/* OR */&lt;br /&gt;
&lt;br /&gt;
// Short version&lt;br /&gt;
ml av &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* To load a module&lt;br /&gt;
*: &amp;lt;source&amp;gt;// Long version&lt;br /&gt;
module load dock &lt;br /&gt;
&lt;br /&gt;
/* OR */&lt;br /&gt;
&lt;br /&gt;
//Short version&lt;br /&gt;
ml dock &amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jgutierrez6</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Cluster_7&amp;diff=16986</id>
		<title>Cluster 7</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Cluster_7&amp;diff=16986"/>
		<updated>2025-11-17T23:14:38Z</updated>

		<summary type="html">&lt;p&gt;Jgutierrez6: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
A cluster built on Rocky 9 linux distribution which is under the RHEL umbrella. &lt;br /&gt;
&lt;br /&gt;
== How to Request for Access ==&lt;br /&gt;
Contact a system administrator. &lt;br /&gt;
&lt;br /&gt;
== How to Login ==&lt;br /&gt;
#Remote&lt;br /&gt;
#: &amp;lt;source&amp;gt;ssh &amp;lt;user&amp;gt;@epsilon.compbio.ucsf.edu&amp;lt;/source&amp;gt;&lt;br /&gt;
#On-premise&lt;br /&gt;
#: &amp;lt;source&amp;gt;ssh &amp;lt;user&amp;gt;@login02.compbio.ucsf.edu&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== SLURM Nodes ==&lt;br /&gt;
==== CPU ====&lt;br /&gt;
&lt;br /&gt;
==== GPU ====&lt;br /&gt;
gpu01&lt;/div&gt;</summary>
		<author><name>Jgutierrez6</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Cluster_7&amp;diff=16985</id>
		<title>Cluster 7</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Cluster_7&amp;diff=16985"/>
		<updated>2025-11-17T23:01:54Z</updated>

		<summary type="html">&lt;p&gt;Jgutierrez6: Created page with &amp;quot;== Introduction == A cluster built on Rocky 9 linux distribution which is under the RHEL umbrella.   == How to Request for Access == Contact a system administrator.   == How to Login == #Remote #: &amp;lt;source&amp;gt;ssh &amp;lt;user&amp;gt;@epsilon.compbio.ucsf.edu&amp;lt;/source&amp;gt; #On-premise #: &amp;lt;source&amp;gt;ssh &amp;lt;user&amp;gt;@login02.compbio.ucsf.edu&amp;lt;/source&amp;gt;&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
A cluster built on Rocky 9 linux distribution which is under the RHEL umbrella. &lt;br /&gt;
&lt;br /&gt;
== How to Request for Access ==&lt;br /&gt;
Contact a system administrator. &lt;br /&gt;
&lt;br /&gt;
== How to Login ==&lt;br /&gt;
#Remote&lt;br /&gt;
#: &amp;lt;source&amp;gt;ssh &amp;lt;user&amp;gt;@epsilon.compbio.ucsf.edu&amp;lt;/source&amp;gt;&lt;br /&gt;
#On-premise&lt;br /&gt;
#: &amp;lt;source&amp;gt;ssh &amp;lt;user&amp;gt;@login02.compbio.ucsf.edu&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jgutierrez6</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=How_to_Relay_Emails_to_Gmail&amp;diff=16969</id>
		<title>How to Relay Emails to Gmail</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=How_to_Relay_Emails_to_Gmail&amp;diff=16969"/>
		<updated>2025-10-21T20:13:51Z</updated>

		<summary type="html">&lt;p&gt;Jgutierrez6: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
This tutorial applies to RHEL 8 based operating systems (CentOS, Rocky Linux)&lt;br /&gt;
&lt;br /&gt;
Two machines that send emails are:&lt;br /&gt;
*vav.combpio.ucsf.edu&lt;br /&gt;
*bksmailman.compbio.ucsf.edu&lt;br /&gt;
*epyc&lt;br /&gt;
*epyc2&lt;br /&gt;
&lt;br /&gt;
Relaying emails through gmail will make it more secure and trustworthy.&lt;br /&gt;
&lt;br /&gt;
== Instructions ==&lt;br /&gt;
&#039;&#039;&#039;[https://www.golinuxcloud.com/gmail-smtp-relay-server-postfix/#Error-1_SASL_authentication_failure_No_worthy_mechs_found Reference Tutorial]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Create a gmail account OR Ask Khanh for docking.email@gmail.com for credentials.&lt;br /&gt;
# Disable pre-installed &#039;sendmail&#039; package&lt;br /&gt;
#* &amp;lt;source&amp;gt;&lt;br /&gt;
rpm -q sendmail (Check for package)&lt;br /&gt;
systemctl disbale sendmail --now (Disable package)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
# Enable smtp in firewall&lt;br /&gt;
#* &amp;lt;source&amp;gt;&lt;br /&gt;
firewall-cmd --permanent --add-service=smtp&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
# Install Postfix and other dependencies&lt;br /&gt;
#* &amp;lt;source&amp;gt;&lt;br /&gt;
yum install postfix mailx cyrus-sasl cyrus-sasl-plain -y&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
# Configure Postfix&lt;br /&gt;
#* &amp;lt;source&amp;gt;&lt;br /&gt;
vim /etc/postfix/main.cf&lt;br /&gt;
&lt;br /&gt;
//Copy these lines and paste it at the bottom of the main.cf file&lt;br /&gt;
relayhost = [smtp.gmail.com]:587&lt;br /&gt;
smtp_use_tls = yes&lt;br /&gt;
smtp_sasl_auth_enable = yes&lt;br /&gt;
smtp_sasl_security_options = noanonymous&lt;br /&gt;
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd&lt;br /&gt;
smtp_tls_security_level = encrypt&lt;br /&gt;
smtp_tls_CAfile = /etc/ssl/certs/ca-bundle.crt&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
# Set up authentication file for gmail&lt;br /&gt;
#* &amp;lt;source&amp;gt;&lt;br /&gt;
vim /etc/postfix/sasl_passwd&lt;br /&gt;
&lt;br /&gt;
//Paste this line and replace&lt;br /&gt;
[smtp.gmail.com]:587 docking.email@gmail.com:&amp;lt;gmail_app_password&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
# Create Gmail App Password For Authentication&lt;br /&gt;
#* Log in to gmail account&lt;br /&gt;
#* Click top right account button&lt;br /&gt;
#* Click &#039;Manage Google Account&#039;&lt;br /&gt;
#* On the left, click the &#039;Security&#039; tab&lt;br /&gt;
#* Enable &#039;2-step Verification&#039;&lt;br /&gt;
#* Now back to security tab and click &#039;App Passwords&#039;&lt;br /&gt;
#* Generate App Password&lt;br /&gt;
#* Click &#039;Other&#039; for the category input&lt;br /&gt;
#* Copy the generated token and save somewhere&lt;br /&gt;
# Once you have token, replace &amp;lt;gmail_app_password&amp;gt; in sasl_passwd file with the token and save the file&lt;br /&gt;
# Update the password database&lt;br /&gt;
#* &amp;lt;source&amp;gt;&lt;br /&gt;
postmap /etc/postfix/sasl_passwd&lt;br /&gt;
chown root:root /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db&lt;br /&gt;
chmod 0600 /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db&lt;br /&gt;
systemctl restart postfix.service&lt;br /&gt;
systemctl status postfix&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
# Verify that it works&lt;br /&gt;
#* &amp;lt;source&amp;gt;&lt;br /&gt;
echo &amp;quot;This is the body of the email&amp;quot; | mail -s &amp;quot;This is the subject line&amp;quot; &amp;lt;your_email&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
# If it works you&#039;re done. If it doesn&#039;t check the reference tutorial for troubleshooting.&lt;/div&gt;</summary>
		<author><name>Jgutierrez6</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Globus_Curator%27s_Guide&amp;diff=16935</id>
		<title>Globus Curator&#039;s Guide</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Globus_Curator%27s_Guide&amp;diff=16935"/>
		<updated>2025-10-02T20:34:53Z</updated>

		<summary type="html">&lt;p&gt;Jgutierrez6: /* Modify Guest Collection Read and Write Permissions in Globus Website */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Here will be the instructions on how to maintain globus.&lt;br /&gt;
&lt;br /&gt;
=== Notes ===&lt;br /&gt;
*For any restrict path&#039;s to work in the Guest Collections, the main collection needs to have either the same or broader path to be allowed.&lt;br /&gt;
*The main collection is currently private. Only the admins can have access to it.&lt;br /&gt;
&lt;br /&gt;
== Updating Path Permissions for the Guest Collection ==&lt;br /&gt;
#Identify the real paths of the permission denied paths. Globus doesn&#039;t follow symbolic links&lt;br /&gt;
#:&amp;lt;source&amp;gt;readlink -f &amp;lt;symlink&amp;gt; &amp;lt;/source&amp;gt;&lt;br /&gt;
# Become root in epyc&lt;br /&gt;
##Go to /root/globus&lt;br /&gt;
#:&amp;lt;source&amp;gt;cd /root/globus&amp;lt;/source&amp;gt;&lt;br /&gt;
#Insert and save the real paths at the end of this file (check commas for syntax or you&#039;ll get an error):&lt;br /&gt;
#:&amp;lt;source&amp;gt;vim storage_gateway_path_restriction.json&amp;lt;/source&amp;gt;&lt;br /&gt;
##Here is an example of what it should look like&lt;br /&gt;
##:&amp;lt;source&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;DATA_TYPE&amp;quot;: &amp;quot;path_restrictions#1.0.0&amp;quot;,&lt;br /&gt;
    &amp;quot;none&amp;quot;: [&amp;quot;/&amp;quot;],&lt;br /&gt;
    &amp;quot;read&amp;quot;: [&lt;br /&gt;
	    &amp;quot;/nfs/ex3/published&amp;quot;,&lt;br /&gt;
	    &amp;quot;/nfs/exe/work/jji/2dexport&amp;quot;,&lt;br /&gt;
	    &amp;quot;/nfs/exe/work/jji/3d-zinc20&amp;quot;,&lt;br /&gt;
	    &amp;quot;/nfs/exl/zinc-22a&amp;quot;,&lt;br /&gt;
	    &amp;quot;/nfs/exl/zinc-22b&amp;quot;,&lt;br /&gt;
	    &amp;quot;/nfs/exl/zinc-22c&amp;quot;,&lt;br /&gt;
	    &amp;quot;/nfs/exc/zinc-22n&amp;quot;&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;read_write&amp;quot;:[&lt;br /&gt;
	    &amp;quot;/nfs/mammoth/idg-images/newAmisData&amp;quot;&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
#Create a session token with globus. (Cluster 2 Password, ucsfbks)&lt;br /&gt;
#:&amp;lt;source&amp;gt;globus-connect-server session update ucsfbks@globusid.org&amp;lt;/source&amp;gt;&lt;br /&gt;
#Follow instructions given by globus and it should tell you that it was successful&lt;br /&gt;
#In the same directory, run this command to update&lt;br /&gt;
#:&amp;lt;source&amp;gt;bash globus-storage-gateway.sh update&amp;lt;/source&amp;gt;&lt;br /&gt;
#This is the successful message&lt;br /&gt;
#:&amp;lt;source&amp;gt;Message: Updated Storage Gateway aa731fb1-b27a-49e6-aaeb-2d2cc252f779&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Updating Path Permissions for the Main Collection ==&lt;br /&gt;
#Identify the real paths of the permission denied paths. Globus doesn&#039;t follow symbolic links&lt;br /&gt;
#:&amp;lt;source&amp;gt;readlink -f &amp;lt;symlink&amp;gt; &amp;lt;/source&amp;gt;&lt;br /&gt;
# Become root in epyc&lt;br /&gt;
##Go to /root/globus&lt;br /&gt;
#:&amp;lt;source&amp;gt;cd /root/globus&amp;lt;/source&amp;gt;&lt;br /&gt;
#Insert and save the real paths at the end of this file (check commas for syntax or you&#039;ll get an error):&lt;br /&gt;
#:&amp;lt;source&amp;gt;vim path_restrictions.json&amp;lt;/source&amp;gt;&lt;br /&gt;
##Here is an example of what it should look like&lt;br /&gt;
##:&amp;lt;source&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;DATA_TYPE&amp;quot;: &amp;quot;path_restrictions#1.0.0&amp;quot;,&lt;br /&gt;
    &amp;quot;read&amp;quot;: [&lt;br /&gt;
        &amp;quot;/&amp;quot;&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;read_write&amp;quot;: [&lt;br /&gt;
        &amp;quot;/nfs/mammoth/idg-images/newAmisData/&amp;quot;&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
#Create a session token with globus. (Cluster 2 Password, ucsfbks)&lt;br /&gt;
#:&amp;lt;source&amp;gt;globus-connect-server session update ucsfbks@globusid.org&amp;lt;/source&amp;gt;&lt;br /&gt;
#* If above doesn&#039;t work, run below and follow instructions. (Cluster 2 Password, ucsfbks)&lt;br /&gt;
#:: &amp;lt;source&amp;gt; globus-connect-server login localhost &amp;lt;/source&amp;gt;&lt;br /&gt;
#Follow instructions given by globus and it should tell you that it was successful&lt;br /&gt;
#In the same directory, run this command to update&lt;br /&gt;
#:&amp;lt;source&amp;gt;globus-connect-server collection update --sharing-restrict-paths file:path_restrictions.json 2e1e1781-6d8a-440a-8604-7100d9c65c90&amp;lt;/source&amp;gt;&lt;br /&gt;
#This is the successful message&lt;br /&gt;
#:&amp;lt;source&amp;gt;code: success&amp;lt;/source&amp;gt;&lt;br /&gt;
== Modify Guest Collection Read and Write Permissions in Globus Website ==&lt;br /&gt;
If a user needs to write, make sure only they are allowed to write in their given directory. Otherwise you can risk random users to write whatever they want.&lt;br /&gt;
&lt;br /&gt;
#Log into globus.org using Globus ID as user &#039;&#039;&#039;ucsfbks&#039;&#039;&#039; (Cluster 2 Password, ucsfbks)&lt;br /&gt;
#On the left sidebar, click on &#039;&#039;&#039;Collections&#039;&#039;&#039;&lt;br /&gt;
#In the top center of the page, click on &#039;&#039;&#039;Administered By You&#039;&#039;&#039;&lt;br /&gt;
#Then click on &#039;&#039;&#039;UCSF BKS Lab Guest Collection&#039;&#039;&#039;&lt;br /&gt;
#On the top left, click on the &#039;&#039;&#039;Permissions&#039;&#039;&#039; tab&lt;br /&gt;
#Top right, click on the &#039;&#039;&#039;Add Permissions -- Share With&#039;&#039;&#039; button.&lt;br /&gt;
#Fill in the form and double check that you have the right user and check that you have allowed them to write in the given directory.&lt;br /&gt;
#At the end, before you create the new permission rule, the form should look like below&lt;br /&gt;
#:[[File:Globus permissions.png|1000px]]&lt;br /&gt;
#Then everything is entered correctly click add permission&lt;/div&gt;</summary>
		<author><name>Jgutierrez6</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Globus_Curator%27s_Guide&amp;diff=16934</id>
		<title>Globus Curator&#039;s Guide</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Globus_Curator%27s_Guide&amp;diff=16934"/>
		<updated>2025-10-02T20:34:42Z</updated>

		<summary type="html">&lt;p&gt;Jgutierrez6: /* Modify Guest Collection Read and Write Permissions in Globus Website */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Here will be the instructions on how to maintain globus.&lt;br /&gt;
&lt;br /&gt;
=== Notes ===&lt;br /&gt;
*For any restrict path&#039;s to work in the Guest Collections, the main collection needs to have either the same or broader path to be allowed.&lt;br /&gt;
*The main collection is currently private. Only the admins can have access to it.&lt;br /&gt;
&lt;br /&gt;
== Updating Path Permissions for the Guest Collection ==&lt;br /&gt;
#Identify the real paths of the permission denied paths. Globus doesn&#039;t follow symbolic links&lt;br /&gt;
#:&amp;lt;source&amp;gt;readlink -f &amp;lt;symlink&amp;gt; &amp;lt;/source&amp;gt;&lt;br /&gt;
# Become root in epyc&lt;br /&gt;
##Go to /root/globus&lt;br /&gt;
#:&amp;lt;source&amp;gt;cd /root/globus&amp;lt;/source&amp;gt;&lt;br /&gt;
#Insert and save the real paths at the end of this file (check commas for syntax or you&#039;ll get an error):&lt;br /&gt;
#:&amp;lt;source&amp;gt;vim storage_gateway_path_restriction.json&amp;lt;/source&amp;gt;&lt;br /&gt;
##Here is an example of what it should look like&lt;br /&gt;
##:&amp;lt;source&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;DATA_TYPE&amp;quot;: &amp;quot;path_restrictions#1.0.0&amp;quot;,&lt;br /&gt;
    &amp;quot;none&amp;quot;: [&amp;quot;/&amp;quot;],&lt;br /&gt;
    &amp;quot;read&amp;quot;: [&lt;br /&gt;
	    &amp;quot;/nfs/ex3/published&amp;quot;,&lt;br /&gt;
	    &amp;quot;/nfs/exe/work/jji/2dexport&amp;quot;,&lt;br /&gt;
	    &amp;quot;/nfs/exe/work/jji/3d-zinc20&amp;quot;,&lt;br /&gt;
	    &amp;quot;/nfs/exl/zinc-22a&amp;quot;,&lt;br /&gt;
	    &amp;quot;/nfs/exl/zinc-22b&amp;quot;,&lt;br /&gt;
	    &amp;quot;/nfs/exl/zinc-22c&amp;quot;,&lt;br /&gt;
	    &amp;quot;/nfs/exc/zinc-22n&amp;quot;&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;read_write&amp;quot;:[&lt;br /&gt;
	    &amp;quot;/nfs/mammoth/idg-images/newAmisData&amp;quot;&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
#Create a session token with globus. (Cluster 2 Password, ucsfbks)&lt;br /&gt;
#:&amp;lt;source&amp;gt;globus-connect-server session update ucsfbks@globusid.org&amp;lt;/source&amp;gt;&lt;br /&gt;
#Follow instructions given by globus and it should tell you that it was successful&lt;br /&gt;
#In the same directory, run this command to update&lt;br /&gt;
#:&amp;lt;source&amp;gt;bash globus-storage-gateway.sh update&amp;lt;/source&amp;gt;&lt;br /&gt;
#This is the successful message&lt;br /&gt;
#:&amp;lt;source&amp;gt;Message: Updated Storage Gateway aa731fb1-b27a-49e6-aaeb-2d2cc252f779&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Updating Path Permissions for the Main Collection ==&lt;br /&gt;
#Identify the real paths of the permission denied paths. Globus doesn&#039;t follow symbolic links&lt;br /&gt;
#:&amp;lt;source&amp;gt;readlink -f &amp;lt;symlink&amp;gt; &amp;lt;/source&amp;gt;&lt;br /&gt;
# Become root in epyc&lt;br /&gt;
##Go to /root/globus&lt;br /&gt;
#:&amp;lt;source&amp;gt;cd /root/globus&amp;lt;/source&amp;gt;&lt;br /&gt;
#Insert and save the real paths at the end of this file (check commas for syntax or you&#039;ll get an error):&lt;br /&gt;
#:&amp;lt;source&amp;gt;vim path_restrictions.json&amp;lt;/source&amp;gt;&lt;br /&gt;
##Here is an example of what it should look like&lt;br /&gt;
##:&amp;lt;source&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;DATA_TYPE&amp;quot;: &amp;quot;path_restrictions#1.0.0&amp;quot;,&lt;br /&gt;
    &amp;quot;read&amp;quot;: [&lt;br /&gt;
        &amp;quot;/&amp;quot;&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;read_write&amp;quot;: [&lt;br /&gt;
        &amp;quot;/nfs/mammoth/idg-images/newAmisData/&amp;quot;&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
#Create a session token with globus. (Cluster 2 Password, ucsfbks)&lt;br /&gt;
#:&amp;lt;source&amp;gt;globus-connect-server session update ucsfbks@globusid.org&amp;lt;/source&amp;gt;&lt;br /&gt;
#* If above doesn&#039;t work, run below and follow instructions. (Cluster 2 Password, ucsfbks)&lt;br /&gt;
#:: &amp;lt;source&amp;gt; globus-connect-server login localhost &amp;lt;/source&amp;gt;&lt;br /&gt;
#Follow instructions given by globus and it should tell you that it was successful&lt;br /&gt;
#In the same directory, run this command to update&lt;br /&gt;
#:&amp;lt;source&amp;gt;globus-connect-server collection update --sharing-restrict-paths file:path_restrictions.json 2e1e1781-6d8a-440a-8604-7100d9c65c90&amp;lt;/source&amp;gt;&lt;br /&gt;
#This is the successful message&lt;br /&gt;
#:&amp;lt;source&amp;gt;code: success&amp;lt;/source&amp;gt;&lt;br /&gt;
== Modify Guest Collection Read and Write Permissions in Globus Website ==&lt;br /&gt;
If a user needs to write, make sure only they are allowed to write in their given directory. Otherwise you can risk random users to write whatever they want.&lt;br /&gt;
&lt;br /&gt;
#Log into globus.org using Globus ID as user &#039;&#039;&#039;ucsfbks&#039;&#039;&#039; (Cluster 2 Password, ucsfbks)&lt;br /&gt;
#On the left sidebar, click on &#039;&#039;&#039;Collections&#039;&#039;&#039;&lt;br /&gt;
#In the top center of the page, click on &#039;&#039;&#039;Administered By You&#039;&#039;&#039;&lt;br /&gt;
#Then click on &#039;&#039;&#039;UCSF BKS Lab Guest Collection&#039;&#039;&#039;&lt;br /&gt;
#On the top left, click on the &#039;&#039;&#039;Permissions&#039;&#039;&#039; tab&lt;br /&gt;
#Top right, click on the &#039;&#039;&#039;Add Permissions -- Share With&#039;&#039;&#039; button.&lt;br /&gt;
#Fill in the form and double check that you have the right user and check that you have allowed them to write in the given directory.&lt;br /&gt;
#At the end, before you create the new permission rule, the form should look like below&lt;br /&gt;
::[[File:Globus permissions.png|1000px]]&lt;br /&gt;
#Then everything is entered correctly click add permission&lt;/div&gt;</summary>
		<author><name>Jgutierrez6</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=File:Globus_permissions.png&amp;diff=16933</id>
		<title>File:Globus permissions.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=File:Globus_permissions.png&amp;diff=16933"/>
		<updated>2025-10-02T20:33:58Z</updated>

		<summary type="html">&lt;p&gt;Jgutierrez6: globus permission example&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
globus permission example&lt;/div&gt;</summary>
		<author><name>Jgutierrez6</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Globus_Curator%27s_Guide&amp;diff=16929</id>
		<title>Globus Curator&#039;s Guide</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Globus_Curator%27s_Guide&amp;diff=16929"/>
		<updated>2025-10-02T20:24:36Z</updated>

		<summary type="html">&lt;p&gt;Jgutierrez6: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Here will be the instructions on how to maintain globus.&lt;br /&gt;
&lt;br /&gt;
=== Notes ===&lt;br /&gt;
*For any restrict path&#039;s to work in the Guest Collections, the main collection needs to have either the same or broader path to be allowed.&lt;br /&gt;
*The main collection is currently private. Only the admins can have access to it.&lt;br /&gt;
&lt;br /&gt;
== Updating Path Permissions for the Guest Collection ==&lt;br /&gt;
#Identify the real paths of the permission denied paths. Globus doesn&#039;t follow symbolic links&lt;br /&gt;
#:&amp;lt;source&amp;gt;readlink -f &amp;lt;symlink&amp;gt; &amp;lt;/source&amp;gt;&lt;br /&gt;
# Become root in epyc&lt;br /&gt;
##Go to /root/globus&lt;br /&gt;
#:&amp;lt;source&amp;gt;cd /root/globus&amp;lt;/source&amp;gt;&lt;br /&gt;
#Insert and save the real paths at the end of this file (check commas for syntax or you&#039;ll get an error):&lt;br /&gt;
#:&amp;lt;source&amp;gt;vim storage_gateway_path_restriction.json&amp;lt;/source&amp;gt;&lt;br /&gt;
##Here is an example of what it should look like&lt;br /&gt;
##:&amp;lt;source&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;DATA_TYPE&amp;quot;: &amp;quot;path_restrictions#1.0.0&amp;quot;,&lt;br /&gt;
    &amp;quot;none&amp;quot;: [&amp;quot;/&amp;quot;],&lt;br /&gt;
    &amp;quot;read&amp;quot;: [&lt;br /&gt;
	    &amp;quot;/nfs/ex3/published&amp;quot;,&lt;br /&gt;
	    &amp;quot;/nfs/exe/work/jji/2dexport&amp;quot;,&lt;br /&gt;
	    &amp;quot;/nfs/exe/work/jji/3d-zinc20&amp;quot;,&lt;br /&gt;
	    &amp;quot;/nfs/exl/zinc-22a&amp;quot;,&lt;br /&gt;
	    &amp;quot;/nfs/exl/zinc-22b&amp;quot;,&lt;br /&gt;
	    &amp;quot;/nfs/exl/zinc-22c&amp;quot;,&lt;br /&gt;
	    &amp;quot;/nfs/exc/zinc-22n&amp;quot;&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;read_write&amp;quot;:[&lt;br /&gt;
	    &amp;quot;/nfs/mammoth/idg-images/newAmisData&amp;quot;&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
#Create a session token with globus. (Cluster 2 Password, ucsfbks)&lt;br /&gt;
#:&amp;lt;source&amp;gt;globus-connect-server session update ucsfbks@globusid.org&amp;lt;/source&amp;gt;&lt;br /&gt;
#Follow instructions given by globus and it should tell you that it was successful&lt;br /&gt;
#In the same directory, run this command to update&lt;br /&gt;
#:&amp;lt;source&amp;gt;bash globus-storage-gateway.sh update&amp;lt;/source&amp;gt;&lt;br /&gt;
#This is the successful message&lt;br /&gt;
#:&amp;lt;source&amp;gt;Message: Updated Storage Gateway aa731fb1-b27a-49e6-aaeb-2d2cc252f779&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Updating Path Permissions for the Main Collection ==&lt;br /&gt;
#Identify the real paths of the permission denied paths. Globus doesn&#039;t follow symbolic links&lt;br /&gt;
#:&amp;lt;source&amp;gt;readlink -f &amp;lt;symlink&amp;gt; &amp;lt;/source&amp;gt;&lt;br /&gt;
# Become root in epyc&lt;br /&gt;
##Go to /root/globus&lt;br /&gt;
#:&amp;lt;source&amp;gt;cd /root/globus&amp;lt;/source&amp;gt;&lt;br /&gt;
#Insert and save the real paths at the end of this file (check commas for syntax or you&#039;ll get an error):&lt;br /&gt;
#:&amp;lt;source&amp;gt;vim path_restrictions.json&amp;lt;/source&amp;gt;&lt;br /&gt;
##Here is an example of what it should look like&lt;br /&gt;
##:&amp;lt;source&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;DATA_TYPE&amp;quot;: &amp;quot;path_restrictions#1.0.0&amp;quot;,&lt;br /&gt;
    &amp;quot;read&amp;quot;: [&lt;br /&gt;
        &amp;quot;/&amp;quot;&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;read_write&amp;quot;: [&lt;br /&gt;
        &amp;quot;/nfs/mammoth/idg-images/newAmisData/&amp;quot;&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
#Create a session token with globus. (Cluster 2 Password, ucsfbks)&lt;br /&gt;
#:&amp;lt;source&amp;gt;globus-connect-server session update ucsfbks@globusid.org&amp;lt;/source&amp;gt;&lt;br /&gt;
#* If above doesn&#039;t work, run below and follow instructions. (Cluster 2 Password, ucsfbks)&lt;br /&gt;
#:: &amp;lt;source&amp;gt; globus-connect-server login localhost &amp;lt;/source&amp;gt;&lt;br /&gt;
#Follow instructions given by globus and it should tell you that it was successful&lt;br /&gt;
#In the same directory, run this command to update&lt;br /&gt;
#:&amp;lt;source&amp;gt;globus-connect-server collection update --sharing-restrict-paths file:path_restrictions.json 2e1e1781-6d8a-440a-8604-7100d9c65c90&amp;lt;/source&amp;gt;&lt;br /&gt;
#This is the successful message&lt;br /&gt;
#:&amp;lt;source&amp;gt;code: success&amp;lt;/source&amp;gt;&lt;br /&gt;
== Modify Guest Collection Read and Write Permissions in Globus Website ==&lt;br /&gt;
If a user needs to write, make sure only they are allowed to write in their given directory. Otherwise you can risk random users to write whatever they want.&lt;br /&gt;
&lt;br /&gt;
#Log into globus.org using Globus ID as user &#039;&#039;&#039;ucsfbks&#039;&#039;&#039; (Cluster 2 Password, ucsfbks)&lt;br /&gt;
#On the left sidebar, click on &#039;&#039;&#039;Collections&#039;&#039;&#039;&lt;br /&gt;
#In the top center of the page, click on &#039;&#039;&#039;Administered By You&#039;&#039;&#039;&lt;br /&gt;
#Then click on &#039;&#039;&#039;UCSF BKS Lab Guest Collection&#039;&#039;&#039;&lt;br /&gt;
#On the top left, click on the &#039;&#039;&#039;Permissions&#039;&#039;&#039; tab&lt;br /&gt;
#Top right, click on the &#039;&#039;&#039;Add Permissions -- Share With&#039;&#039;&#039; button.&lt;br /&gt;
#Fill in the form and double check that you have the right user and check that you have allowed them to write in the given directory.&lt;br /&gt;
#At the end, before you create the new permission rule, the form should look like below&lt;br /&gt;
:&amp;lt;source&amp;gt;&lt;br /&gt;
[[File:Globus permissions.png|1000px]]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jgutierrez6</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Globus_Curator%27s_Guide&amp;diff=16928</id>
		<title>Globus Curator&#039;s Guide</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Globus_Curator%27s_Guide&amp;diff=16928"/>
		<updated>2025-10-02T20:21:53Z</updated>

		<summary type="html">&lt;p&gt;Jgutierrez6: /* Modify Guest Collection Read and Write Permissions in Globus Website */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Here will be the instructions on how to maintain globus.&lt;br /&gt;
&lt;br /&gt;
=== Notes ===&lt;br /&gt;
*For any restrict path&#039;s to work in the Guest Collections, the main collection needs to have either the same or broader path to be allowed.&lt;br /&gt;
*The main collection is currently private. Only the admins can have access to it.&lt;br /&gt;
&lt;br /&gt;
== Updating Path Permissions for the Guest Collection ==&lt;br /&gt;
#Identify the real paths of the permission denied paths. Globus doesn&#039;t follow symbolic links&lt;br /&gt;
#:&amp;lt;source&amp;gt;readlink -f &amp;lt;symlink&amp;gt; &amp;lt;/source&amp;gt;&lt;br /&gt;
# Become root in epyc&lt;br /&gt;
##Go to /root/globus&lt;br /&gt;
#:&amp;lt;source&amp;gt;cd /root/globus&amp;lt;/source&amp;gt;&lt;br /&gt;
#Insert and save the real paths at the end of this file (check commas for syntax or you&#039;ll get an error):&lt;br /&gt;
#:&amp;lt;source&amp;gt;vim storage_gateway_path_restriction.json&amp;lt;/source&amp;gt;&lt;br /&gt;
##Here is an example of what it should look like&lt;br /&gt;
##:&amp;lt;source&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;DATA_TYPE&amp;quot;: &amp;quot;path_restrictions#1.0.0&amp;quot;,&lt;br /&gt;
    &amp;quot;none&amp;quot;: [&amp;quot;/&amp;quot;],&lt;br /&gt;
    &amp;quot;read&amp;quot;: [&lt;br /&gt;
	    &amp;quot;/nfs/ex3/published&amp;quot;,&lt;br /&gt;
	    &amp;quot;/nfs/exe/work/jji/2dexport&amp;quot;,&lt;br /&gt;
	    &amp;quot;/nfs/exe/work/jji/3d-zinc20&amp;quot;,&lt;br /&gt;
	    &amp;quot;/nfs/exl/zinc-22a&amp;quot;,&lt;br /&gt;
	    &amp;quot;/nfs/exl/zinc-22b&amp;quot;,&lt;br /&gt;
	    &amp;quot;/nfs/exl/zinc-22c&amp;quot;,&lt;br /&gt;
	    &amp;quot;/nfs/exc/zinc-22n&amp;quot;&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;read_write&amp;quot;:[&lt;br /&gt;
	    &amp;quot;/nfs/mammoth/idg-images/newAmisData&amp;quot;&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
#Create a session token with globus. (Cluster 2 Password, ucsfbks)&lt;br /&gt;
#:&amp;lt;source&amp;gt;globus-connect-server session update ucsfbks@globusid.org&amp;lt;/source&amp;gt;&lt;br /&gt;
#Follow instructions given by globus and it should tell you that it was successful&lt;br /&gt;
#In the same directory, run this command to update&lt;br /&gt;
#:&amp;lt;source&amp;gt;bash globus-storage-gateway.sh update&amp;lt;/source&amp;gt;&lt;br /&gt;
#This is the successful message&lt;br /&gt;
#:&amp;lt;source&amp;gt;Message: Updated Storage Gateway aa731fb1-b27a-49e6-aaeb-2d2cc252f779&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Updating Path Permissions for the Main Collection ==&lt;br /&gt;
#Identify the real paths of the permission denied paths. Globus doesn&#039;t follow symbolic links&lt;br /&gt;
#:&amp;lt;source&amp;gt;readlink -f &amp;lt;symlink&amp;gt; &amp;lt;/source&amp;gt;&lt;br /&gt;
# Become root in epyc&lt;br /&gt;
##Go to /root/globus&lt;br /&gt;
#:&amp;lt;source&amp;gt;cd /root/globus&amp;lt;/source&amp;gt;&lt;br /&gt;
#Insert and save the real paths at the end of this file (check commas for syntax or you&#039;ll get an error):&lt;br /&gt;
#:&amp;lt;source&amp;gt;vim path_restrictions.json&amp;lt;/source&amp;gt;&lt;br /&gt;
##Here is an example of what it should look like&lt;br /&gt;
##:&amp;lt;source&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;DATA_TYPE&amp;quot;: &amp;quot;path_restrictions#1.0.0&amp;quot;,&lt;br /&gt;
    &amp;quot;read&amp;quot;: [&lt;br /&gt;
        &amp;quot;/&amp;quot;&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;read_write&amp;quot;: [&lt;br /&gt;
        &amp;quot;/nfs/mammoth/idg-images/newAmisData/&amp;quot;&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
#Create a session token with globus. (Cluster 2 Password, ucsfbks)&lt;br /&gt;
#:&amp;lt;source&amp;gt;globus-connect-server session update ucsfbks@globusid.org&amp;lt;/source&amp;gt;&lt;br /&gt;
#* If above doesn&#039;t work, run below and follow instructions. (Cluster 2 Password, ucsfbks)&lt;br /&gt;
#:: &amp;lt;source&amp;gt; globus-connect-server login localhost &amp;lt;/source&amp;gt;&lt;br /&gt;
#Follow instructions given by globus and it should tell you that it was successful&lt;br /&gt;
#In the same directory, run this command to update&lt;br /&gt;
#:&amp;lt;source&amp;gt;globus-connect-server collection update --sharing-restrict-paths file:path_restrictions.json 2e1e1781-6d8a-440a-8604-7100d9c65c90&amp;lt;/source&amp;gt;&lt;br /&gt;
#This is the successful message&lt;br /&gt;
#:&amp;lt;source&amp;gt;code: success&amp;lt;/source&amp;gt;&lt;br /&gt;
== Modify Guest Collection Read and Write Permissions in Globus Website ==&lt;br /&gt;
If a user needs to write, make sure only they are allowed to write in their given directory. Otherwise you can risk random users to write whatever they want.&lt;br /&gt;
&lt;br /&gt;
#Log into globus.org using Globus ID as user &#039;&#039;&#039;ucsfbks&#039;&#039;&#039; (Cluster 2 Password, ucsfbks)&lt;br /&gt;
#On the left sidebar, click on &#039;&#039;&#039;Collections&#039;&#039;&#039;&lt;br /&gt;
#In the top center of the page, click on &#039;&#039;&#039;Administered By You&#039;&#039;&#039;&lt;br /&gt;
#Then click on &#039;&#039;&#039;UCSF BKS Lab Guest Collection&#039;&#039;&#039;&lt;br /&gt;
#On the top left, click on the &#039;&#039;&#039;Permissions&#039;&#039;&#039; tab&lt;br /&gt;
#Top right, click on the &#039;&#039;&#039;Add Permissions -- Share With&#039;&#039;&#039; button.&lt;br /&gt;
#Fill in the form and double check that you have the right user and check that you have allowed them to write in the given directory.&lt;br /&gt;
#At the end, before you create the new permission rule, the form should look like below&lt;br /&gt;
##&amp;lt;source&amp;gt;&lt;br /&gt;
[[File:globus_permissions.png|1000px]]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jgutierrez6</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Globus_Curator%27s_Guide&amp;diff=16927</id>
		<title>Globus Curator&#039;s Guide</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Globus_Curator%27s_Guide&amp;diff=16927"/>
		<updated>2025-10-02T20:21:38Z</updated>

		<summary type="html">&lt;p&gt;Jgutierrez6: /* Modify Guest Collection Read and Write Permissions in Globus Website */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Here will be the instructions on how to maintain globus.&lt;br /&gt;
&lt;br /&gt;
=== Notes ===&lt;br /&gt;
*For any restrict path&#039;s to work in the Guest Collections, the main collection needs to have either the same or broader path to be allowed.&lt;br /&gt;
*The main collection is currently private. Only the admins can have access to it.&lt;br /&gt;
&lt;br /&gt;
== Updating Path Permissions for the Guest Collection ==&lt;br /&gt;
#Identify the real paths of the permission denied paths. Globus doesn&#039;t follow symbolic links&lt;br /&gt;
#:&amp;lt;source&amp;gt;readlink -f &amp;lt;symlink&amp;gt; &amp;lt;/source&amp;gt;&lt;br /&gt;
# Become root in epyc&lt;br /&gt;
##Go to /root/globus&lt;br /&gt;
#:&amp;lt;source&amp;gt;cd /root/globus&amp;lt;/source&amp;gt;&lt;br /&gt;
#Insert and save the real paths at the end of this file (check commas for syntax or you&#039;ll get an error):&lt;br /&gt;
#:&amp;lt;source&amp;gt;vim storage_gateway_path_restriction.json&amp;lt;/source&amp;gt;&lt;br /&gt;
##Here is an example of what it should look like&lt;br /&gt;
##:&amp;lt;source&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;DATA_TYPE&amp;quot;: &amp;quot;path_restrictions#1.0.0&amp;quot;,&lt;br /&gt;
    &amp;quot;none&amp;quot;: [&amp;quot;/&amp;quot;],&lt;br /&gt;
    &amp;quot;read&amp;quot;: [&lt;br /&gt;
	    &amp;quot;/nfs/ex3/published&amp;quot;,&lt;br /&gt;
	    &amp;quot;/nfs/exe/work/jji/2dexport&amp;quot;,&lt;br /&gt;
	    &amp;quot;/nfs/exe/work/jji/3d-zinc20&amp;quot;,&lt;br /&gt;
	    &amp;quot;/nfs/exl/zinc-22a&amp;quot;,&lt;br /&gt;
	    &amp;quot;/nfs/exl/zinc-22b&amp;quot;,&lt;br /&gt;
	    &amp;quot;/nfs/exl/zinc-22c&amp;quot;,&lt;br /&gt;
	    &amp;quot;/nfs/exc/zinc-22n&amp;quot;&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;read_write&amp;quot;:[&lt;br /&gt;
	    &amp;quot;/nfs/mammoth/idg-images/newAmisData&amp;quot;&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
#Create a session token with globus. (Cluster 2 Password, ucsfbks)&lt;br /&gt;
#:&amp;lt;source&amp;gt;globus-connect-server session update ucsfbks@globusid.org&amp;lt;/source&amp;gt;&lt;br /&gt;
#Follow instructions given by globus and it should tell you that it was successful&lt;br /&gt;
#In the same directory, run this command to update&lt;br /&gt;
#:&amp;lt;source&amp;gt;bash globus-storage-gateway.sh update&amp;lt;/source&amp;gt;&lt;br /&gt;
#This is the successful message&lt;br /&gt;
#:&amp;lt;source&amp;gt;Message: Updated Storage Gateway aa731fb1-b27a-49e6-aaeb-2d2cc252f779&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Updating Path Permissions for the Main Collection ==&lt;br /&gt;
#Identify the real paths of the permission denied paths. Globus doesn&#039;t follow symbolic links&lt;br /&gt;
#:&amp;lt;source&amp;gt;readlink -f &amp;lt;symlink&amp;gt; &amp;lt;/source&amp;gt;&lt;br /&gt;
# Become root in epyc&lt;br /&gt;
##Go to /root/globus&lt;br /&gt;
#:&amp;lt;source&amp;gt;cd /root/globus&amp;lt;/source&amp;gt;&lt;br /&gt;
#Insert and save the real paths at the end of this file (check commas for syntax or you&#039;ll get an error):&lt;br /&gt;
#:&amp;lt;source&amp;gt;vim path_restrictions.json&amp;lt;/source&amp;gt;&lt;br /&gt;
##Here is an example of what it should look like&lt;br /&gt;
##:&amp;lt;source&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;DATA_TYPE&amp;quot;: &amp;quot;path_restrictions#1.0.0&amp;quot;,&lt;br /&gt;
    &amp;quot;read&amp;quot;: [&lt;br /&gt;
        &amp;quot;/&amp;quot;&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;read_write&amp;quot;: [&lt;br /&gt;
        &amp;quot;/nfs/mammoth/idg-images/newAmisData/&amp;quot;&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
#Create a session token with globus. (Cluster 2 Password, ucsfbks)&lt;br /&gt;
#:&amp;lt;source&amp;gt;globus-connect-server session update ucsfbks@globusid.org&amp;lt;/source&amp;gt;&lt;br /&gt;
#* If above doesn&#039;t work, run below and follow instructions. (Cluster 2 Password, ucsfbks)&lt;br /&gt;
#:: &amp;lt;source&amp;gt; globus-connect-server login localhost &amp;lt;/source&amp;gt;&lt;br /&gt;
#Follow instructions given by globus and it should tell you that it was successful&lt;br /&gt;
#In the same directory, run this command to update&lt;br /&gt;
#:&amp;lt;source&amp;gt;globus-connect-server collection update --sharing-restrict-paths file:path_restrictions.json 2e1e1781-6d8a-440a-8604-7100d9c65c90&amp;lt;/source&amp;gt;&lt;br /&gt;
#This is the successful message&lt;br /&gt;
#:&amp;lt;source&amp;gt;code: success&amp;lt;/source&amp;gt;&lt;br /&gt;
== Modify Guest Collection Read and Write Permissions in Globus Website ==&lt;br /&gt;
If a user needs to write, make sure only they are allowed to write in their given directory. Otherwise you can risk random users to write whatever they want.&lt;br /&gt;
&lt;br /&gt;
#Log into globus.org using Globus ID as user &#039;&#039;&#039;ucsfbks&#039;&#039;&#039; (Cluster 2 Password, ucsfbks)&lt;br /&gt;
#On the left sidebar, click on &#039;&#039;&#039;Collections&#039;&#039;&#039;&lt;br /&gt;
#In the top center of the page, click on &#039;&#039;&#039;Administered By You&#039;&#039;&#039;&lt;br /&gt;
#Then click on &#039;&#039;&#039;UCSF BKS Lab Guest Collection&#039;&#039;&#039;&lt;br /&gt;
#On the top left, click on the &#039;&#039;&#039;Permissions&#039;&#039;&#039; tab&lt;br /&gt;
#Top right, click on the &#039;&#039;&#039;Add Permissions -- Share With&#039;&#039;&#039; button.&lt;br /&gt;
#Fill in the form and double check that you have the right user and check that you have allowed them to write in the given directory.&lt;br /&gt;
#At the end, before you create the new permission rule, the form should look like below&lt;br /&gt;
##&amp;lt;source&amp;gt;&lt;br /&gt;
[[File:Globus_permissions.png|1000px]]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jgutierrez6</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Globus_Curator%27s_Guide&amp;diff=16926</id>
		<title>Globus Curator&#039;s Guide</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Globus_Curator%27s_Guide&amp;diff=16926"/>
		<updated>2025-10-02T20:21:27Z</updated>

		<summary type="html">&lt;p&gt;Jgutierrez6: /* Modify Guest Collection Read and Write Permissions in Globus Website */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Here will be the instructions on how to maintain globus.&lt;br /&gt;
&lt;br /&gt;
=== Notes ===&lt;br /&gt;
*For any restrict path&#039;s to work in the Guest Collections, the main collection needs to have either the same or broader path to be allowed.&lt;br /&gt;
*The main collection is currently private. Only the admins can have access to it.&lt;br /&gt;
&lt;br /&gt;
== Updating Path Permissions for the Guest Collection ==&lt;br /&gt;
#Identify the real paths of the permission denied paths. Globus doesn&#039;t follow symbolic links&lt;br /&gt;
#:&amp;lt;source&amp;gt;readlink -f &amp;lt;symlink&amp;gt; &amp;lt;/source&amp;gt;&lt;br /&gt;
# Become root in epyc&lt;br /&gt;
##Go to /root/globus&lt;br /&gt;
#:&amp;lt;source&amp;gt;cd /root/globus&amp;lt;/source&amp;gt;&lt;br /&gt;
#Insert and save the real paths at the end of this file (check commas for syntax or you&#039;ll get an error):&lt;br /&gt;
#:&amp;lt;source&amp;gt;vim storage_gateway_path_restriction.json&amp;lt;/source&amp;gt;&lt;br /&gt;
##Here is an example of what it should look like&lt;br /&gt;
##:&amp;lt;source&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;DATA_TYPE&amp;quot;: &amp;quot;path_restrictions#1.0.0&amp;quot;,&lt;br /&gt;
    &amp;quot;none&amp;quot;: [&amp;quot;/&amp;quot;],&lt;br /&gt;
    &amp;quot;read&amp;quot;: [&lt;br /&gt;
	    &amp;quot;/nfs/ex3/published&amp;quot;,&lt;br /&gt;
	    &amp;quot;/nfs/exe/work/jji/2dexport&amp;quot;,&lt;br /&gt;
	    &amp;quot;/nfs/exe/work/jji/3d-zinc20&amp;quot;,&lt;br /&gt;
	    &amp;quot;/nfs/exl/zinc-22a&amp;quot;,&lt;br /&gt;
	    &amp;quot;/nfs/exl/zinc-22b&amp;quot;,&lt;br /&gt;
	    &amp;quot;/nfs/exl/zinc-22c&amp;quot;,&lt;br /&gt;
	    &amp;quot;/nfs/exc/zinc-22n&amp;quot;&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;read_write&amp;quot;:[&lt;br /&gt;
	    &amp;quot;/nfs/mammoth/idg-images/newAmisData&amp;quot;&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
#Create a session token with globus. (Cluster 2 Password, ucsfbks)&lt;br /&gt;
#:&amp;lt;source&amp;gt;globus-connect-server session update ucsfbks@globusid.org&amp;lt;/source&amp;gt;&lt;br /&gt;
#Follow instructions given by globus and it should tell you that it was successful&lt;br /&gt;
#In the same directory, run this command to update&lt;br /&gt;
#:&amp;lt;source&amp;gt;bash globus-storage-gateway.sh update&amp;lt;/source&amp;gt;&lt;br /&gt;
#This is the successful message&lt;br /&gt;
#:&amp;lt;source&amp;gt;Message: Updated Storage Gateway aa731fb1-b27a-49e6-aaeb-2d2cc252f779&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Updating Path Permissions for the Main Collection ==&lt;br /&gt;
#Identify the real paths of the permission denied paths. Globus doesn&#039;t follow symbolic links&lt;br /&gt;
#:&amp;lt;source&amp;gt;readlink -f &amp;lt;symlink&amp;gt; &amp;lt;/source&amp;gt;&lt;br /&gt;
# Become root in epyc&lt;br /&gt;
##Go to /root/globus&lt;br /&gt;
#:&amp;lt;source&amp;gt;cd /root/globus&amp;lt;/source&amp;gt;&lt;br /&gt;
#Insert and save the real paths at the end of this file (check commas for syntax or you&#039;ll get an error):&lt;br /&gt;
#:&amp;lt;source&amp;gt;vim path_restrictions.json&amp;lt;/source&amp;gt;&lt;br /&gt;
##Here is an example of what it should look like&lt;br /&gt;
##:&amp;lt;source&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;DATA_TYPE&amp;quot;: &amp;quot;path_restrictions#1.0.0&amp;quot;,&lt;br /&gt;
    &amp;quot;read&amp;quot;: [&lt;br /&gt;
        &amp;quot;/&amp;quot;&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;read_write&amp;quot;: [&lt;br /&gt;
        &amp;quot;/nfs/mammoth/idg-images/newAmisData/&amp;quot;&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
#Create a session token with globus. (Cluster 2 Password, ucsfbks)&lt;br /&gt;
#:&amp;lt;source&amp;gt;globus-connect-server session update ucsfbks@globusid.org&amp;lt;/source&amp;gt;&lt;br /&gt;
#* If above doesn&#039;t work, run below and follow instructions. (Cluster 2 Password, ucsfbks)&lt;br /&gt;
#:: &amp;lt;source&amp;gt; globus-connect-server login localhost &amp;lt;/source&amp;gt;&lt;br /&gt;
#Follow instructions given by globus and it should tell you that it was successful&lt;br /&gt;
#In the same directory, run this command to update&lt;br /&gt;
#:&amp;lt;source&amp;gt;globus-connect-server collection update --sharing-restrict-paths file:path_restrictions.json 2e1e1781-6d8a-440a-8604-7100d9c65c90&amp;lt;/source&amp;gt;&lt;br /&gt;
#This is the successful message&lt;br /&gt;
#:&amp;lt;source&amp;gt;code: success&amp;lt;/source&amp;gt;&lt;br /&gt;
== Modify Guest Collection Read and Write Permissions in Globus Website ==&lt;br /&gt;
If a user needs to write, make sure only they are allowed to write in their given directory. Otherwise you can risk random users to write whatever they want.&lt;br /&gt;
&lt;br /&gt;
#Log into globus.org using Globus ID as user &#039;&#039;&#039;ucsfbks&#039;&#039;&#039; (Cluster 2 Password, ucsfbks)&lt;br /&gt;
#On the left sidebar, click on &#039;&#039;&#039;Collections&#039;&#039;&#039;&lt;br /&gt;
#In the top center of the page, click on &#039;&#039;&#039;Administered By You&#039;&#039;&#039;&lt;br /&gt;
#Then click on &#039;&#039;&#039;UCSF BKS Lab Guest Collection&#039;&#039;&#039;&lt;br /&gt;
#On the top left, click on the &#039;&#039;&#039;Permissions&#039;&#039;&#039; tab&lt;br /&gt;
#Top right, click on the &#039;&#039;&#039;Add Permissions -- Share With&#039;&#039;&#039; button.&lt;br /&gt;
#Fill in the form and double check that you have the right user and check that you have allowed them to write in the given directory.&lt;br /&gt;
#At the end, before you create the new permission rule, the form should look like below&lt;br /&gt;
##&amp;lt;source&amp;gt;&lt;br /&gt;
[[File:Globus_permissions.png|thumb]]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jgutierrez6</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Globus_Curator%27s_Guide&amp;diff=16925</id>
		<title>Globus Curator&#039;s Guide</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Globus_Curator%27s_Guide&amp;diff=16925"/>
		<updated>2025-10-02T20:20:56Z</updated>

		<summary type="html">&lt;p&gt;Jgutierrez6: /* Modify Guest Collection Read and Write Permissions in Globus Website */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Here will be the instructions on how to maintain globus.&lt;br /&gt;
&lt;br /&gt;
=== Notes ===&lt;br /&gt;
*For any restrict path&#039;s to work in the Guest Collections, the main collection needs to have either the same or broader path to be allowed.&lt;br /&gt;
*The main collection is currently private. Only the admins can have access to it.&lt;br /&gt;
&lt;br /&gt;
== Updating Path Permissions for the Guest Collection ==&lt;br /&gt;
#Identify the real paths of the permission denied paths. Globus doesn&#039;t follow symbolic links&lt;br /&gt;
#:&amp;lt;source&amp;gt;readlink -f &amp;lt;symlink&amp;gt; &amp;lt;/source&amp;gt;&lt;br /&gt;
# Become root in epyc&lt;br /&gt;
##Go to /root/globus&lt;br /&gt;
#:&amp;lt;source&amp;gt;cd /root/globus&amp;lt;/source&amp;gt;&lt;br /&gt;
#Insert and save the real paths at the end of this file (check commas for syntax or you&#039;ll get an error):&lt;br /&gt;
#:&amp;lt;source&amp;gt;vim storage_gateway_path_restriction.json&amp;lt;/source&amp;gt;&lt;br /&gt;
##Here is an example of what it should look like&lt;br /&gt;
##:&amp;lt;source&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;DATA_TYPE&amp;quot;: &amp;quot;path_restrictions#1.0.0&amp;quot;,&lt;br /&gt;
    &amp;quot;none&amp;quot;: [&amp;quot;/&amp;quot;],&lt;br /&gt;
    &amp;quot;read&amp;quot;: [&lt;br /&gt;
	    &amp;quot;/nfs/ex3/published&amp;quot;,&lt;br /&gt;
	    &amp;quot;/nfs/exe/work/jji/2dexport&amp;quot;,&lt;br /&gt;
	    &amp;quot;/nfs/exe/work/jji/3d-zinc20&amp;quot;,&lt;br /&gt;
	    &amp;quot;/nfs/exl/zinc-22a&amp;quot;,&lt;br /&gt;
	    &amp;quot;/nfs/exl/zinc-22b&amp;quot;,&lt;br /&gt;
	    &amp;quot;/nfs/exl/zinc-22c&amp;quot;,&lt;br /&gt;
	    &amp;quot;/nfs/exc/zinc-22n&amp;quot;&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;read_write&amp;quot;:[&lt;br /&gt;
	    &amp;quot;/nfs/mammoth/idg-images/newAmisData&amp;quot;&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
#Create a session token with globus. (Cluster 2 Password, ucsfbks)&lt;br /&gt;
#:&amp;lt;source&amp;gt;globus-connect-server session update ucsfbks@globusid.org&amp;lt;/source&amp;gt;&lt;br /&gt;
#Follow instructions given by globus and it should tell you that it was successful&lt;br /&gt;
#In the same directory, run this command to update&lt;br /&gt;
#:&amp;lt;source&amp;gt;bash globus-storage-gateway.sh update&amp;lt;/source&amp;gt;&lt;br /&gt;
#This is the successful message&lt;br /&gt;
#:&amp;lt;source&amp;gt;Message: Updated Storage Gateway aa731fb1-b27a-49e6-aaeb-2d2cc252f779&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Updating Path Permissions for the Main Collection ==&lt;br /&gt;
#Identify the real paths of the permission denied paths. Globus doesn&#039;t follow symbolic links&lt;br /&gt;
#:&amp;lt;source&amp;gt;readlink -f &amp;lt;symlink&amp;gt; &amp;lt;/source&amp;gt;&lt;br /&gt;
# Become root in epyc&lt;br /&gt;
##Go to /root/globus&lt;br /&gt;
#:&amp;lt;source&amp;gt;cd /root/globus&amp;lt;/source&amp;gt;&lt;br /&gt;
#Insert and save the real paths at the end of this file (check commas for syntax or you&#039;ll get an error):&lt;br /&gt;
#:&amp;lt;source&amp;gt;vim path_restrictions.json&amp;lt;/source&amp;gt;&lt;br /&gt;
##Here is an example of what it should look like&lt;br /&gt;
##:&amp;lt;source&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;DATA_TYPE&amp;quot;: &amp;quot;path_restrictions#1.0.0&amp;quot;,&lt;br /&gt;
    &amp;quot;read&amp;quot;: [&lt;br /&gt;
        &amp;quot;/&amp;quot;&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;read_write&amp;quot;: [&lt;br /&gt;
        &amp;quot;/nfs/mammoth/idg-images/newAmisData/&amp;quot;&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
#Create a session token with globus. (Cluster 2 Password, ucsfbks)&lt;br /&gt;
#:&amp;lt;source&amp;gt;globus-connect-server session update ucsfbks@globusid.org&amp;lt;/source&amp;gt;&lt;br /&gt;
#* If above doesn&#039;t work, run below and follow instructions. (Cluster 2 Password, ucsfbks)&lt;br /&gt;
#:: &amp;lt;source&amp;gt; globus-connect-server login localhost &amp;lt;/source&amp;gt;&lt;br /&gt;
#Follow instructions given by globus and it should tell you that it was successful&lt;br /&gt;
#In the same directory, run this command to update&lt;br /&gt;
#:&amp;lt;source&amp;gt;globus-connect-server collection update --sharing-restrict-paths file:path_restrictions.json 2e1e1781-6d8a-440a-8604-7100d9c65c90&amp;lt;/source&amp;gt;&lt;br /&gt;
#This is the successful message&lt;br /&gt;
#:&amp;lt;source&amp;gt;code: success&amp;lt;/source&amp;gt;&lt;br /&gt;
== Modify Guest Collection Read and Write Permissions in Globus Website ==&lt;br /&gt;
If a user needs to write, make sure only they are allowed to write in their given directory. Otherwise you can risk random users to write whatever they want.&lt;br /&gt;
&lt;br /&gt;
#Log into globus.org using Globus ID as user &#039;&#039;&#039;ucsfbks&#039;&#039;&#039; (Cluster 2 Password, ucsfbks)&lt;br /&gt;
#On the left sidebar, click on &#039;&#039;&#039;Collections&#039;&#039;&#039;&lt;br /&gt;
#In the top center of the page, click on &#039;&#039;&#039;Administered By You&#039;&#039;&#039;&lt;br /&gt;
#Then click on &#039;&#039;&#039;UCSF BKS Lab Guest Collection&#039;&#039;&#039;&lt;br /&gt;
#On the top left, click on the &#039;&#039;&#039;Permissions&#039;&#039;&#039; tab&lt;br /&gt;
#Top right, click on the &#039;&#039;&#039;Add Permissions -- Share With&#039;&#039;&#039; button.&lt;br /&gt;
#Fill in the form and double check that you have the right user and check that you have allowed them to write in the given directory.&lt;br /&gt;
#At the end, before you create the new permission rule, the form should look like below&lt;br /&gt;
##&amp;lt;source&amp;gt;&lt;br /&gt;
[[File:Globus permissions.png|thumb]]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jgutierrez6</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Globus_Curator%27s_Guide&amp;diff=16923</id>
		<title>Globus Curator&#039;s Guide</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Globus_Curator%27s_Guide&amp;diff=16923"/>
		<updated>2025-10-02T20:13:32Z</updated>

		<summary type="html">&lt;p&gt;Jgutierrez6: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Here will be the instructions on how to maintain globus.&lt;br /&gt;
&lt;br /&gt;
=== Notes ===&lt;br /&gt;
*For any restrict path&#039;s to work in the Guest Collections, the main collection needs to have either the same or broader path to be allowed.&lt;br /&gt;
*The main collection is currently private. Only the admins can have access to it.&lt;br /&gt;
&lt;br /&gt;
== Updating Path Permissions for the Guest Collection ==&lt;br /&gt;
#Identify the real paths of the permission denied paths. Globus doesn&#039;t follow symbolic links&lt;br /&gt;
#:&amp;lt;source&amp;gt;readlink -f &amp;lt;symlink&amp;gt; &amp;lt;/source&amp;gt;&lt;br /&gt;
# Become root in epyc&lt;br /&gt;
##Go to /root/globus&lt;br /&gt;
#:&amp;lt;source&amp;gt;cd /root/globus&amp;lt;/source&amp;gt;&lt;br /&gt;
#Insert and save the real paths at the end of this file (check commas for syntax or you&#039;ll get an error):&lt;br /&gt;
#:&amp;lt;source&amp;gt;vim storage_gateway_path_restriction.json&amp;lt;/source&amp;gt;&lt;br /&gt;
##Here is an example of what it should look like&lt;br /&gt;
##:&amp;lt;source&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;DATA_TYPE&amp;quot;: &amp;quot;path_restrictions#1.0.0&amp;quot;,&lt;br /&gt;
    &amp;quot;none&amp;quot;: [&amp;quot;/&amp;quot;],&lt;br /&gt;
    &amp;quot;read&amp;quot;: [&lt;br /&gt;
	    &amp;quot;/nfs/ex3/published&amp;quot;,&lt;br /&gt;
	    &amp;quot;/nfs/exe/work/jji/2dexport&amp;quot;,&lt;br /&gt;
	    &amp;quot;/nfs/exe/work/jji/3d-zinc20&amp;quot;,&lt;br /&gt;
	    &amp;quot;/nfs/exl/zinc-22a&amp;quot;,&lt;br /&gt;
	    &amp;quot;/nfs/exl/zinc-22b&amp;quot;,&lt;br /&gt;
	    &amp;quot;/nfs/exl/zinc-22c&amp;quot;,&lt;br /&gt;
	    &amp;quot;/nfs/exc/zinc-22n&amp;quot;&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;read_write&amp;quot;:[&lt;br /&gt;
	    &amp;quot;/nfs/mammoth/idg-images/newAmisData&amp;quot;&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
#Create a session token with globus. (Cluster 2 Password, ucsfbks)&lt;br /&gt;
#:&amp;lt;source&amp;gt;globus-connect-server session update ucsfbks@globusid.org&amp;lt;/source&amp;gt;&lt;br /&gt;
#Follow instructions given by globus and it should tell you that it was successful&lt;br /&gt;
#In the same directory, run this command to update&lt;br /&gt;
#:&amp;lt;source&amp;gt;bash globus-storage-gateway.sh update&amp;lt;/source&amp;gt;&lt;br /&gt;
#This is the successful message&lt;br /&gt;
#:&amp;lt;source&amp;gt;Message: Updated Storage Gateway aa731fb1-b27a-49e6-aaeb-2d2cc252f779&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Updating Path Permissions for the Main Collection ==&lt;br /&gt;
#Identify the real paths of the permission denied paths. Globus doesn&#039;t follow symbolic links&lt;br /&gt;
#:&amp;lt;source&amp;gt;readlink -f &amp;lt;symlink&amp;gt; &amp;lt;/source&amp;gt;&lt;br /&gt;
# Become root in epyc&lt;br /&gt;
##Go to /root/globus&lt;br /&gt;
#:&amp;lt;source&amp;gt;cd /root/globus&amp;lt;/source&amp;gt;&lt;br /&gt;
#Insert and save the real paths at the end of this file (check commas for syntax or you&#039;ll get an error):&lt;br /&gt;
#:&amp;lt;source&amp;gt;vim path_restrictions.json&amp;lt;/source&amp;gt;&lt;br /&gt;
##Here is an example of what it should look like&lt;br /&gt;
##:&amp;lt;source&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;DATA_TYPE&amp;quot;: &amp;quot;path_restrictions#1.0.0&amp;quot;,&lt;br /&gt;
    &amp;quot;read&amp;quot;: [&lt;br /&gt;
        &amp;quot;/&amp;quot;&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;read_write&amp;quot;: [&lt;br /&gt;
        &amp;quot;/nfs/mammoth/idg-images/newAmisData/&amp;quot;&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
#Create a session token with globus. (Cluster 2 Password, ucsfbks)&lt;br /&gt;
#:&amp;lt;source&amp;gt;globus-connect-server session update ucsfbks@globusid.org&amp;lt;/source&amp;gt;&lt;br /&gt;
#* If above doesn&#039;t work, run below and follow instructions. (Cluster 2 Password, ucsfbks)&lt;br /&gt;
#:: &amp;lt;source&amp;gt; globus-connect-server login localhost &amp;lt;/source&amp;gt;&lt;br /&gt;
#Follow instructions given by globus and it should tell you that it was successful&lt;br /&gt;
#In the same directory, run this command to update&lt;br /&gt;
#:&amp;lt;source&amp;gt;globus-connect-server collection update --sharing-restrict-paths file:path_restrictions.json 2e1e1781-6d8a-440a-8604-7100d9c65c90&amp;lt;/source&amp;gt;&lt;br /&gt;
#This is the successful message&lt;br /&gt;
#:&amp;lt;source&amp;gt;code: success&amp;lt;/source&amp;gt;&lt;br /&gt;
== Modify Guest Collection Read and Write Permissions in Globus Website ==&lt;br /&gt;
If a user needs to write, make sure only they are allowed to write in their given directory. Otherwise you can risk random users to write whatever they want.&lt;br /&gt;
&lt;br /&gt;
#Log into globus.org using Globus ID as user &#039;&#039;&#039;ucsfbks&#039;&#039;&#039; (Cluster 2 Password, ucsfbks)&lt;br /&gt;
#On the left sidebar, click on &#039;&#039;&#039;Collections&#039;&#039;&#039;&lt;br /&gt;
#In the top center of the page, click on &#039;&#039;&#039;Administered By You&#039;&#039;&#039;&lt;br /&gt;
#Then click on &#039;&#039;&#039;UCSF BKS Lab Guest Collection&#039;&#039;&#039;&lt;br /&gt;
#On the top left, click on the &#039;&#039;&#039;Permissions&#039;&#039;&#039; tab&lt;br /&gt;
#Top right, click on the &#039;&#039;&#039;Add Permissions -- Share With&#039;&#039;&#039; button.&lt;br /&gt;
#Fill in the form and double check that you have the right user and check that you have allowed them to write in the given directory.&lt;br /&gt;
#At the end, before you create the new permission rule, the form should look like below&lt;/div&gt;</summary>
		<author><name>Jgutierrez6</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Arthor_Documentation_for_Future_Developer&amp;diff=16702</id>
		<title>Arthor Documentation for Future Developer</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Arthor_Documentation_for_Future_Developer&amp;diff=16702"/>
		<updated>2025-05-06T20:50:23Z</updated>

		<summary type="html">&lt;p&gt;Jgutierrez6: /* Active Arthor Instances */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
[https://www.nextmovesoftware.com/downloads/arthor/documentation/Arthor.pdf Here is the link to Arthor&#039;s manual]&lt;br /&gt;
* Username: ucsf@nextmovesoftware.com&lt;br /&gt;
* Password: &amp;lt;Ask jjiteam@googlegroups.com&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Arthor configurations and the frontend files are consolidated in &#039;&#039;&#039;/nfs/soft2/arthor_configs/&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;/nfs/soft2/arthor_configs/start_arthor_script.sh&#039;&#039;&#039; can start/restart Arthor instances on respective machines.&lt;br /&gt;
&lt;br /&gt;
Launch the script to see the options available.&lt;br /&gt;
&lt;br /&gt;
== How To Download Arthor ==&lt;br /&gt;
# Ssh to nfs-soft2 and become root. Prepare directory&lt;br /&gt;
#: &amp;lt;source&amp;gt; mkdir /export/soft2/arthor_configs/arthor-&amp;lt;version&amp;gt; &amp;amp;&amp;amp; cd /export/soft2/arthor_configs/arthor-&amp;lt;version&amp;gt; &amp;lt;/source&amp;gt;&lt;br /&gt;
# [https://www.nextmovesoftware.com/downloads/arthor/ Download Software with this link]&lt;br /&gt;
#* Username: ucsf@nextmovesoftware.com&lt;br /&gt;
#* Password: &amp;lt;Ask jjiteam@googlegroups.com&amp;gt;&lt;br /&gt;
# Go to releases. Look for &#039;&#039;&#039; smallworld-java-&amp;lt;version&amp;gt;.tar.gz &#039;&#039;&#039; and copy the link address.&lt;br /&gt;
# Download using wget&lt;br /&gt;
#: &amp;lt;source&amp;gt; wget --user ucsf@nextmovesoftware.com --password &amp;lt;Ask jjiteam@googlegroups.com&amp;gt; &amp;lt;link address&amp;gt; &amp;lt;/source&amp;gt;&lt;br /&gt;
# Decompress the file&lt;br /&gt;
#* &amp;lt;source&amp;gt; tar -xvf &amp;lt;file_name&amp;gt; &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How To Launch Arthor For The First Time ==&lt;br /&gt;
=== Prepare Files and Directories ===&lt;br /&gt;
# Ssh to nfs-exc and become root&lt;br /&gt;
# Open a port in the firewall&lt;br /&gt;
#: &amp;lt;source&amp;gt;firewall-cmd --permanent --add-port=&amp;lt;port_number&amp;gt;/tcp &lt;br /&gt;
firewall-cmd --reload&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
# Go to Arthor Config directory&lt;br /&gt;
#: &amp;lt;source&amp;gt;cd /export/soft2/arthor_configs/arthor-&amp;lt;latest_version&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
# Create an Arthor config file &lt;br /&gt;
#: &amp;lt;source&amp;gt;vim &amp;lt;name_of_file&amp;gt;.cfg&amp;lt;/source&amp;gt;&lt;br /&gt;
#* Add these lines in the file. Check the manual for more options.&lt;br /&gt;
#: &amp;lt;source&amp;gt;&lt;br /&gt;
DataDir=/local2/public_arthor&lt;br /&gt;
MaxConcurrentSearches=6&lt;br /&gt;
MaxThreadsPerSearch=8&lt;br /&gt;
AutomaticIndex=false&lt;br /&gt;
AsyncHitCountMax=20000&lt;br /&gt;
Depiction=./depict/bot/svg?w=%w&amp;amp;h=%h&amp;amp;svgunits=px&amp;amp;smi=%s&amp;amp;zoom=0.8&amp;amp;sma=%m&amp;amp;smalim=1&lt;br /&gt;
Resolver=https://sw.docking.org/util/smi2mol?smi=%s&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
=== Start Arthor Instance ===&lt;br /&gt;
# Now ssh into a machine you wish to run an Arthor instance on and become root&lt;br /&gt;
# Change your shell to bash if you havn&#039;t already&lt;br /&gt;
#: &amp;lt;source&amp;gt;bash&amp;lt;/source&amp;gt;&lt;br /&gt;
# Create a screen&lt;br /&gt;
#: &amp;lt;source&amp;gt;screen -S &amp;lt;screen_name&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
# Prepare Arthor Config Path&lt;br /&gt;
#: &amp;lt;source&amp;gt;export ARTHOR_CONFIG=&amp;quot;/nfs/soft2/arthor_configs/arthor-&amp;lt;version&amp;gt;/&amp;lt;name_of_config_file&amp;gt;.cfg&amp;quot;&amp;lt;/source&amp;gt;&lt;br /&gt;
# Launch java&lt;br /&gt;
#: &amp;lt;source&amp;gt;java -jar -Dserver.port=&amp;lt;port_number&amp;gt; /nfs/soft2/arthor_configs/arthor-&amp;lt;version&amp;gt;/arthor-server-&amp;lt;version&amp;gt;.war&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Configuration Details ===&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;DataDir&#039;&#039;&#039;: This is the directory where the Arthor data files live.  Location where the index files will be created and loaded from.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;MaxConcurrentSearches&#039;&#039;&#039;: Controls the maximum number of searches that can be run concurrently by setting the database pool size. When switching between a large number of databases it can be useful to have a larger pool size, the only trade off is keeping file pointers open.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;MaxThreadsPerSearch&#039;&#039;&#039;: The number of threads to use for both ATDB and ATFP searches&lt;br /&gt;
&lt;br /&gt;
*Set &#039;&#039;&#039;AutomaticIndex&#039;&#039;&#039; to false if you don&#039;t want new smiles files added to the data directory to be indexed automatically&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;AsyncHitCountMax&#039;&#039;&#039;: The upper-bound for the number of hits to retrieve in background searches.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Resolver&#039;&#039;&#039;: Using Smallworld API, allows input box to take in a SMILE format and automatically draw on the board.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Check Arthor manual for more configuration options&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== How to Build Arthor Databases==&lt;br /&gt;
We can build Arthor Databases anywhere. Consolidate smiles into one directory so you can index them all one by one.&lt;br /&gt;
&lt;br /&gt;
Just use the script located at &#039;&#039;&#039;/nfs/home/jjg/scripts/arthor_index_script.sh&#039;&#039;&#039; at the directory where you stored the smiles.&lt;br /&gt;
&lt;br /&gt;
Here is the content of the script:&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
target=&amp;quot;*.smi&amp;quot;&lt;br /&gt;
threads=&#039;48&#039;&lt;br /&gt;
version=&amp;quot;3.6.1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
export ARTHOR_DIR=/nfs/soft2/arthor_configs/arthor-$version/arthor-$version-centos8/&lt;br /&gt;
export PATH=$ARTHOR_DIR/bin/:$PATH&lt;br /&gt;
&lt;br /&gt;
for j in $target&lt;br /&gt;
do&lt;br /&gt;
        echo &#039;smi2atdb -v -r -j &#039;$threads&#039; -p &#039;$j&#039; &#039;${j}&#039;.atdb |&amp;amp; tee -a &#039;${j}&#039;_log&#039;&lt;br /&gt;
        time smi2atdb -v -r -j $threads -p $j ${j}.atdb |&amp;amp; tee -a ${j}_log&lt;br /&gt;
	echo &#039;smi2atfp -j &#039;$threads&#039; -p &#039;$j&#039; &#039;${j}.atfp&#039; |&amp;amp; tee -a &#039;${j}&#039;_log&#039;&lt;br /&gt;
        time smi2atfp -j $threads -p $j ${j}.atfp |&amp;amp; tee -a ${j}_log&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
for i in $target*atdb&lt;br /&gt;
do&lt;br /&gt;
	echo &#039;atdb2fp -j &#039;$threads&#039; &#039;$i&lt;br /&gt;
        time atdb2fp -j $threads $i&lt;br /&gt;
	chmod 744 $i.fp&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Command Details ===&lt;br /&gt;
&#039;&#039;&#039;smi2atdb&#039;&#039;&#039; creates the atdb files needed for Substructure searching.&lt;br /&gt;
*&#039;&#039;&#039;-v&#039;&#039;&#039; verbose&lt;br /&gt;
*&#039;&#039;&#039;-r&#039;&#039;&#039; Compute and store ring size information in the index allowing ring size (3-10) expressions ([r6] and [Z5])&lt;br /&gt;
*&#039;&#039;&#039;-j&#039;&#039;&#039; is the amount of threads to use to index the smiles file&lt;br /&gt;
*&#039;&#039;&#039;-p&#039;&#039;&#039; stores the position of the original file &lt;br /&gt;
&#039;&#039;&#039;atdb2fp&#039;&#039;&#039; makes substructure searching faster&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;smi2atfp&#039;&#039;&#039; creates atfp files for similarity searching&lt;br /&gt;
&lt;br /&gt;
==Setting up Round Table==&lt;br /&gt;
&amp;quot;Round Table allows you to serve and split chemical searches across multiple host machines.  The implementation provides a lightweight proxy that forwards requests to other Arthor host servers that do the actual search.  Communication is done using the existing Web APIs.&lt;br /&gt;
===Setting up Host Server===&lt;br /&gt;
# Ssh to nfs-soft2 and become root&lt;br /&gt;
# Open a port in the firewall&lt;br /&gt;
#: &amp;lt;source&amp;gt;firewall-cmd --permanent --add-port=&amp;lt;port_number&amp;gt;/tcp &lt;br /&gt;
firewall-cmd --reload&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
# Go to Arthor Config Directory&lt;br /&gt;
#: &amp;lt;source&amp;gt;cd /export/soft2/arthor_configs/arthor-&amp;lt;version&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
# Create Round Table Head configuration file. Here is an example:&lt;br /&gt;
# &amp;lt;source&amp;gt;&lt;br /&gt;
[RoundTable]&lt;br /&gt;
RemoteClient=http://10.20.0.41:8008&lt;br /&gt;
RemoteClient=http://10.20.5.19:8008&lt;br /&gt;
Resolver=https://sw.docking.org/util/smi2mol?smi=%s&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
# Now ssh into a machine you wish to run the round table head on and become root&lt;br /&gt;
# Change your shell to bash if you havn&#039;t already&lt;br /&gt;
#: &amp;lt;source&amp;gt;bash&amp;lt;/source&amp;gt;&lt;br /&gt;
# Create a screen&lt;br /&gt;
#: &amp;lt;source&amp;gt;screen -S &amp;lt;screen_name&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
# Prepare Arthor Config Path&lt;br /&gt;
#: &amp;lt;source&amp;gt;export ARTHOR_CONFIG=&amp;quot;/nfs/soft2/arthor_configs/arthor-&amp;lt;version&amp;gt;/&amp;lt;round_table_head&amp;gt;.cfg&amp;quot;&amp;lt;/source&amp;gt;&lt;br /&gt;
# Launch java&lt;br /&gt;
#: &amp;lt;source&amp;gt;java -jar /nfs/soft2/arthor_configs/arthor-&amp;lt;version&amp;gt;/arthor-&amp;lt;version&amp;gt;-centos7/java/arthor.jar --httpPort=&amp;lt;port_number&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Active Arthor Instances ==&lt;br /&gt;
===Public Arthor===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Rocky Linux Machine&lt;br /&gt;
! Port&lt;br /&gt;
! Data Directory&lt;br /&gt;
! Which Arthor&lt;br /&gt;
|-&lt;br /&gt;
| arthor&lt;br /&gt;
| 10.20.200.100:8080&lt;br /&gt;
| /local3/public_arthor/&lt;br /&gt;
| Public Arthor&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Private Arthor===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Rocky Linux Machine&lt;br /&gt;
! Port&lt;br /&gt;
! Data Directory&lt;br /&gt;
! Which Arthor&lt;br /&gt;
|-&lt;br /&gt;
| arthor&lt;br /&gt;
| 10.20.200.100:8081&lt;br /&gt;
| /local3/private_arthor/&lt;br /&gt;
| Private Arthor&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Super Private Arthor===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Rocky Linux Machine&lt;br /&gt;
! Port&lt;br /&gt;
! Data Directory&lt;br /&gt;
! Which Arthor&lt;br /&gt;
|-&lt;br /&gt;
| arthor&lt;br /&gt;
| 10.20.200.100:8082&lt;br /&gt;
| /local3/super_private_arthor/&lt;br /&gt;
| Private Arthor&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Arthor BB, CC, and Covalent===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! CentOS 7 Machine&lt;br /&gt;
! Port&lt;br /&gt;
! Data Directory&lt;br /&gt;
! Which Arthor&lt;br /&gt;
|-&lt;br /&gt;
| epyc-A40&lt;br /&gt;
| 10.20.200.92:8081&lt;br /&gt;
| /local2/arthorbb&lt;br /&gt;
| ArthorBB&lt;br /&gt;
|-&lt;br /&gt;
| epyc-A40&lt;br /&gt;
| 10.20.200.92:8082&lt;br /&gt;
| /local2/arthorcc&lt;br /&gt;
| ArthorCC&lt;br /&gt;
|-&lt;br /&gt;
| epyc-A40&lt;br /&gt;
| 10.20.200.92:8080&lt;br /&gt;
| /local2/arthorcovalent&lt;br /&gt;
| Arthor Covalent&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Customizing Arthor Frontend To Our Needs (Arthor 4.1) ==&lt;br /&gt;
&#039;&#039;&#039;These instructions only worked and compiled for me in the machine called epyc which is running Rocky 8 Linux operating system.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Summary of changes in index.html:&lt;br /&gt;
*Add contact info&lt;br /&gt;
*Advertise TLDR&lt;br /&gt;
*Remove button for Formula&lt;br /&gt;
*Database Information Link&lt;br /&gt;
&lt;br /&gt;
Summary of changes in index.js:&lt;br /&gt;
*Hyperlink the results to zinc20 or cartblanche22&lt;br /&gt;
*Copy SMILES with clipboard button&lt;br /&gt;
&lt;br /&gt;
Summary of changes in sketcher.js:&lt;br /&gt;
*Input box should be updated as user draws molecule&lt;br /&gt;
&lt;br /&gt;
Summary of changes in arthor-swagger.yaml.js:&lt;br /&gt;
*Make API point to &amp;quot;/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Install Prerequisite Packages ===&lt;br /&gt;
# Install Apache Maven&lt;br /&gt;
#* &amp;lt;source&amp;gt;dnf install maven -y&amp;lt;/source&amp;gt;&lt;br /&gt;
# Install Node Package Manager (NPM)&lt;br /&gt;
#* &amp;lt;source&amp;gt;dnf install npm -y&amp;lt;/source&amp;gt;&lt;br /&gt;
# In your home directory, create a new directory to hold the files for the upcoming procedures&lt;br /&gt;
#* &amp;lt;source&amp;gt;mkdir /mnt/nfs/home/jjg/arthor_build_from_source&amp;lt;/source&amp;gt;&lt;br /&gt;
# Download these latest Arthors and store them in &#039;arthor_build_from_source/&#039;. [[Arthor Documentation for Future Developer#How To Download Arthor|Here&#039;s how to download Arthor.]]&lt;br /&gt;
#* arthor-4.1-source.tar.gz&lt;br /&gt;
#* arthor-4.1-centos8.tar.gz&lt;br /&gt;
# Extract contents from the tar.gz files&lt;br /&gt;
#* &amp;lt;source&amp;gt;tar -xvf arthor-4.1-source.tar.gz&lt;br /&gt;
tar -xvf arthor-4.1-centos8.tar.gz&amp;lt;/source&amp;gt;&lt;br /&gt;
# Install Apache Maven Arthor dependencies through this script located at &#039;&#039;&#039;nfs/home/jjg/arthor_build_from_source/mvn_build.sh&#039;&#039;&#039;&lt;br /&gt;
#* &amp;lt;source&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
version=4.1&lt;br /&gt;
&lt;br /&gt;
export ARTHOR_DIR=/mnt/nfs/home/jjg/arthor_build_from_source/arthor-$version/arthor-$version-centos8/java/&lt;br /&gt;
export OS=linux&lt;br /&gt;
export VERSION=$version&lt;br /&gt;
&lt;br /&gt;
mvn install:install-file -Dfile=$ARTHOR_DIR/arthor-jni-${OS}.jar \&lt;br /&gt;
                         -Dpackaging=jar \&lt;br /&gt;
                         -DgeneratePom=true \&lt;br /&gt;
                         -DartifactId=arthor-jni-${OS} \&lt;br /&gt;
                         -DgroupId=com.nextmovesoftware.arthor \&lt;br /&gt;
                         -Dversion=$VERSION&lt;br /&gt;
mvn install:install-file -Dfile=$ARTHOR_DIR/arthor-jni.jar \&lt;br /&gt;
                         -Dpackaging=jar \&lt;br /&gt;
                         -DgeneratePom=true \&lt;br /&gt;
                         -DartifactId=arthor-jni \&lt;br /&gt;
                         -DgroupId=com.nextmovesoftware.arthor \&lt;br /&gt;
                         -Dversion=$VERSION&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Customizing Index.html ===&lt;br /&gt;
Location: /nfs/home/jjg/arthor_build_from_source/arthor-4.1/arthor-4.1-source/server-ui/src/index.html&lt;br /&gt;
&lt;br /&gt;
==== Add contact info and tldr ====&lt;br /&gt;
# vim /nfs/home/jjg/arthor_build_from_source/arthor-4.1/arthor-4.1-source/server-ui/src/index.html&lt;br /&gt;
# Search for &#039;arthor_table_list&#039;&lt;br /&gt;
#: &amp;lt;source&amp;gt;?arthor_table_list&amp;lt;/source&amp;gt;&lt;br /&gt;
# Add contact info, a plug to tldr.docking.org, and database link after the div block where arthor_table_list is inside of. It should look like this&lt;br /&gt;
#: &amp;lt;source lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;opt-box-border&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;label&amp;gt;Databases&amp;lt;/label&amp;gt;&lt;br /&gt;
        &amp;lt;!-- This will be populated by available databases --&amp;gt;&lt;br /&gt;
        &amp;lt;ul id=&amp;quot;arthor_table_list&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;li class=&amp;quot;placeholder&amp;quot;&amp;gt;Please select a search type&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;opt-box-border&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;label&amp;gt;Ask Questions&amp;lt;/label&amp;gt;&lt;br /&gt;
        Email us: jjiteam@googlegroups.com&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;opt-box-border&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;label&amp;gt; To Download 100K+ Results&amp;lt;/label&amp;gt;&lt;br /&gt;
        Sign up for &amp;lt;a href=&amp;quot;http://tldr.docking.org/&amp;quot;&amp;gt;tldr.docking.org&amp;lt;/a&amp;gt; and use arthorbatch&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;opt-box-border&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;label&amp;gt; Database Information&amp;lt;/label&amp;gt;&lt;br /&gt;
        &amp;lt;a href=&amp;quot;https://wiki.docking.org/index.php?title=Arthor_Databases&amp;quot; target=&amp;quot;_blank&amp;quot;&amp;gt;Database Information Link&amp;lt;/a&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Remove Similarity and Formula Buttons ====&lt;br /&gt;
# vim /mnt/nfs/home/jjg/arthor_build_from_source/arthor-4.1/arthor-4.1-source/server-ui/src/index.html&lt;br /&gt;
# Search for &#039;arthor_search_list&#039;&lt;br /&gt;
#: &amp;lt;source&amp;gt; ?arthor_search_list &amp;lt;/source&amp;gt;&lt;br /&gt;
# Delete and Replace the whole &#039;ul&#039; element block with this&lt;br /&gt;
#: &amp;lt;source lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;li value=&amp;quot;Similarity&amp;quot; onclick=&amp;quot;setSearchType(this)&amp;quot; class=&amp;quot;first&amp;quot;&amp;gt;&lt;br /&gt;
            Similarity&lt;br /&gt;
          &amp;lt;/li&amp;gt;&amp;lt;li value=&amp;quot;Substructure&amp;quot; onclick=&amp;quot;setSearchType(this)&amp;quot;&amp;gt;&lt;br /&gt;
            Substructure&lt;br /&gt;
          &amp;lt;/li&amp;gt;&amp;lt;li value=&amp;quot;SMARTS&amp;quot; onclick=&amp;quot;setSearchType(this)&amp;quot; class=&amp;quot;last&amp;quot;&amp;gt;&lt;br /&gt;
            SMARTS&lt;br /&gt;
          &amp;lt;/li&amp;gt;&lt;br /&gt;
          &amp;lt;!--&amp;lt;li value=&amp;quot;Formula&amp;quot; onclick=&amp;quot;setSearchType(this)&amp;quot; class=&amp;quot;last&amp;quot;&amp;gt;&lt;br /&gt;
            Formula&lt;br /&gt;
          &amp;lt;/li&amp;gt;--&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Customize Index.js ===&lt;br /&gt;
==== Conditional Hyperlinks ====&lt;br /&gt;
Location /mnt/nfs/home/jjg/arthor_build_from_source/arthor-4.1-source/server-ui/src/index.js&lt;br /&gt;
&lt;br /&gt;
# Add the zinc20 hyperlink to the Arthor results. Search for this&lt;br /&gt;
#: &amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
$info.append($(&amp;quot;&amp;lt;tr&amp;gt;&amp;quot;).append($(&#039;&amp;lt;td class=&amp;quot;identifier&amp;quot;&amp;gt;&#039;).append(id)));&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
# Delete the contents of the whole else block and replace it with this&lt;br /&gt;
#: &amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
        if (id.substring(0, 6) == &amp;quot;ZINC00&amp;quot;) {&lt;br /&gt;
          $info.append(&lt;br /&gt;
            $(&#039;&amp;lt;tr&amp;gt;&#039;).append(&lt;br /&gt;
            $(&#039;&amp;lt;td class=&amp;quot;identifier&amp;quot;&amp;gt;&#039;).append(&amp;quot;&amp;lt;b&amp;gt;&amp;lt;a target=&#039;_blank&#039; href=&#039;https://zinc20.docking.org/substances/&amp;quot;+id+&amp;quot;&#039;&amp;gt;&amp;quot; + id + &amp;quot;&amp;lt;/a&amp;gt;&amp;lt;/b&amp;gt;&amp;quot;)));&lt;br /&gt;
          $info.append(&lt;br /&gt;
            $(&amp;quot;&amp;lt;tr&amp;gt;&amp;quot;).append(&lt;br /&gt;
              $(&amp;quot;&amp;lt;td&amp;gt;&amp;quot;).append(&lt;br /&gt;
                &amp;quot;&amp;lt;span class=&#039;table_name&#039;&amp;gt;&amp;quot; + table_name + &amp;quot;&amp;lt;/span&amp;gt;&amp;quot;,&lt;br /&gt;
              ),&lt;br /&gt;
            ),&lt;br /&gt;
          );&lt;br /&gt;
        } else if (id.substring(0,4) == &amp;quot;ZINC&amp;quot; &amp;amp;&amp;amp; id.substring(4,6) != &amp;quot;00&amp;quot;) {&lt;br /&gt;
          $info.append(&lt;br /&gt;
            $(&#039;&amp;lt;tr&amp;gt;&#039;).append(&lt;br /&gt;
            $(&#039;&amp;lt;td class=&amp;quot;identifier&amp;quot;&amp;gt;&#039;).append(&amp;quot;&amp;lt;b&amp;gt;&amp;lt;a target=&#039;_blank&#039; href=&#039;https://cartblanche22.docking.org/substance/&amp;quot;+id+&amp;quot;&#039;&amp;gt;&amp;quot; + id + &amp;quot;&amp;lt;/a&amp;gt;&amp;lt;/b&amp;gt;&amp;quot;)));&lt;br /&gt;
          $info.append(&lt;br /&gt;
            $(&amp;quot;&amp;lt;tr&amp;gt;&amp;quot;).append(&lt;br /&gt;
              $(&amp;quot;&amp;lt;td&amp;gt;&amp;quot;).append(&lt;br /&gt;
                &amp;quot;&amp;lt;span class=&#039;table_name&#039;&amp;gt;&amp;quot; + table_name + &amp;quot;&amp;lt;/span&amp;gt;&amp;quot;,&lt;br /&gt;
              ),&lt;br /&gt;
            ),&lt;br /&gt;
          );&lt;br /&gt;
        } else {&lt;br /&gt;
          $info.append($(&amp;quot;&amp;lt;tr&amp;gt;&amp;quot;).append($(&#039;&amp;lt;td class=&amp;quot;identifier&amp;quot;&amp;gt;&#039;).append(id)));&lt;br /&gt;
          $info.append(&lt;br /&gt;
            $(&amp;quot;&amp;lt;tr&amp;gt;&amp;quot;).append(&lt;br /&gt;
              $(&amp;quot;&amp;lt;td&amp;gt;&amp;quot;).append(&lt;br /&gt;
                &amp;quot;&amp;lt;span class=&#039;table_name&#039;&amp;gt;&amp;quot; + table_name + &amp;quot;&amp;lt;/span&amp;gt;&amp;quot;,&lt;br /&gt;
              ),&lt;br /&gt;
            ),&lt;br /&gt;
          );&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
==== Copy SMILES Clipboard ====&lt;br /&gt;
# Search this&lt;br /&gt;
#: &amp;lt;source&amp;gt;?parser&amp;lt;/source&amp;gt;&lt;br /&gt;
# At the end of the the try block add this&lt;br /&gt;
#: &amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
        $info.append(&lt;br /&gt;
          $(&#039;&amp;lt;tr&amp;gt;&#039;).append(&lt;br /&gt;
            $(&#039;&amp;lt;td&amp;gt;&#039;).append(&#039;Copy SMILES: &amp;lt;a href=&amp;quot;#&amp;quot; onclick=&amp;quot;navigator.clipboard.writeText(\&#039;&#039; + parser.smi + &#039;\&#039;);&amp;quot;  &amp;gt;&amp;lt;i class=&amp;quot;fa fa-clipboard&amp;quot; aria-hidden=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;&amp;lt;/a&amp;gt;&#039;)));&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
# The whole try and catch block should look like this&lt;br /&gt;
#: &amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
try {&lt;br /&gt;
      var parser = new SmiJs.Parser(data);&lt;br /&gt;
      if (parser.parse()) {&lt;br /&gt;
        $info.append(&lt;br /&gt;
          $(&#039;&amp;lt;tr&amp;gt;&#039;).append(&lt;br /&gt;
            $(&#039;&amp;lt;td&amp;gt;&#039;).append(parser.mf(true))));&lt;br /&gt;
        $info.append(&lt;br /&gt;
                $(&#039;&amp;lt;tr&amp;gt;&#039;).append(&lt;br /&gt;
                  $(&#039;&amp;lt;td&amp;gt;&#039;).append(parser.mw())));&lt;br /&gt;
        $info.append(&lt;br /&gt;
          $(&#039;&amp;lt;tr&amp;gt;&#039;).append(&lt;br /&gt;
            $(&#039;&amp;lt;td&amp;gt;&#039;).append(&#039;Copy SMILES: &amp;lt;a href=&amp;quot;#&amp;quot; onclick=&amp;quot;navigator.clipboard.writeText(\&#039;&#039; + parser.smi + &#039;\&#039;);&amp;quot;  &amp;gt;&amp;lt;i class=&amp;quot;fa fa-clipboard&amp;quot; aria-hidden=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;&amp;lt;/a&amp;gt;&#039;)));&lt;br /&gt;
      }&lt;br /&gt;
    } catch(err) {&lt;br /&gt;
      console.log(err);&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Customize Sketcher.js ===&lt;br /&gt;
Location: /mnt/nfs/home/jjg/arthor_build_from_source/arthor-4.1-source/server-ui/src/sketcher.js&lt;br /&gt;
&lt;br /&gt;
==== Input Box Updates as User Draws ====&lt;br /&gt;
#vim /mnt/nfs/home/jjg/arthor_build_from_source/arthor-4.1-source/server-ui/src/sketcher.js&lt;br /&gt;
#Search for this line &amp;quot;var smiles = event.src.smiles();&amp;quot;&lt;br /&gt;
#* &amp;lt;source&amp;gt;?var smiles = event.src.smiles();&amp;lt;/source&amp;gt;&lt;br /&gt;
#Add this new line below it&lt;br /&gt;
#* &amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;$(&#039;#ar_text_input&#039;).val(smiles);&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Customize arthor-swagger.yaml ===&lt;br /&gt;
Location: /mnt/nfs/home/jjg/arthor_build_from_source/arthor-4.1/arthor-4.1-source/server/src/main/webapp/WEB-INF/static/swagger/arthor-swagger.yaml&lt;br /&gt;
&lt;br /&gt;
==== Change URL Base Path for API Call ====&lt;br /&gt;
# vim /mnt/nfs/home/jjg/arthor_build_from_source/arthor-4.1/arthor-4.1-source/server/src/main/webapp/WEB-INF/static/swagger/arthor-swagger.yaml&lt;br /&gt;
# Search for &amp;quot;servers&amp;quot;&lt;br /&gt;
#* &amp;lt;source&amp;gt;?basePath&amp;lt;/source&amp;gt;&lt;br /&gt;
# Remove &amp;quot;arthor&amp;quot; and keep argument as &amp;quot;/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Compile/Minify Code through NPM ===&lt;br /&gt;
# Install NPM packages and Minify Code&lt;br /&gt;
#* &amp;lt;source&amp;gt;&lt;br /&gt;
cd /nfs/home/jjg/arthor_build_from_source/arthor-4.1/arthor-4.1-source/server-ui&lt;br /&gt;
npm install&lt;br /&gt;
npx webpack-dev-server&lt;br /&gt;
npx webpack --mode=production&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
# If the npx commands don&#039;t work, try updating node and npm version to the latest one.&lt;br /&gt;
# Build the war file&lt;br /&gt;
#* &amp;lt;source&amp;gt;&lt;br /&gt;
cd /nfs/home/jjg/arthor_build_from_source/arthor-4.1/arthor-4.1-source/server&lt;br /&gt;
mvn install -Pbootable&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
# If it works, then the path to new war file is at /mnt/nfs/home/jjg/arthor_build_from_source/arthor-4.1/arthor-4.1-source/server/target/arthor-server-4.1.war&lt;br /&gt;
&lt;br /&gt;
== Adding Arthor to Systemd (example) ==&lt;br /&gt;
# Create service files&lt;br /&gt;
#: &amp;lt;source&amp;gt;&lt;br /&gt;
touch /etc/systemd/system/arthor.service&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
# Add this code block in the service file&lt;br /&gt;
#: &amp;lt;source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Arthor Public Instance&lt;br /&gt;
After=network.target&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=exec&lt;br /&gt;
Restart=always&lt;br /&gt;
RestartSec=3&lt;br /&gt;
User=root&lt;br /&gt;
ExecStart=/usr/bin/bash /nfs/soft2/arthor_configs/start_arthor_service.sh -arthor&lt;br /&gt;
ExecStop=/bin/kill -15 $MAINPID&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
# Change &amp;quot;ExecStart&amp;quot; to other Arthor Instances&lt;br /&gt;
&lt;br /&gt;
== Restarting Arthor Instance(s) Instructions ==&lt;br /&gt;
=== Public, Private Arthor, and Super Private Arthor ===&lt;br /&gt;
# ssh to &amp;quot;arthor&amp;quot; server and run&lt;br /&gt;
#: &amp;lt;source&amp;gt;&lt;br /&gt;
systemctl &amp;lt;start|stop|restart&amp;gt; &amp;lt;arthor|arthorp|arthorc&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== ArthorBB, ArthorCC, and ArthorCovalent ===&lt;br /&gt;
# ssh to &amp;quot;epyc-a40&amp;quot; server and run&lt;br /&gt;
#: &amp;lt;source&amp;gt;&lt;br /&gt;
systemctl &amp;lt;start|stop|restart&amp;gt; &amp;lt;arthorbb|arthorcc|arthorcovalent&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Arthor]]&lt;br /&gt;
[[Category:Developer]]&lt;/div&gt;</summary>
		<author><name>Jgutierrez6</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Cluster_Networking_Quirks&amp;diff=16701</id>
		<title>Cluster Networking Quirks</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Cluster_Networking_Quirks&amp;diff=16701"/>
		<updated>2025-05-05T22:58:58Z</updated>

		<summary type="html">&lt;p&gt;Jgutierrez6: Created page with &amp;quot;== Introduction == This is a wiki page detailing weird network quirks the lab has encountered over the years.  == List of events == *May 5, 2025 *: &amp;lt;source&amp;gt; Vav and Gimel (both are in the 169.230.26.0 subnet) had a problem contacting the 169.230.75.0 subnet. Both of these machines had similar ip route rules, displayed below.  #vav 169.230.0.0/16 dev enp4s0 proto kernel scope link src 169.230.26.169 metric 100 #gimel 169.230.0.0/16 dev eth4  proto kernel  scope link  src...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
This is a wiki page detailing weird network quirks the lab has encountered over the years.&lt;br /&gt;
&lt;br /&gt;
== List of events ==&lt;br /&gt;
*May 5, 2025&lt;br /&gt;
*: &amp;lt;source&amp;gt;&lt;br /&gt;
Vav and Gimel (both are in the 169.230.26.0 subnet) had a problem contacting the 169.230.75.0 subnet.&lt;br /&gt;
Both of these machines had similar ip route rules, displayed below.&lt;br /&gt;
&lt;br /&gt;
#vav&lt;br /&gt;
169.230.0.0/16 dev enp4s0 proto kernel scope link src 169.230.26.169 metric 100&lt;br /&gt;
#gimel&lt;br /&gt;
169.230.0.0/16 dev eth4  proto kernel  scope link  src 169.230.26.166&lt;br /&gt;
&lt;br /&gt;
The rules above tell us that any IP addresses in this range 169.230.1.0 ~ 169.230.255.254 should be visible but they weren&#039;t.&lt;br /&gt;
&lt;br /&gt;
But for some reason, if I narrow down the subnet to 255.255.255.0 then we&#039;re able to ping the 169.230.75.0 subnet. So here are the new rules that allow connection to happen.&lt;br /&gt;
&lt;br /&gt;
#vav&lt;br /&gt;
169.230.26.0/24 dev enp4s0 proto kernel scope link src 169.230.26.169 metric 100&lt;br /&gt;
#gimel&lt;br /&gt;
169.230.26.0/24 dev eth4  proto kernel  scope link  src 169.230.26.166&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jgutierrez6</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Globus_Curator%27s_Guide&amp;diff=16646</id>
		<title>Globus Curator&#039;s Guide</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Globus_Curator%27s_Guide&amp;diff=16646"/>
		<updated>2025-03-19T22:37:29Z</updated>

		<summary type="html">&lt;p&gt;Jgutierrez6: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Here will be the instructions on how to maintain globus.&lt;br /&gt;
&lt;br /&gt;
=== Notes ===&lt;br /&gt;
*For any restrict path&#039;s to work in the Guest Collections, the main collection needs to have either the same or broader path to be allowed.&lt;br /&gt;
*The main collection is currently private. Only the admins can have access to it.&lt;br /&gt;
&lt;br /&gt;
== Updating Path Permissions for the Guest Collection ==&lt;br /&gt;
#Identify the real paths of the permission denied paths. Globus doesn&#039;t follow symbolic links&lt;br /&gt;
#:&amp;lt;source&amp;gt;readlink -f &amp;lt;symlink&amp;gt; &amp;lt;/source&amp;gt;&lt;br /&gt;
# Become root in epyc&lt;br /&gt;
##Go to /root/globus&lt;br /&gt;
#:&amp;lt;source&amp;gt;cd /root/globus&amp;lt;/source&amp;gt;&lt;br /&gt;
#Insert and save the real paths at the end of this file (check commas for syntax or you&#039;ll get an error):&lt;br /&gt;
#:&amp;lt;source&amp;gt;vim storage_gateway_path_restriction.json&amp;lt;/source&amp;gt;&lt;br /&gt;
##Here is an example of what it should look like&lt;br /&gt;
##:&amp;lt;source&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;DATA_TYPE&amp;quot;: &amp;quot;path_restrictions#1.0.0&amp;quot;,&lt;br /&gt;
    &amp;quot;none&amp;quot;: [&amp;quot;/&amp;quot;],&lt;br /&gt;
    &amp;quot;read&amp;quot;: [&lt;br /&gt;
	    &amp;quot;/nfs/ex3/published&amp;quot;,&lt;br /&gt;
	    &amp;quot;/nfs/exe/work/jji/2dexport&amp;quot;,&lt;br /&gt;
	    &amp;quot;/nfs/exe/work/jji/3d-zinc20&amp;quot;,&lt;br /&gt;
	    &amp;quot;/nfs/exl/zinc-22a&amp;quot;,&lt;br /&gt;
	    &amp;quot;/nfs/exl/zinc-22b&amp;quot;,&lt;br /&gt;
	    &amp;quot;/nfs/exl/zinc-22c&amp;quot;,&lt;br /&gt;
	    &amp;quot;/nfs/exc/zinc-22n&amp;quot;&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;read_write&amp;quot;:[&lt;br /&gt;
	    &amp;quot;/nfs/mammoth/idg-images/newAmisData&amp;quot;&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
#Create a session token with globus. (Cluster 2 Password, ucsfbks)&lt;br /&gt;
#:&amp;lt;source&amp;gt;globus-connect-server session update ucsfbks@globusid.org&amp;lt;/source&amp;gt;&lt;br /&gt;
#Follow instructions given by globus and it should tell you that it was successful&lt;br /&gt;
#In the same directory, run this command to update&lt;br /&gt;
#:&amp;lt;source&amp;gt;bash globus-storage-gateway.sh update&amp;lt;/source&amp;gt;&lt;br /&gt;
#This is the successful message&lt;br /&gt;
#:&amp;lt;source&amp;gt;Message: Updated Storage Gateway aa731fb1-b27a-49e6-aaeb-2d2cc252f779&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Updating Path Permissions for the Main Collection ==&lt;br /&gt;
#Identify the real paths of the permission denied paths. Globus doesn&#039;t follow symbolic links&lt;br /&gt;
#:&amp;lt;source&amp;gt;readlink -f &amp;lt;symlink&amp;gt; &amp;lt;/source&amp;gt;&lt;br /&gt;
# Become root in epyc&lt;br /&gt;
##Go to /root/globus&lt;br /&gt;
#:&amp;lt;source&amp;gt;cd /root/globus&amp;lt;/source&amp;gt;&lt;br /&gt;
#Insert and save the real paths at the end of this file (check commas for syntax or you&#039;ll get an error):&lt;br /&gt;
#:&amp;lt;source&amp;gt;vim path_restrictions.json&amp;lt;/source&amp;gt;&lt;br /&gt;
##Here is an example of what it should look like&lt;br /&gt;
##:&amp;lt;source&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;DATA_TYPE&amp;quot;: &amp;quot;path_restrictions#1.0.0&amp;quot;,&lt;br /&gt;
    &amp;quot;read&amp;quot;: [&lt;br /&gt;
        &amp;quot;/&amp;quot;&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;read_write&amp;quot;: [&lt;br /&gt;
        &amp;quot;/nfs/mammoth/idg-images/newAmisData/&amp;quot;&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
#Create a session token with globus. (Cluster 2 Password, ucsfbks)&lt;br /&gt;
#:&amp;lt;source&amp;gt;globus-connect-server session update ucsfbks@globusid.org&amp;lt;/source&amp;gt;&lt;br /&gt;
#* If above doesn&#039;t work, run below and follow instructions. (Cluster 2 Password, ucsfbks)&lt;br /&gt;
#:: &amp;lt;source&amp;gt; globus-connect-server login localhost &amp;lt;/source&amp;gt;&lt;br /&gt;
#Follow instructions given by globus and it should tell you that it was successful&lt;br /&gt;
#In the same directory, run this command to update&lt;br /&gt;
#:&amp;lt;source&amp;gt;globus-connect-server collection update --sharing-restrict-paths file:path_restrictions.json 2e1e1781-6d8a-440a-8604-7100d9c65c90&amp;lt;/source&amp;gt;&lt;br /&gt;
#This is the successful message&lt;br /&gt;
#:&amp;lt;source&amp;gt;code: success&amp;lt;/source&amp;gt;&lt;br /&gt;
#Lastly, in the globus web GUI, you need to allow a specific user or group to access the new path in the permissions tab located in the collection overview.&lt;/div&gt;</summary>
		<author><name>Jgutierrez6</name></author>
	</entry>
</feed>