Views
No views yet
1# Load model and tokenizer
2from transformers import AutoTokenizer, AutoModel
3
4tokenizer = AutoTokenizer.from_pretrained("insilicomedicine/precious3-gpt", trust_remote_code=True)
5model = AutoModel.from_pretrained("insilicomedicine/precious3-gpt", trust_remote_code=True)1from handler import EndpointHandler
2precious3gpt_handler = EndpointHandler()1import json
2with open('./generation-configs/meta2diff.json', 'r') as f:
3 config_data = json.load(f)
4
5# prepare request configuration
6request_config = {"inputs": config_data, "mode": "meta2diff", "parameters": {
7 "temperature": 0.8,
8 "top_p": 0.2,
9 "top_k": 3550,
10 "n_next_tokens": 50,
11 "random_seed": 137
12}}
13[BOS]<age_group2diff2age_group><disease2diff2disease><compound2diff2compound><tissue>lung </tissue><age_individ></age_individ><cell></cell><efo>EFO_0000768 </efo><datatype>expression </datatype><drug>curcumin </drug><dose></dose><time></time><case>70.0-80.0 80.0-90.0 </case><control></control><dataset_type></dataset_type><gender>m </gender><species>human </species>output = precious3gpt_handler(request_config)1{
2 "output": {
3 "up": List,
4 "down": List
5 },
6 "mode": String, // Generation mode was selected
7 "message": "Done!", // or Error
8 "input": String // Input prompt was passed
9
10}mode was supposed to generate compounds, the output would contain compounds: List.mode in config)inputs.instruction in config)inputs. in config)p3_entities_with_type.csvinputs section empty string("") or empty list([]).up and down fields are empty lists as you want to generate them.
Here we ask the model to generate a signature for a human within the age group of 70-90 years, male, in tissue - Lungs with disease EFO_0000768.1{
2 "inputs": {
3 "instruction": ["age_group2diff2age_group", "disease2diff2disease", "compound2diff2compound"],
4 "tissue": ["lung"],
5 "age": "",
6 "cell": "",
7 "efo": "EFO_0000768",
8 "datatype": "", "drug": "", "dose": "", "time": "", "case": ["70.0-80.0", "80.0-90.0"], "control": "", "dataset_type": "expression", "gender": "m", "species": "human", "up": [], "down": []
9 },
10 "mode": "meta2diff",
11 "parameters": {
12 "temperature": 0.8, "top_p": 0.2, "top_k": 3550, "n_next_tokens": 50, "random_seed": 137
13 }
14}1{
2 "output": {
3 "up": [["PTGDR2", "CABYR", "MGAM", "TMED9", "SHOX2", "MAT1A", "MUC5AC", "GASK1B", "CYP1A2", "RP11-266K4.9", ...]], // generated list of up-regulated genes
4 "down": [["MB", "OR10V1", "OR51H1", "GOLGA6L10", "OR6M1", "CDX4", "OR4C45", "SPRR2A", "SPDYE9", "GBX2", "ATP4B", ...]] // generated list of down-regulated genes
5 },
6 "mode": "meta2diff", // generation mode we specified
7 "message": "Done!",
8 "input": "[BOS]<age_group2diff2age_group><disease2diff2disease><compound2diff2compound><tissue>lung </tissue><cell></cell><efo>EFO_0000768 </efo><datatype></datatype><drug></drug><dose></dose><time></time><case>70.0-80.0 80.0-90.0 </case><control></control><dataset_type>expression </dataset_type><gender>m </gender><species>human </species>", // actual input prompt for the model
9 "random_seed": 137
10}disease2diff2disease instruction, but we expect to generate signatures for a healthy human, that's why we'd set efo to empty string "".
Alternatively, for this example we can add one more instruction to example 2 - "instruction": ["disease2diff2disease", "age_group2diff2age_group"]1{
2 "inputs": {
3 "instruction": ["disease2diff2disease", "age_group2diff2age_group"],
4 "tissue": ["whole blood"],
5 "age": "",
6 "cell": "",
7 "efo": "",
8 "datatype": "", "drug": "", "dose": "", "time": "", "case": "40.0-50.0", "control": "", "dataset_type": "expression", "gender": "m", "species": "human", "up": [],
9 "down": []
10 },
11 "mode": "meta2diff",
12 "parameters": {
13 "temperature": 0.8,
14 "top_p": 0.2,
15 "top_k": 3550,
16 "n_next_tokens": 50,
17 "random_seed": 137
18 }
19}
201{
2 "output": {
3 "up": [["IER3", "APOC2", "EDNRB", "JAKMIP2", "BACE2", ... ]],
4 "down": [["TBL1Y", "TDP1", "PLPP4", "CPEB1", "ITPR3", ... ]]
5 },
6 "mode": "meta2diff",
7 "message": "Done!",
8 "input": "[BOS]<disease2diff2disease><age_group2diff2age_group><tissue>whole blood </tissue><cell></cell><efo></efo><datatype></datatype><drug></drug><dose></dose><time></time><case>40.0-50.0 </case><control></control><dataset_type>expression </dataset_type><gender>m </gender><species>human </species>",
9 "random_seed": 137
10}