# Project Connector

The platform GUI provides the **Project Connector** which allows data to be linked automatically between projects. This creates a **one-way dynamic link** for files and samples from source to destination, meaning that additions and deletions of data in the source project also affect the destination project. This differs from [copying](https://help.ica.illumina.com/project/p-data#copy-data) or [moving](https://help.ica.illumina.com/project/p-data#move-data) which create editable copies of the data.

* **Copy** creates a copy of the file or folder. The data is decoupled and can be edited and deleted.
* **Move** deletes the data on the source destination and moves it to target destination from where it can be edited and deleted. Once deleted, the information ins lost.
* **Manual** **linking** creates a **snapshot** link to files and folder from the source destination. **Changes** to those files at the source are **not propagated** after they have been linked. You can not delete the data, but you can unlink it. to remove it from your destination project.
* **Project Connectors** creates a dynamic link to the source project. All **data which already exists** in the source project before the project connector is created, **is ignored**. All **new data** which is added once the project connector is created, **is automatically propagated to the destination** project. Because this is a dynamic link, **changes to the new data are also propagated**. If there is data propagated which you do not need in the destination project, you can unlink it from there.

<table><thead><tr><th width="114.34765625"></th><th width="84.3203125" align="center">one-way</th><th width="77.90234375" align="center">files</th><th width="97.09765625" align="center">folders</th><th width="124.50390625" align="center">erases source data</th><th width="128.41015625" align="center">propagate source edits</th><th align="center">editable on destination</th></tr></thead><tbody><tr><td>copy</td><td align="center">x</td><td align="center">x</td><td align="center">x</td><td align="center"></td><td align="center"></td><td align="center">x</td></tr><tr><td>move</td><td align="center">x</td><td align="center">x</td><td align="center">x</td><td align="center">x</td><td align="center"></td><td align="center">x</td></tr><tr><td>manual link</td><td align="center">x</td><td align="center">x</td><td align="center">x</td><td align="center"></td><td align="center"></td><td align="center"></td></tr><tr><td>project connector</td><td align="center">x</td><td align="center">x</td><td align="center"></td><td align="center"></td><td align="center">x</td><td align="center"></td></tr></tbody></table>

{% embed url="<https://www.youtube.com/watch?v=tRWdRCWaPU4&ab_channel=Illumina>" %}
Project Connector Setup
{% endembed %}

## Prepare Source Project

1. Select the *source* project (project containing the original data which will be linked to the target project) from the Projects page (**Projects > your\_source\_project**).
2. Select **Project Settings > Details**.
3. Select **Edit**
4. Under **Data Sharing** ensure the value is set to **Yes**
5. Select **Save**

## Creating a New Project Connector

1. Select the *destination* project (the project to which data from the source project will be linked) from the Projects page (**Projects > your\_destination\_project**).
2. From the projects menu, select **Project Settings > Connectivity > Project Connector**
3. Select **+ Create** and complete the necessary fields.
   * Check the box next to **Active** to ensure the connector will be active.
   * **Name** (*required*) — Provide a unique name for the connector.
   * **Type** (*required*) — Select the data type that will be linked (either **File** or **Sample**)
   * **Source Project** - Select the source project where data will be linked from.
   * **Filter Expression** (*optional*) — Enter an expression to restrict which files will be linked via the connector (see [Filter Expression Examples](#filter-expression-examples) below)
   * **Tags** (*optional*) — Add tags to restrict what data will be linked via the connector. Any data in the source project with matching tags will be linked to the destination project.

### Filter Expression Examples

The examples below will restrict linking **Files** based on the **Format** field.

* Only Files with Format of FASTQ will be linked:

  `[?($.details.format.code == 'FASTQ')]`
* Only Files with Format of VCF will be linked:

  `[?($.details.format.code == 'VCF')]`

The examples below will restrict linked **Files** based on a filenames.

* Exact match to 'Sample-1\_S1\_L001\_R1\_001.fastq.gz':

  `[?($.details.name == 'Sample-1_S1_L001_R1_001.fastq.gz')]`
* Ends with '.fastq.gz':

  `[?($.details.name =~ /.*\.fastq.gz/)]`
* Starts with 'Sample-':

  `[?($.details.name =~ /Sample-.*/)]`
* Contains '\_R1\_':

  `[?($.details.name =~ /.*_R1_.*/)]`

The examples below will restrict linking **Samples** based on User Tags and Sample name, respectively.

* Only Samples with the User Tag 'WGS-Project-1'

  `[?('WGS-Project-1' in $.tags.userTags)]`
* Link a Sample with the name 'BSSH\_Sample\_1':

  `[?($.name == 'BSSH_Sample_1')]`


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://help.ica.illumina.com/project/p-connectivity/project-connector.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
