示例#1
0
def backUp(inputDirs, backUpTo, DataBaseAddress, spreadsheet):

    subjectClassList = []
    for newDirectory in inputDirs:
        subjClass = subj.subject(newDirectory, backUpTo)
        checkFileNumbers(subjClass)
        subjectClassList.append(subjClass)

        executeCopy(subjClass)

        subjDf = saveLog(subjClass)

        dbDf = processDB(DataBaseAddress)

        newDf = pd.concat([dbDf, subjDf]).reset_index()
        newDf = newDf[[
            u'koreanName', u'subjectName', u'subjectInitial', u'group', u'sex',
            u'age', u'DOB', u'scanDate', u'timeline', u'studyname',
            u'patientNumber', u'T1', u'T2', u'REST_LR', u'REST_LR_SBRef',
            u'REST_BLIP_LR', u'REST_BLIP_RL', u'DTI_LR_1000', u'DTI_LR_2000',
            u'DTI_LR_3000', u'DTI_BLIP_LR', u'DTI_BLIP_RL', u'dx',
            u'folderName', u'backUpBy', u'note'
        ]]
        #please confirm here

        newDf['koreanName'] = newDf['koreanName'].str.decode('utf-8')
        newDf['note'] = newDf['note'].str.decode('utf-8')
        newDf.to_excel(DataBaseAddress, 'Sheet1')
        # os.chmod(DataBaseAddress, 0o2770)

        updateSpreadSheet.main(False, DataBaseAddress, spreadsheet)  #False
    print('Completed\n')
示例#2
0
文件: backUp.py 项目: kcho/backUp
def backUp(inputDirs, backUpTo,
           DataBaseAddress, spreadsheet):

    subjectClassList = []
    for newDirectory in inputDirs:
        subjClass = subj.subject(newDirectory, backUpTo)
        checkFileNumbers(subj.correct_modality_re_dict, subjClass)
        subjectClassList.append(subjClass)

        executeCopy(subjClass)

        subjDf = saveLog(subjClass)
        print(subjDf)

        dbDf = processDB(DataBaseAddress)

        newDf = pd.concat([dbDf, subjDf]).reset_index()

        # ordering
        newDf = newDf[[ u'koreanName',  
                        u'subjectName',
                        u'subjectInitial',
                        u'group',
                        u'sex',
                        u'age',
                        u'DOB',
                        u'scanDate',
                        u'timeline',
                        u'studyname',
                        u'patientNumber'] + \
                       [subj.correct_modality_re_dict] + \
                       [u'dx',
                        u'folderName',
                        u'backUpBy',
                        u'note']]
        #please confirm here

        newDf['koreanName'] = newDf['koreanName'].str.decode('utf-8')
        newDf['note'] = newDf['note'].str.decode('utf-8')
        newDf.to_excel(DataBaseAddress, 'Sheet1', encode='utf-8')
        # os.chmod(DataBaseAddress, 0o2770)

        updateSpreadSheet.main(False, DataBaseAddress, spreadsheet)#False

    print('Completed\n')
示例#3
0
def backUp(inputDirs, backUpFrom, USBlogFile, backUpTo, DataBaseAddress, spreadsheet, freesurferOn, motionOn, copyExecuteOn, nasBackupOn):
    # External HDD log
    if USBlogFile:
        logFileInUSB = USBlogFile
    elif inputDirs:
        logFileInUSB = os.path.join(os.getcwd(),"log.xlsx")
    else:
        logFileInUSB = os.path.join(backUpFrom,"log.xlsx")

    logDf = copiedDirectoryCheck(backUpFrom,logFileInUSB)
    newDirectoryList,logDf = newDirectoryGrep(inputDirs, backUpFrom,logDf)
    logDf.to_excel(logFileInUSB,'Sheet1')

    if newDirectoryList==[]:
        sys.exit('Everything have been backed up !')

    subjectClassList = []
    for newDirectory in newDirectoryList:
        subjClass = subj.subject(newDirectory, backUpTo)
        checkFileNumbers(subjClass)
        subjectClassList.append(subjClass)

        if copyExecuteOn:
            executeCopy(subjClass)

            subjDf = saveLog(subjClass)

            dbDf = processDB(DataBaseAddress)

            newDf = pd.concat([dbDf, subjDf]).reset_index()
            newDf = newDf[[ u'koreanName',    u'subjectName', u'subjectInitial',
                            u'group',            u'sex',            u'age',
                            u'DOB',       u'scanDate',       u'timeline',
                            u'studyname',  u'patientNumber',       u'T1Number',
                            u'DTINumber',      u'DKINumber',     u'RESTNumber',
                            u'REST2Number',     u'folderName',       u'backUpBy',
                            u'note']]

            newDf['koreanName'] = newDf['koreanName'].str.decode('utf-8')
            newDf['note'] = newDf['note'].str.decode('utf-8')
            newDf.to_excel(DataBaseAddress, 'Sheet1')
            #os.chmod(DataBaseAddress, 0o2770)

            updateSpreadSheet.main(False, DataBaseAddress, spreadsheet)


    if motionOn:
        print 'Now, running motion_extraction'
        for subjectClass in subjectClassList:
            motion_extraction.main(subjectClass.targetDir, True, True, False)

    if nasBackupOn:
        server = '147.47.228.192'
        for subjectClass in subjectClassList:
            copiedDir=os.path.dirname(subjectClass.targetDir)
            server_connect(server, copiedDir)

    if freesurferOn:
        for subjectClass in subjectClassList:
            freesurfer.main(subjectClass.targetDir, 
                            os.path.join(subjectClass.targetDir, 'FREESURFER'))
            freesurfer_summary.main(copiedDir, None, "ctx_lh_G_cuneus", True, True, True, True)

    print 'Completed\n'
示例#4
0
def backUp(inputDirs, backUpFrom, USBlogFile, backUpTo,
           DataBaseAddress, spreadsheet,
           freesurfer, motion, copyExecute, nasBackup):

    # External HDD log
    if USBlogFile:
        logFileInUSB = USBlogFile
    elif inputDirs:
        logFileInUSB = os.path.join(os.getcwd(),"log.xlsx")
    else:
        logFileInUSB = os.path.join(backUpFrom,"log.xlsx")

    logDf = copiedDirectoryCheck(backUpFrom, logFileInUSB)
    newDirectoryList,logDf = newDirectoryGrep(inputDirs, backUpFrom, logDf)
    logDf.to_excel(logFileInUSB,'Sheet1')

    if newDirectoryList == []:
        sys.exit('Everything have been backed up !')

    subjectClassList = []
    for newDirectory in newDirectoryList:
        subjClass = subj.subject(newDirectory, backUpTo)
        checkFileNumbers(subjClass)
        subjectClassList.append(subjClass)

        if copyExecute:
            executeCopy(subjClass)

            subjDf = saveLog(subjClass)

            dbDf = processDB(DataBaseAddress)

            newDf = pd.concat([dbDf, subjDf]).reset_index()
            newDf = newDf[[ u'koreanName',  u'subjectName',   u'subjectInitial',
                            u'group',       u'sex',           u'age',
                            u'DOB',         u'scanDate',      u'timeline',
                            u'studyname',   u'patientNumber', u'T1Number',
                            u'DTINumber',   u'DKINumber',     u'RESTNumber',
                            u'REST2Number', u'folderName',    u'backUpBy',
                            u'note']]

            newDf['koreanName'] = newDf['koreanName'].str.decode('utf-8')
            newDf['note'] = newDf['note'].str.decode('utf-8')
            newDf.to_excel(DataBaseAddress, 'Sheet1')
            # os.chmod(DataBaseAddress, 0o2770)

            updateSpreadSheet.main(False, DataBaseAddress, spreadsheet)#False

    if motion:
        print 'Now, running motion_extraction'
        for subjectClass in subjectClassList:
            motionExtraction.main(subjectClass.targetDir, True, True, False)
            bien.dtiFit(os.path.join(subjectClass.targetDir,'DTI'))
    if nasBackup:
        server = '147.47.228.192'
        for subjectClass in subjectClassList:
            copiedDir = os.path.dirname(subjectClass.targetDir)
            server_connect(server, copiedDir)

    if freesurfer:
        for subjectClass in subjectClassList:
            easyFreesurfer.main(subjectClass.targetDir, 
                                os.path.join(subjectClass.targetDir,'FREESURFER'))
            freesurfer_Summary.main(copiedDir, None,                #bienseo: only use freesurfer.
                                    "ctx_lh_G_cuneus", True, True, True, True)
    print 'Completed\n'
示例#5
0
def main():

    #--------------------------------------------------------------------------------
    # Load previously copied directories
    #--------------------------------------------------------------------------------
    #     logDf : log saved in external hard drive
    #     newDirectoryList : recently added directory to the external hard drive
    #
    #     If user wants a directory not to be called again,
    #         logDf is updated with the directory
    #
    #     If there is no new directory --> sys.exit
    #================================================================================
    try:
        logDf=copiedDirectoryCheck(backUpFrom,logFileInUSB)
        newDirectoryList,logDf=newDirectoryGrep(backUpFrom,logDf)
        logDf.to_excel(logFileInUSB,'Sheet1')
        if newDirectoryList==[]:
            sys.exit()
    except:
        sys.exit('Please insert USB external drive')
    #================================================================================


    #--------------------------------------------------------------------------------
    # check the number of images in the new directories
    #--------------------------------------------------------------------------------
    #     foundDict : {newDirName:{modalityName:modalitySource,fileNumber}}
    #
    #     allInfo : {newDirName:[group,followUp,birthday,note,target,
    #                            subjInitial,fullname,subjNum,targetDirectory,sex,
    #                            allModalityWithLocation,maxNum,backUpTo,backUpFrom,
    #                            koreanName]
    #
    #     df : pandas dataframe made with the function 'log'
    #          including information about the new subjects
    #================================================================================
    foundDict=findDtiDkiT1restRest2(newDirectoryList)
    allInfo,df,newDfList=verifyNumbersAndLog(foundDict,backUpTo,backUpFrom)
    #================================================================================


    #--------------------------------------------------------------------------------
    # check the number of images in the new directories
    #================================================================================
    executeCopy(allInfo,df,newDfList)
    #individualLog(allInfo,df)
    #================================================================================


    #--------------------------------------------------------------------------------
    # Update the database excel and log in the external hard-drive
    #================================================================================

    #df = changeencode(df,['koreanName','note'])
    #writer = pd.ExcelWriter(DataBaseAddress)
    #df.to_excel(DataBaseAddress,sheet_name='rearrangeWithId',engine='xlsxwriter')
    #writer.save()

    #df.to_excel(DataBaseAddress,sheet_name='rearrangeWithId',engine='xlsxwriter')
    df.to_excel(DataBaseAddress,sheet_name='rearrangeWithId')

    for dirName,value in allInfo.iteritems():
        logDf = noCall(logDf,backUpFrom,dirName)
        logDf.to_excel(logFileInUSB,'Sheet1')
    #================================================================================


    #--------------------------------------------------------------------------------
    # Update the database excel for CCNC
    #================================================================================
    updateSpreadSheet.main('noInput')

    print '-----------------'
    print 'Completed\n'