iFISH probe design
View the Project on GitHub
View the Project on PyPI
ggirelli/iFISH-probe-design (2.0.4)
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 mkdbThis 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 dbchkThis script checks a database for proper formatting and compatibility with the ifpd package.
ifpd query probeThis script queries a database to design a single iFISH probe, using the algorithm explained in the corresponding page.
The minimum input comprises (in order):
database: the path to the database folder.chrom: the chromosome (or database feature) to be queried.outputDirectory: the path to the query output folder.Some optional parameters, used as detailed in the algorithms page, are also available.
--region start end). If skipped, or if start and end coincide, the whole feature is queried.--order option allows to provide the features priority order, by providing a space-separated list of features (at least 2). For example: --order homogeneity size centrality.--filter-thr option specifies the fraction used to define the range in the filtering step (F). This should be a fraction (from 0 to 1), and defaults to 0.1.--n-oligo to specify the number of oligos desired in a probe. The default is 48.--max-probes to specify the maximum number of probe candidates you want as output. The default (-1) outputs all candidates.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 setThis script queries a database to design a spotting iFISH probe, using the algorithm explained in the corresponding page.
The minimum input comprises (in order):
database: the path to the database folder.chrom: the chromosome (or database feature) to be queried.outputDirectory: the path to the query output folder.nProbes: the number of desired probes for the spotting design.Some optional parameters, used as detailed in the algorithms page, are also available.
--region start end). If skipped, or if start and end coincide, the whole feature is queried.--order option allows to provide the features priority order, by providing a space-separated list of features (at least 2). For example: --order homogeneity size centrality.--filter-thr option specifies the fraction used to define the range in the filtering step (F). This should be a fraction (from 0 to 1), and defaults to 0.1.--n-oligo to specify the number of oligos desired in a probe. The default is 48.--max-sets to specify the maximum number of probe candidates you want as output. The default (-1) outputs all candidates.-t to specify a number of threads to use, for parallelized computation.--no-net to use the end of the last oligo in a chromosome as chromosome size.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 serveThis 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.