def upgrade_bcbio(args):
    """Perform upgrade of bcbio to latest release, or from GitHub development version.

    Handles bcbio, third party tools and data.
    """
    print("Upgrading bcbio")
    args = add_install_defaults(args)
    if args.upgrade in ["stable", "system", "deps", "development"]:
        if args.upgrade == "development":
            anaconda_dir = _update_conda_devel()
            _check_for_conda_problems()
            print("Upgrading bcbio-nextgen to latest development version")
            pip_bin = os.path.join(os.path.dirname(os.path.realpath(sys.executable)), "pip")
            git_tag = "@%s" % args.revision if args.revision != "master" else ""
            _pip_safe_ssl([[pip_bin, "install", "--upgrade", "--no-deps",
                            "git+%s%s#egg=bcbio-nextgen" % (REMOTES["gitrepo"], git_tag)]], anaconda_dir)
            print("Upgrade of bcbio-nextgen development code complete.")
        else:
            _update_conda_packages()
            _check_for_conda_problems()
            print("Upgrade of bcbio-nextgen code complete.")
    if args.cwl and args.upgrade:
        _update_bcbiovm()

    try:
        _set_matplotlib_default_backend()
    except OSError:
        pass

    if args.tooldir:
        with bcbio_tmpdir():
            print("Upgrading third party tools to latest versions")
            _symlink_bcbio(args, script="bcbio_nextgen.py")
            _symlink_bcbio(args, script="bcbio_setup_genome.py")
            _symlink_bcbio(args, script="bcbio_prepare_samples.py")
            _symlink_bcbio(args, script="bcbio_fastq_umi_prep.py")
            if args.cwl:
                _symlink_bcbio(args, "bcbio_vm.py", "bcbiovm")
                _symlink_bcbio(args, "python", "bcbiovm", "bcbiovm")
            upgrade_thirdparty_tools(args, REMOTES)
            print("Third party tools upgrade complete.")
    if args.toolplus:
        print("Installing additional tools")
        _install_toolplus(args)
    if args.install_data:
        for default in DEFAULT_INDEXES:
            if default not in args.aligners:
                args.aligners.append(default)
        if len(args.aligners) == 0:
            print("Warning: no aligners provided with `--aligners` flag")
        if len(args.genomes) == 0:
            print("Data not installed, no genomes provided with `--genomes` flag")
        else:
            with bcbio_tmpdir():
                print("Upgrading bcbio-nextgen data files")
                upgrade_bcbio_data(args, REMOTES)
                print("bcbio-nextgen data upgrade complete.")
    if args.isolate and args.tooldir:
        print("Isolated tool installation not automatically added to environmental variables")
        print(" Add:\n  {t}/bin to PATH".format(t=args.tooldir))
    save_install_defaults(args)
    args.datadir = _get_data_dir()
    _install_container_bcbio_system(args.datadir)
    print("Upgrade completed successfully.")
    return args
def upgrade_bcbio ( args ) : print ( "Upgrading bcbio" ) args = add_install_defaults ( args ) if args . upgrade in [ "stable" , "system" , "deps" , "development" ] : if args . upgrade == "development" : anaconda_dir = _update_conda_devel ( ) _check_for_conda_problems ( ) print ( "Upgrading bcbio-nextgen to latest development version" ) pip_bin = os . path . join ( os . path . dirname ( os . path . realpath ( sys . executable ) ) , "pip" ) git_tag = "@%s" % args . revision if args . revision != "master" else "" _pip_safe_ssl ( [ [ pip_bin , "install" , "--upgrade" , "--no-deps" , "git+%s%s#egg=bcbio-nextgen" % ( REMOTES [ "gitrepo" ] , git_tag ) ] ] , anaconda_dir ) print ( "Upgrade of bcbio-nextgen development code complete." ) else : _update_conda_packages ( ) _check_for_conda_problems ( ) print ( "Upgrade of bcbio-nextgen code complete." ) if args . cwl and args . upgrade : _update_bcbiovm ( ) try : _set_matplotlib_default_backend ( ) except OSError : pass if args . tooldir : with bcbio_tmpdir ( ) : print ( "Upgrading third party tools to latest versions" ) _symlink_bcbio ( args , script = "bcbio_nextgen.py" ) _symlink_bcbio ( args , script = "bcbio_setup_genome.py" ) _symlink_bcbio ( args , script = "bcbio_prepare_samples.py" ) _symlink_bcbio ( args , script = "bcbio_fastq_umi_prep.py" ) if args . cwl : _symlink_bcbio ( args , "bcbio_vm.py" , "bcbiovm" ) _symlink_bcbio ( args , "python" , "bcbiovm" , "bcbiovm" ) upgrade_thirdparty_tools ( args , REMOTES ) print ( "Third party tools upgrade complete." ) if args . toolplus : print ( "Installing additional tools" ) _install_toolplus ( args ) if args . install_data : for default in DEFAULT_INDEXES : if default not in args . aligners : args . aligners . append ( default ) if len ( args . aligners ) == 0 : print ( "Warning: no aligners provided with `--aligners` flag" ) if len ( args . genomes ) == 0 : print ( "Data not installed, no genomes provided with `--genomes` flag" ) else : with bcbio_tmpdir ( ) : print ( "Upgrading bcbio-nextgen data files" ) upgrade_bcbio_data ( args , REMOTES ) print ( "bcbio-nextgen data upgrade complete." ) if args . isolate and args . tooldir : print ( "Isolated tool installation not automatically added to environmental variables" ) print ( " Add:\n  {t}/bin to PATH" . format ( t = args . tooldir ) ) save_install_defaults ( args ) args . datadir = _get_data_dir ( ) _install_container_bcbio_system ( args . datadir ) print ( "Upgrade completed successfully." ) return args
Perform upgrade of bcbio to latest release, or from GitHub development version.

    Handles bcbio, third party tools and data.