neofold 0.1.0

NeoFold Program, Program for Maximum-expected-accuracy Estimations of RNA Secondary Structures with Incorporating Homologous-RNA sequences
Documentation
import os
import matplotlib
from matplotlib import pylab
import numpy
import subprocess
from Bio import SeqIO

def get_dir_paths():
  current_work_dir_path = os.getcwd()
  (head, tail) = os.path.split(current_work_dir_path)
  asset_dir_path = head + "/assets"
  program_dir_path = "/usr/local" if current_work_dir_path.find("/home/masaki") == -1 else "/home/masaki/prgrms"
  conda_program_dir_path = "/usr/local/ancnd/envs/rsrch" if current_work_dir_path.find("/home/masaki") == -1 else "/home/masaki/prgrms/ancnd/envs/rsrch"
  return (current_work_dir_path, asset_dir_path, program_dir_path, conda_program_dir_path)

def get_ss_and_flat_ss(ss_string):
  ss = {}
  flat_ss = {}
  stack = []
  for (i, char) in enumerate(ss_string):
    if char == "(":
      stack.append(i)
    elif char == ")":
      pos = stack.pop()
      ss[(pos, i)] = True
      flat_ss[pos] = True
      flat_ss[i] = True
  return ss, flat_ss

def get_ss_strings(ss_file_path):
  ss_strings = [rec.seq for rec in SeqIO.parse(ss_file_path, "fasta")]
  return ss_strings

def get_sss_and_flat_sss(ss_strings):
  return list(map(get_ss_and_flat_ss, ss_strings))

def run_command(command):
  subproc = subprocess.Popen(
    command,
    stdout = subprocess.PIPE,
    shell = True
  )
  (output, error) = subproc.communicate()
  returned_code = subproc.wait()
  return (output, error, returned_code)