#@UGENE_WORKFLOW #Suppose you have genomes and you want to characterize them. One of the ways to do that is to build a table of what genes are in each genome and what are not there. # #1. Create a local BLAST db of your genome sequence/contigs. One db per one genome. #2. Create a file with sequences of genes you what to explore. This file will be the input file for the workflow. #3. Setup location and name of BLAST db you created for the first genome. #4. Setup output files: report location and output file with annotated (with BLAST) sequence. You might want to delete the "Write Sequence" element if you do not need output sequences. #5. Run the workflow. #5*. Run the workflow on the same input and output files changing BLAST db for each genome that you have. # #As the result you will get the report file. With "Yes" and "No" field. "Yes" answer means that the gene is in the genome. "No" answer MIGHT mean that there is no gene in the genome. It is a good idea to analyze all the "No" sequences using annotated files. Just open a file and find a sequence with a name of a gene that has "No" result. workflow "Gene-by-gene approach for characterization of genomes"{ read-sequence { type:read-sequence; name:"Read Sequence"; url-in { dataset:Dataset; } } write-sequence { type:write-sequence; name:"Write Sequence"; document-format:genbank; url-out:annotated_sequence.gb; } genebygene-report-id { type:genebygene-report-id; name:"Gene-by-gene approach report"; output-file:report.txt; } blast-plus { type:blast-plus; name:"Local BLAST Search"; } .actor-bindings { read-sequence.out-sequence->blast-plus.in-sequence blast-plus.out-annotations->genebygene-report-id.in-data blast-plus.out-annotations->write-sequence.in-sequence } blast-plus.annotations->write-sequence.in-sequence.annotations read-sequence.annotations->write-sequence.in-sequence.annotations read-sequence.sequence->write-sequence.in-sequence.sequence blast-plus.annotations->genebygene-report-id.in-data.gene-ann read-sequence.sequence->genebygene-report-id.in-data.gene-seq read-sequence.sequence->blast-plus.in-sequence.sequence .meta { visual { blast-plus { pos:"-615 -555"; style:ext; bg-color-ext:"0 128 128 64"; in-sequence.angle:180; out-annotations.angle:360; } genebygene-report-id { pos:"-330 -555"; style:ext; bg-color-ext:"0 128 128 64"; in-data.angle:180; } read-sequence { pos:"-825 -555"; style:ext; bg-color-ext:"0 128 128 64"; out-sequence.angle:360; } write-sequence { pos:"-330 -255"; style:ext; bg-color-ext:"0 128 128 64"; in-sequence.angle:180; } blast-plus.out-annotations->genebygene-report-id.in-data { text-pos:"-33 -24"; } blast-plus.out-annotations->write-sequence.in-sequence { text-pos:"-33 -24"; } read-sequence.out-sequence->blast-plus.in-sequence { text-pos:"-27.5 -24"; } } wizard { name:"Gene-by-gene approach for characterization of genomes Wizard"; help-page-id:16122734; auto-run: true; page { id:1; next:2; title:"Input sequence(s)"; parameters-area { read-sequence.url-in { type:datasets; } } } page { id:2; next:3; title:"BLAST search"; parameters-area { group { title:"Local BLAST search parameters"; label-size:120; blast-plus.blast-type { } blast-plus.db-path { } blast-plus.db-name { } blast-plus.e-val { } blast-plus.result-name { } blast-plus.gapped-aln { } blast-plus.tool-path { } blast-plus.blast-output { } blast-plus.type-output { } } group { title:"Additional"; label-size:120; type:hideable; blast-plus.temp-dir { } blast-plus.gap-costs { } blast-plus.match-scores { } } } } page { id:3; title:"Output data"; parameters-area { group { label-size:120; title:"Output data"; write-sequence.url-out { label:"Result file"; } write-sequence.accumulate { label:"Accumulate results"; } } group { label-size:120; title:"Gene by gene approach report"; genebygene-report-id.output-file { label:"Report file"; } } } } } } }