> For the complete documentation index, see [llms.txt](https://docs.virtual-flow.org/documentation-vf1/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.virtual-flow.org/documentation-vf1/principles-and-theory/directory-structure.md).

# Directory Structure

### General

The root folder of VirtualFlow contains the following folders:

* `input-files/`
* `output-files/`
* `workflow/`
* `tools/`

The following image shows the four folders within the VFLP root directory and their relationships:

![Shown are the four first-level folders within the root folder of the VirtualFlow root directory and their relationships. Arrows indicate flow of information and/or directives. During the set-up of the workflow by the user, the tools folder is prepared and configured. After that, the other workflow folders are prepared automatically with the command vf\_prepare\_folders.sh. This will in particular prepare the workflow folder. The workflow folder is used by VirtualFlow to run and organize the workflow, which actually processes the input-files (including the ligand database) and generates the output database.](/files/-LVFobFlnczS2ue2ifnL)

### The `input-files` Folder

The `input-files` folder contains files which are not needed by VirtualFlow directly, but by the third-party programs which are used in the workflow which are processing all the ligands. E.g. in the case of VFVS, it will contain the configuration files for the docking programs.

The only exception is the input ligand database, which can be stored in any location (even outside the VirtualFlow root folder) and can be specified in the control file. The reason for this circumstance is that the input ligand database might not only be used for one particular workflow, but multiple instances. Since ligand databases for VirtualFlow can be very large, it can be practical to store it only in a single centralized location.

### The `output-files` Folder

The `output-files` folder is generally intended for all the files which are produced by the third-party programs which are applied in the workflow.&#x20;

It contains two sub-folders:

* `output-files/incomplete`
* `output-files/complete`

The `incomplete` folder contains partially completed ligand collections, which need to be completed by future jobs. The `complete` folder contains the  fully completed ligand collections.&#x20;

For VFLP the `output-files` folder would contain the prepared ligands, in the case of VFVS it would contain the docking results and related output files.&#x20;

### The `workflow` Folder

The `workflow` folder contains all the intermediate and runtime files which are needed and generated by VirtualFlow itself. The third-party programs which are used by the workflow only use the files in the `input-files` folder (and the input ligand database which might be stored elsewhere).&#x20;

### The `tools` Folder

The `tools` folder is not used by VirtualFlow or the third-party programs, but by the user. It is used for setting up, starting, partially controlling, and monitoring the workflow.

The `tools` folder is also the primary working directory of VirtualFlow, meaning that all VirtualFlow user commands (the commands starting with `vf_`) have to be run from this folder. Also the batch jobs which are run by VirtualFlow use the `tools` folder as their working directory.
