The RNAfold -o flag will write to a file named RNAfold_output.fold if no value for -o is provided.
In the code, below, no filename is provided. If multiple instances of Crackling have been launched from the same directory and some just happen to be at the folding step then RNAfold may overwrite its own output. I ran into this issue when running many instances of Crackling on a HPC.
To fix this issue, an output file should be specified so that the default is not used.
|
runner('{} --noPS -j{} -i {} -o'.format( |
|
configMngr['rnafold']['binary'], |
|
configMngr['rnafold']['threads'], |
|
configMngr['rnafold']['input'] |
|
), |
|
shell=True, |
|
check=True |
|
) |
|
|
|
os.replace('RNAfold_output.fold' ,configMngr['rnafold']['output']) |
|
|
|
printer('\t\tStarting to process the RNAfold results.') |
|
|
|
RNAstructures = {} |
|
with open(configMngr['rnafold']['output'], 'r') as fRnaOutput: |
I used this code as my temporary fix:
runner('{} --noPS -j{} -i {} -o {}'.format(
configMngr['rnafold']['binary'],
configMngr['rnafold']['threads'],
configMngr['rnafold']['input'],
configMngr['rnafold']['output']
),
shell=True,
check=True
)
#os.replace('RNAfold_output.fold' ,configMngr['rnafold']['output'])
printer('\t\tStarting to process the RNAfold results.')
RNAstructures = {}
with open(configMngr['rnafold']['output'], 'r') as fRnaOutput:
The RNAfold
-oflag will write to a file namedRNAfold_output.foldif no value for-ois provided.In the code, below, no filename is provided. If multiple instances of Crackling have been launched from the same directory and some just happen to be at the folding step then RNAfold may overwrite its own output. I ran into this issue when running many instances of Crackling on a HPC.
To fix this issue, an output file should be specified so that the default is not used.
Crackling/src/crackling/Crackling.py
Lines 426 to 440 in b00de36
I used this code as my temporary fix: