ifpd

iFISH probe design

 View the Project on GitHub
 View the Project on PyPI
ggirelli/iFISH-probe-design (2.0.4)

Content

ifpd scripts

All ifpd commands are accessible via the ifpd keyword. For each command, you can access its help page by using the -h option. Moreover, a selection of examples is available in the corresponding page.

ifpd mkdb

This script takes a BED-like file of four (4) columns (chromosome, start position, end position, and sequence), and generates a database folder in a format compatible with the rest of ifpd’s scripts.

The minimum input comprises the input file path and a name for the new database. We recommend providing also a reference genome label (via --refGenome), which is retained in the database config file for trackability.

As explained in the database page, the input file is expected to respect the UCSC BED format pertaining the indexing of genomic coordinates. If your input file specifies regions with both start and end positions being inclusive, you can use the --increment-chrom-end option to convert it to the appropriate format.

ifpd dbchk

This script checks a database for proper formatting and compatibility with the ifpd package.

ifpd query probe

This script queries a database to design a single iFISH probe, using the algorithm explained in the corresponding page.

The minimum input comprises (in order):

  1. database: the path to the database folder.
  2. chrom: the chromosome (or database feature) to be queried.
  3. outputDirectory: the path to the query output folder.

Some optional parameters, used as detailed in the algorithms page, are also available.

For security reasons, if the specified outputDirectory already exists, the script triggers an AssertError. To force this through, use the -f option. But keep in mind that this will overwrite the specified outputDirectory, deleting its whole content.

Note also that, by default, if the number of oligos in the specified region of interest is lower than the number requested via --n-oligo, the largest probe possible is generated. If a smaller probe would not be useful, use --exact-n-oligo to stop the execution earlier.

ifpd query set

This script queries a database to design a spotting iFISH probe, using the algorithm explained in the corresponding page.

The minimum input comprises (in order):

  1. database: the path to the database folder.
  2. chrom: the chromosome (or database feature) to be queried.
  3. outputDirectory: the path to the query output folder.
  4. nProbes: the number of desired probes for the spotting design.

Some optional parameters, used as detailed in the algorithms page, are also available.

For security reasons, if the specified outputDirectory already exists, the script triggers an AssertError. To force this through, use the -f option. But keep in mind that this will overwrite the specified outputDirectory, deleting its whole content.

Note also that, by default, if the number of oligos in the specified region of interest is lower than the number requested via --n-oligo, the largest probe possible is generated. If a smaller probe would not be useful, use --exact-n-oligo to stop the execution earlier.

ifpd serve

This script can be used to run the ifpd web interface on your own computer. If run without any parameters, it serves the interface at the 0.0.0.0:8080 address. URL and port can be customized using the -u and -p options, respectively.

The interface requires also a static folder (by default created in the package installation path), where databases and queries are stored. It is highly advised to specify a custom static folder path. The structure of the static folder, created when running ifpd serve the first time, is the following:

static_folder
    ┣ db
    ┃  ┣ folder_db1
    ┃  ┣ folder_db2
    ┃  ┣ ...
    ┃  ┗ folder_dbN
    ┗ query
       ┣ folder_query1
       ┣ folder_query2
       ┣ ...
       ┣ folder_queryN
       ┣ query1.config
       ┣ query2.config
       ┣ ...
       ┗ queryN.config

Finally, with the -m option one can specify an email address to contact in case a query crashes or times out.

Additional options like -H, -T and -R are required only for advanced customization. An example of which is available at the iFISH4U repository.