%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Compile with: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% make -f lakcluster_ver18.make lakcluster_ver18; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Run with: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ./lakcluster_ver18 < some_input_file.in ; (example input_files below): %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Test for errors with: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ./lakcluster_ver18 < dir_in/An_ajdk_v_error.in ./lakcluster_ver18 < dir_in/AnAt_vv_error.in ./lakcluster_ver18 < dir_in/An_v_error.in ./lakcluster_ver18 < dir_in/An_ZtSn_ww_error.in ./lakcluster_ver18 < dir_in/An_ZtSWn_ww_error.in ./lakcluster_ver18 < dir_in/An_ZtSWn_Yt_vv_error.in ./lakcluster_ver18 < dir_in/AnZt_S_WnYt_vv_error.in ./lakcluster_ver18 < dir_in/An_ZtSWn_Yt_ww_error.in ./lakcluster_ver18 < dir_in/AnZt_vv_error.in ./lakcluster_ver18 < dir_in/AnZt_xx_error.in ./lakcluster_ver18 < dir_in/AtTAn_vv_error.in ./lakcluster_ver18 < dir_in/AtTYn_vv_error.in ./lakcluster_ver18 < dir_in/AttYn____WtsZn_vv_error.in ./lakcluster_ver18 < dir_in/At_T_YnWt_S_Zn_vv_error.in ./lakcluster_ver18 < dir_in/AtTYn____WtSZn_vv_error.in ./lakcluster_ver18 < dir_in/At_T_YnWt_S_Zn_ww_error.in ./lakcluster_ver18 < dir_in/At_T_YnWt_ww_error.in ./lakcluster_ver18 < dir_in/bcc_flattenloop_error.in ./lakcluster_ver18 < dir_in/bcc_init_error.in ./lakcluster_ver18 < dir_in/bcc_lf_AnZtSWnYt_error.in ./lakcluster_ver18 < dir_in/bcc_lf_AtTYnWtSZn_error.in ./lakcluster_ver18 < dir_in/bcc_lrup_error.in ./lakcluster_ver18 < dir_in/bcc_lrup_flattenloop_error.in ./lakcluster_ver18 < dir_in/bcc_QX_error.in ./lakcluster_ver18 < dir_in/bcc_sumscores_error.in ./lakcluster_ver18 < dir_in/binary_M_setup_test.in ./lakcluster_ver18 < dir_in/D_AtTn_ZtSn_vv_error.in ./lakcluster_ver18 < dir_in/dcc_init_error.in ./lakcluster_ver18 < dir_in/dcc_lf_D_AtTn_ZtSn_error.in ./lakcluster_ver18 < dir_in/dcc_lf_TAnZtS_error.in ./lakcluster_ver18 < dir_in/dcc_sumscores_error.in %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Test timing with: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ./lakcluster_ver18 < dir_in/An_ajdk_v_speed.in ./lakcluster_ver18 < dir_in/AnAt_vv_speed.in ./lakcluster_ver18 < dir_in/An_v_speed.in ./lakcluster_ver18 < dir_in/An_ZtSn_ww_speed.in ./lakcluster_ver18 < dir_in/An_ZtSWn_Yt_vv_speed.in ./lakcluster_ver18 < dir_in/An_ZtSWn_Yt_ww_speed.in ./lakcluster_ver18 < dir_in/AnZt_vv_speed2.in ./lakcluster_ver18 < dir_in/AnZt_vv_speed.in ./lakcluster_ver18 < dir_in/AtTYn_vv_speed.in ./lakcluster_ver18 < dir_in/At_T_YnWt_S_Zn_ww_speed.in ./lakcluster_ver18 < dir_in/At_T_YnWt_ww_speed.in ./lakcluster_ver18 < dir_in/bcc_flattenloop_speed.in ./lakcluster_ver18 < dir_in/bcc_lrup_sumscores_speed.in ./lakcluster_ver18 < dir_in/bcc_sumscores_speed2.in ./lakcluster_ver18 < dir_in/bcc_sumscores_speed.in ./lakcluster_ver18 < dir_in/D_AtTn_ZtSn_vv_speed.in ./lakcluster_ver18 < dir_in/dcc_time_sumscores_speed.in ./lakcluster_ver18 < dir_in/ynwt_vv_speed.in ./lakcluster_ver18 < dir_in/ztsvn_vv_speed.in %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Matlab drivers included within ./dir_m/ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Each of these drivers can be run (in Matlab). Depending on your Matlab path, it may be necessary to change directory to the subdirectory "./dir_m". Each driver takes the following 8 input arguments: 1. dir_trunk (string): The name of the directory from which the command is called (typically "pwd"). 2. N (integer): Parameter governing the size of the data-array (some drivers will increase or decrease the number of columns or rows as necessary). 3. X_factor (double): Parameter governing the size of the 'important' bicluster embedded in the data-array (usually the one we are trying to find). The size "m" of the important bicluster is typically N raised to the power of X_factor. Other spurious biclusters are often larger. 4. X_esm (double): Parameter governing the noise of the 'important' bicluster embedded in the data-array. This parameter is equal to the spectral noise 'epsilon' multiplied by sqrt(n). 5. gamma (double): The fraction of rows/columns thrown out each step. If gamma=0.5, then half the remaining rows/columns are ejected each step. Smaller values of gamma are better. We usually pick gamma - 0.05 or smaller. 6. B_MLT (integer): The number of bits retained within internal matrix-matrix multiplication. B_MLT=24 or 32 is usually sufficient for an accurate calculation, however in certain situations B_MLT can be as low as 8 with good results. 7. rng_num (integer): The random-number-generator seed set before generating random matrices. With this input argument we ensure that subsequent calls to the same driver (with the same inputs) construct the same example. 8. pt_num (integer): This "part-number" specifies the suffix that will be added to the output file. This is only used when passing multiple calls to the same driver within a parallel computing environment. If not used, either omit or set to "-1". Example drivers include: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% lakcluster_test_AAAA_ver5.m %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Tests the loop-counting algorithm using a simple case-only example with no controls or covariates. For example, you may try: >> N=1024;X_factor=0.55;X_esm=0.1;gamma=0.05;B_MLT=32;rng_num=1; >> lakcluster_test_AAAA_ver5(pwd,N,X_factor,X_esm,gamma,B_MLT,rng_num); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% lakcluster_test_AAYY_ver2.m %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Tests example with genetic-controls (no covariates). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% lakcluster_test_ADAADA_ver3.m %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Tests case-only example with varying sparsity (no controls or covariates). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% lakcluster_test_AZZA_ver2.m %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Tests example with patient-controls as well as cases (no covariates). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% lakcluster_test_uAAAA_ver1.m %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Tests case-only example with categorical covariates. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% lakcluster_test_AATAA_ver4.m %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Tests case-only example with continuous-covariates. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% lakcluster_test_AZWY_ver2.m %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Tests example with patient- and genetic-controls (no covariates). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% lakcluster_test_uAZZA_ver4.m %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Tests example with patient-controls and categorical covariates. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% lakcluster_test_uADZSZDA_Ireq1_ver7.m lakcluster_test_uADZSZDA_Ireq2_ver7.m lakcluster_test_uADZSZDA_Ireq3_ver7.m %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% These test examples with patient-controls, 3 categorical-covariates and 2 continuous-covariates, as well as varying sparsity coefficients. The parameter "Ireq" refers to the number of categorical-covariates required for an embedded bicluster to be considered by the algorithm. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% dexcluster_test_AAAA_ver5.m %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Tests half-loop algorithm with case-only example (no controls or covariates). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% dexcluster_test_uAZSZA_ver5.m %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Tests half-loop algorithm with patient-controls and categorical covariates. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% dexcluster_test_uADZSZDA_Ireq1_ver7.m dexcluster_test_uADZSZDA_Ireq2_ver7.m dexcluster_test_uADZSZDA_Ireq3_ver7.m %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% These are analogous to lakcluster_test_uADZSZDA_Ireq?_ver7.m, except that they test the half-loop algorithm rather than the full loop-counting algorithm.