-
Notifications
You must be signed in to change notification settings - Fork 2
/
align-it.nf
66 lines (51 loc) · 1.98 KB
/
align-it.nf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
/* Copyright 2022 Informatics Matters Ltd.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
/** Workflow for pharmacophore based alignment using Silicos-it's align-it tool.
See http://silicos-it.be.s3-website-eu-west-1.amazonaws.com/software/align-it/1.0.4/align-it.html for more details
on align-it.
This workflow is NOT performance optimised as the pharmacophores are generated as part of the search.
*/
nextflow.enable.dsl=2
params.query = 'ligand.mol' // or can be a .phar file
params.input = 'conformers.sdf'
params.output_scores = 'results.tab'
params.output_sdf = 'results.sdf'
params.chunk_size = 5000
params.publish_dir = './'
query = file(params.query)
inputs = file(params.input)
// includes
include { split_sdf } from './nf-processes/file/split_sdf.nf'
include { search_phar } from './nf-processes/silicos-it/search_phar.nf'
include { concatenate_files as concat_sdf } from './nf-processes/file/concatenate_files.nf' addParams(
outputfile: params.output_sdf,
glob: 'aligned_*.sdf')
include { concatenate_files as concat_scores } from './nf-processes/file/concatenate_files.nf' addParams(
outputfile: params.output_scores,
glob: 'aligned_*.tab')
// workflows
workflow align_it {
take:
query_mol_or_phar
inputs_sdf
main:
split_sdf(inputs_sdf)
search_phar(split_sdf.out.flatten(), query_mol_or_phar)
concat_sdf(search_phar.out[0].collect())
concat_scores(search_phar.out[1].collect())
emit:
concat_sdf.out
concat_scores.out
}
workflow {
align_it(query, inputs)
}