{"id":38676492,"url":"https://github.com/wglab/gdp","last_synced_at":"2026-01-17T10:01:12.145Z","repository":{"id":66770190,"uuid":"85968617","full_name":"WGLab/GDP","owner":"WGLab","description":"Group lasso based Deep Neural Network for Cancer Prognosis","archived":false,"fork":false,"pushed_at":"2019-11-15T01:41:18.000Z","size":2370,"stargazers_count":15,"open_issues_count":1,"forks_count":10,"subscribers_count":13,"default_branch":"master","last_synced_at":"2025-02-11T09:33:01.443Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/WGLab.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2017-03-23T15:52:50.000Z","updated_at":"2023-11-08T16:44:52.000Z","dependencies_parsed_at":"2023-02-22T04:45:23.838Z","dependency_job_id":null,"html_url":"https://github.com/WGLab/GDP","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/WGLab/GDP","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WGLab%2FGDP","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WGLab%2FGDP/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WGLab%2FGDP/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WGLab%2FGDP/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/WGLab","download_url":"https://codeload.github.com/WGLab/GDP/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WGLab%2FGDP/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28505570,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T06:57:29.758Z","status":"ssl_error","status_checked_at":"2026-01-17T06:56:03.931Z","response_time":85,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-01-17T10:01:05.625Z","updated_at":"2026-01-17T10:01:11.932Z","avatar_url":"https://github.com/WGLab.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GDP \n\nGDP stands for Group lasso regularized Deep learning for cancer Prognosis from multi-omics and clinical features, and it is a python package based on tensorflow to do survival analysis for the cancer survival data with high-dimensional features but smaller sample size.\n\n## PREREQUISITES\n\n1. Python 2.7\n2. Google Tensorflow 1.4.1\n3. Linux environment\n4. CUDA (only for GPU version, skip it if using CPU)\n5. lifelines (https://lifelines.readthedocs.io/en/latest/Quickstart.html)\n\n## Quick Start\n### Train GDP model\n\n```\n$bash run_train.sh\nor under SGE high-performance cluster\n$bash qsub_run_train.sh\n```\n### Make prediction\n```\n$bash run_prediction.sh\nor under SGE high-performance cluster\n$bash qsub_run_prediction.sh\n```\n\n## USAGE \n\n### Training GDP model\n```\nusage: train_model.py [-h] [--initial_learning_rate INITIAL_LEARNING_RATE]\n                      [--alpha ALPHA] [--scale SCALE] [--delta DELTA]\n                      [--reg_type REG_TYPE] [--activation ACTIVATION]\n                      [--max_steps MAX_STEPS] [--hidden_nodes HIDDEN_NODES]\n                      [--batch_size BATCH_SIZE] [--eval_steps EVAL_STEPS]\n                      [--dropout_keep_rate DROPOUT_KEEP_RATE]\n                      [--skip_eval SKIP_EVAL] [--model MODEL]\n                      [--log_dir LOG_DIR] [--train_dir TRAIN_DIR]\n                      [--train_file TRAIN_FILE]\n                      [--evaluation_file EVALUATION_FILE]\n                      [--evaluation_cindex_file EVALUATION_CINDEX_FILE]\n                      [--output_evaluation_cindex OUTPUT_EVALUATION_CINDEX]\n                      [--evaluation_dir EVALUATION_DIR]\n\noptional arguments:\n  -h, --help            show this help message and exit\n  --initial_learning_rate INITIAL_LEARNING_RATE\n                        Initial learning rate.\n  --alpha ALPHA         alpha for group regularizer proportion control\n  --scale SCALE         Lambda scale for regularization\n  --delta DELTA         delta value used for log transformation in partial\n                        likelihood calculation\n  --reg_type REG_TYPE   types of regularization (available: lasso, l2,\n                        group_lasso, sparse_group_lasso,none)\n  --activation ACTIVATION\n                        activation function (relu, sigmoid or tanh)\n  --max_steps MAX_STEPS\n                        Number of steps to run trainer.\n  --hidden_nodes HIDDEN_NODES\n                        Number of nodes in each hidden layer.\n  --batch_size BATCH_SIZE\n                        Batch size. Must divide evenly into the dataset sizes.\n  --eval_steps EVAL_STEPS\n                        number of steps used for evaluation average score\n                        calculation\n  --dropout_keep_rate DROPOUT_KEEP_RATE\n                        dropout keep rate(default:0.6)\n  --skip_eval SKIP_EVAL\n                        YES or NO for if skipping evaluation\n  --model MODEL         model used for the training, NN: neural network,\n                        linear: linear regression (alpha should be set to 1\n                        for group lasso)\n  --log_dir LOG_DIR     Directory to put the log data.\n  --train_dir TRAIN_DIR\n                        Directory for the input file to do model\n                        training,validation and testing\n  --train_file TRAIN_FILE\n                        input file for model training , validation and testing\n  --evaluation_file EVALUATION_FILE\n                        evaluation scores output file(cost, cindex changes in\n                        each epoch after one batch of data feeding)\n  --evaluation_cindex_file EVALUATION_CINDEX_FILE\n                        evaluation cindex output file(cindex changes in each\n                        training)\n  --output_evaluation_cindex OUTPUT_EVALUATION_CINDEX\n                        whether or not to output evaluation cindex detail\n                        information, default(NO), other choice YES\n  --evaluation_dir EVALUATION_DIR\n                        evaluation scores output directory(cost, cindex\n                        changes in each epoch after one batch of data feeding)\n\n```\n### Making survival hazard prediction\n```\nusage: gdp_prediction.py [-h] [--reg_type REG_TYPE] [--activation ACTIVATION]\n                         [--hidden_nodes HIDDEN_NODES]\n                         [--saver_file_dir SAVER_FILE_DIR]\n                         [--saver_file_prefix SAVER_FILE_PREFIX]\n                         [--model MODEL] [--prediction_dir PREDICTION_DIR]\n                         [--prediction_file PREDICTION_FILE]\n                         [--out_dir OUT_DIR] [--out_file OUT_FILE]\n\noptional arguments:\n  -h, --help            show this help message and exit\n  --reg_type REG_TYPE   types of regularization (available: lasso, l2,\n                        group_lasso, sparse_group_lasso,none)\n  --activation ACTIVATION\n                        activation function (relu, sigmoid or tanh)\n  --hidden_nodes HIDDEN_NODES\n                        Number of nodes in each hidden layer.\n  --saver_file_dir SAVER_FILE_DIR\n                        Directory to put the files with saved variables.\n  --saver_file_prefix SAVER_FILE_PREFIX\n                        prefix of the saver files (saver files used for\n                        reloading the model for prediction)\n  --model MODEL         model used for the training, NN: neural network,\n                        linear: linear regression (alpha should be set to 1\n                        for group lasso)\n  --prediction_dir PREDICTION_DIR\n                        Directory for the input file to do model\n                        training,validation and testing\n  --prediction_file PREDICTION_FILE\n                        input file for making prediction,the sample size in\n                        this file should equal to the batch size in the\n                        training process\n  --out_dir OUT_DIR     output file directory\n  --out_file OUT_FILE   output file name\n\n```\n\n## About Input Data\n\n### simple example\n```\nHere is a simple example with 2 groups of features and 10 patients input file:\n1,1,1,2,2,2\nX1,X2,X3,X4,X5,X6,days,censors\n-1.85902783053298,0.0994494352091435,-0.807210866434911,0.303156984244015,-0.275110805413045,0.579571367421607,27.7573213813725,1\n0.86859158824812,-0.618129783705067,-0.308273526302284,-0.86749748596954,-1.19636100811427,-0.745102422373332,118.705992121249,1\n-0.525185612462805,0.241140196288319,-1.01799171699816,0.991736132807852,-1.29180454442748,0.101100728946668,47.2236119511256,0\n0.651322038444394,0.624104844298306,0.74730472763471,0.815543899943677,0.771588304339387,-0.466081795713416,195.641828371416,0\n1.09407882660999,-0.0184001549027565,-0.0283117031875402,-0.27400025250167,-1.02635165546504,-1.65681317376197,8.72296970337629,1\n0.797017366622877,0.647989168058519,1.96239849878692,0.65190924214759,-0.154590911151089,-1.35643031260092,103.915377632488,1\n-0.827356228955125,-1.03067954961316,1.32470461704247,1.21053565312543,0.189932779563431,0.0174347878628153,23.692097151167,1\n-0.431529861637166,-0.167016525491645,-0.205556633566519,-1.12039115892178,-0.502304556662159,0.410028189118801,85.330219194293,1\n-0.558018708249103,0.832222076104534,0.346448789650193,0.384576276352321,0.856890192421964,-1.05987085048325,104.801233112812,1\n-0.481907510681125,0.644392832802829,0.762831469086699,1.09207762024784,-0.799866311327226,0.42173466089875,172.114941469374,1\n```\n![Alt text](example/GDP_Input_Format_Example.png?raw=true \"GDP training input example\")\n\n### first line: providing group prior knowledge\n```\neg: 1,1,1,2,2,2\nThe first line is the group prior knowledge line with group information provided as numbers. In this example, there are 4 groups,\nand the group size of the 1 group is 2, and the group size for other groups (2,3,4) is 3 for each.\n```\n\n### second line: header information for the name of features and days and censors\n```\neg: X1,X2,X3,X4,X5,X6,days,censors\n```\n\n### other lines: feature matrix + survival days and censoring information\n```\neg: 0.1,1,1.5,2,2,3.3,3,3,9.2,2.1,1\nFor censors column: if 1 then means the survival date of the patient is censored, otherwise non-censored.\n```\n### about the input file for making prediction\nIf the survival data and survival censoring status are not availabe for prediction data, then random numbers can be added to make the format consistent with the format used in the training process. And in order to load the model based on the training, the number of patients (samples) in this prediction input file should equal to the batch size used in the training process.\n\n## common error solution\n\n### CXXABI_1.3.9 import error\n\n```\nImportError: /lib64/libstdc++.so.6: version 'CXXABI_1.3.9' not found (required by /home/gangcai/bin/miniconda2/lib/python2.7/site-packages/scipy/sparse/_sparsetools.so)\n```\nYou can export your library path, and if you use conda, you can export by:\n```bash\nexport LD_LIBRARY_PATH=\"/home/gangcai/bin/miniconda2/lib:$LD_LIBRARY_PATH\"\n```\n\n## Reference\n\nXie G, Dong C, Kong Y, Zhong JF, Li M, Wang K. [GDP: Group lasso regularized Deep learning for cancer Prognosis from multi-omics and clinical features](https://www.mdpi.com/2073-4425/10/3/240). **Genes**, 10(3):240, 2019\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwglab%2Fgdp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwglab%2Fgdp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwglab%2Fgdp/lists"}