biotite.application.viennarna.RNAalifoldApp

class biotite.application.viennarna.RNAalifoldApp(alignment, temperature=37, bin_path='RNAalifold')[source]

Bases: LocalApp

Predict the consensus secondary structure from a ribonucleic acid alignment using ViennaRNA’s RNAalifold software.

In contrast to RNAfoldApp, the energy function includes a term that includes coevolution information extracted from an alignment in addition to the physical free energy term.

Internally this creates a Popen instance, which handles the execution.

Parameters
alignmentAlignment

An alignment of RNA sequences.

temperatureint, optional

The temperature (°C) to be assumed for the energy parameters.

bin_pathstr, optional

Path of the RNAalifold binary.

add_additional_options(options)

Add additional options for the command line program. These options are put before the arguments automatically determined by the respective LocalApp subclass.

This method is focused on advanced users, who have knowledge on the available options of the command line program and the options already used by the LocalApp subclasses. Ignoring the already used options may result in conflicting CLI arguments and potential unexpected results. It is recommended to use this method only, when the respective LocalApp subclass does not provide a method to set the desired option.

Parameters
optionslist of str

A list of strings representing the command line options.

Notes

In order to see which options the command line execution used, try the get_command() method.

Examples

>>> seq1 = ProteinSequence("BIQTITE")
>>> seq2 = ProteinSequence("TITANITE")
>>> seq3 = ProteinSequence("BISMITE")
>>> seq4 = ProteinSequence("IQLITE")
>>> # Run application without additional arguments
>>> app = ClustalOmegaApp([seq1, seq2, seq3, seq4])
>>> app.start()
>>> app.join()
>>> print(app.get_command())
clustalo --in ...fa --out ...fa --force --output-order=tree-order --seqtype Protein --guidetree-out ...tree
>>> # Run application with additional argument
>>> app = ClustalOmegaApp([seq1, seq2, seq3, seq4])
>>> app.add_additional_options(["--full"])
>>> app.start()
>>> app.join()
>>> print(app.get_command())
clustalo --full --in ...fa --out ...fa --force --output-order=tree-order --seqtype Protein --guidetree-out ...tree
cancel()

Cancel the application when in RUNNING or FINISHED state.

clean_up()

Do clean up work after the application terminates.

PROTECTED: Optionally override when inheriting.

static compute_secondary_structure(alignment, bin_path='RNAalifold')

Predict the secondary structure of a ribonucleic acid sequence using ViennaRNA’s RNAalifold software.

This is a convenience function, that wraps the RNAalifoldApp execution.

Parameters
alignmentAlignment

An alignment of RNA sequences.

bin_pathstr, optional

Path of the RNAalifold binary.

Returns
dotbracketstr

The secondary structure in dot bracket notation.

free_energyfloat

The free energy.

covariance_energyfloat

The energy of the covariance term.

evaluate()

Evaluate application results. Called in join().

PROTECTED: Override when inheriting.

get_app_state()

Get the current app state.

Returns
app_stateAppState

The current app state.

get_base_pairs(sequence_index=None)

Get the base pairs from the suggested secondary structure.

Parameters
sequence_indexint, optional

By default, the base pairs point to positions in the alignment. If sequence_index is set, the returned base pairs point to positions in the given sequence, instead. The sequence is specified as index in the alignment. For example, if the alignment comprises three sequences, sequence_index is in range 0-2.

Returns
base_pairsndarray, shape=(n,2)

Each row corresponds to the positions of the bases in the alignment. If sequence_index is set, the positions correspond to the given sequence.

get_command()

Get the executed command.

Cannot be called until the application has been started.

Returns
commandstr

The executed command.

Examples

>>> seq1 = ProteinSequence("BIQTITE")
>>> seq2 = ProteinSequence("TITANITE")
>>> seq3 = ProteinSequence("BISMITE")
>>> seq4 = ProteinSequence("IQLITE")
>>> app = ClustalOmegaApp([seq1, seq2, seq3, seq4])
>>> app.start()
>>> print(app.get_command())
clustalo --in ...fa --out ...fa --force --output-order=tree-order --seqtype Protein --guidetree-out ...tree
get_consensus_sequence_string()

Get the consensus sequence.

As the consensus may contain gaps, the sequence is returned as string.

Returns
consensusstr

The consensus sequence.

get_covariance_energy()

Get the energy of the artificial covariance term (kcal/mol) of the suggested consensus secondary structure.

Returns
covariance_energyfloat

The energy of the covariance term.

See also

get_free_energy

Notes

The total energy of the secondary structure regarding the minimization objective is the sum of the free energy and the covariance term.

get_dot_bracket()

Get the consensus secondary structure in dot bracket notation.

Returns
dotbracketstr

The secondary structure in dot bracket notation.

get_exit_code()

Get the exit code of the process.

PROTECTED: Do not call from outside.

Returns
codeint

The exit code.

get_free_energy()

Get the free energy (kcal/mol) of the suggested consensus secondary structure.

Returns
free_energyfloat

The free energy.

Notes

The total energy of the secondary structure regarding the minimization objective is the sum of the free energy and the covariance term.

get_process()

Get the Popen instance.

PROTECTED: Do not call from outside.

Returns
processPopen

The Popen instance

get_stderr()

Get the STDERR pipe content of the process.

PROTECTED: Do not call from outside.

Returns
stdoutstr

The standard error.

get_stdout()

Get the STDOUT pipe content of the process.

PROTECTED: Do not call from outside.

Returns
stdoutstr

The standard output.

is_finished()

Check if the application has finished.

PROTECTED: Override when inheriting.

Returns
finishedbool

True of the application has finished, false otherwise

join(timeout=None)

Conclude the application run and set its state to JOINED. This can only be done from the RUNNING or FINISHED state.

If the application is FINISHED the joining process happens immediately, if otherwise the application is RUNNING, this method waits until the application is FINISHED.

Parameters
timeoutfloat, optional

If this parameter is specified, the Application only waits for finishing until this value (in seconds) runs out. After this time is exceeded a TimeoutError is raised and the application is cancelled.

Raises
TimeoutError

If the joining process exceeds the timeout value.

run()

Commence the application run. Called in start().

PROTECTED: Override when inheriting.

set_arguments(arguments)

Set command line arguments for the application run.

PROTECTED: Do not call from outside.

Parameters
argumentslist of str

A list of strings representing the command line options.

set_constraints(pairs=None, paired=None, unpaired=None, downstream=None, upstream=None, enforce=False)

Add constraints of known paired or unpaired bases to the folding algorithm.

Constraints forbid pairs conflicting with the respective constraint.

Parameters
pairsndarray, shape=(n,2), dtype=int, optional

Positions of constrained base pairs.

pairedndarray, shape=(n,), dtype=int or dtype=bool, optional

Positions of bases that are paired with any other base.

unpairedndarray, shape=(n,), dtype=int or dtype=bool, optional

Positions of bases that are unpaired.

downstreamndarray, shape=(n,), dtype=int or dtype=bool, optional

Positions of bases that are paired with any downstream base.

upstreamndarray, shape=(n,), dtype=int or dtype=bool, optional

Positions of bases that are paired with any upstream base.

enforcebool, optional

If set to true, the given constraints are enforced, i.e. a the respective base pairs must form. By default (false), a constraint does only forbid formation of a pair that would conflict with this constraint.

Warning

If a constraint is given for a gap position in the consensus sequence, the software may find no base pairs at all.

set_exec_dir(exec_dir)

Set the directory where the application should be executed. If not set, it will be executed in the working directory at the time the application was created.

PROTECTED: Do not call from outside.

Parameters
exec_dirstr

The execution directory.

set_stdin(file)

Set a file as standard input for the application run.

PROTECTED: Do not call from outside.

Parameters
filefile object

The file for the standard input. Must have a valid file descriptor, e.g. file-like objects such as StringIO are invalid.

set_temperature(temperature)

Adjust the energy parameters according to a temperature in degrees Celsius.

Parameters
temperatureint

The temperature.

start()

Start the application run and set its state to RUNNING. This can only be done from the CREATED state.

wait_interval()

The time interval of is_finished() calls in the joining process.

PROTECTED: Override when inheriting.

Returns
intervalfloat

Time (in seconds) between calls of is_finished() in join()