Public
Edited
Apr 5, 2023
Insert cell
Insert cell
fetch_general
Insert cell
Insert cell
Insert cell
Insert cell
gene_of_interest = 'Rho'
// gene_of_interest = 'PARP14'
// gene_of_interest = 'Lgr4'
// gene_of_interest = 'Smo'
// gene_of_interest = 'Clasp1'
// gene_of_interest = 'tp53'
// gene_of_interest = 'egfr'
// gene_of_interest = 'dclk3'
// gene_of_interest = 'stk32A'
Insert cell
inst_organism = 'human'
Insert cell
inst_gene_name = JSON.parse(fetch_hzome.body).name
Insert cell
inst_gene_description = JSON.parse(fetch_hzome.body).description
Insert cell
fetch_hzome = {
let base_url = 'https://amp.pharm.mssm.edu/Harmonizome/api/1.0/gene/' ;
let full_url = base_url + gene_of_interest;
const response = await fetch(
full_url, {
method: 'GET'
}
);
return {
ok: response.ok,
body: await response.text()
};
}
Insert cell
real_protein = fetch_accession
.body
// has evidence at protein level
.filter(d => d.proteinExistence === 'Evidence at protein level')
// has a comments section
.filter(d => 'comments' in d)
// has a FUNCTION section in the comments
.filter(d => d.comments.map(c => c.type).includes('FUNCTION'))
// has gene
.filter(d => 'gene' in d)
// matches gene name in first entry (lowercase string)
.filter(d => d.gene[0].name.value.toLowerCase() === gene_of_interest.toLowerCase())
Insert cell
real_protein[0].gene[0].name.value.toLowerCase()
Insert cell
fetch_accession = {
let base_url = 'https://www.ebi.ac.uk/proteins/api/proteins?offset=0&size=' + num_matches + '&exact_gene=' + gene_of_interest + '&organism=' + inst_organism ;
let full_url = base_url // + gene_of_interest + '';
const response = await fetch(
full_url, {
method: 'GET',
headers: {
"Accept" : "application/json",
'Content-Type': 'application/json',
}
}
);
return {
ok: response.ok,
body: await response.json()
};
}
Insert cell
Insert cell
// inst_accession = 'P08100'
inst_accession = real_protein[0].accession
Insert cell
num_matches = 25
Insert cell
fetch_general = {
let base_url = 'https://rest.uniprot.org/uniprotkb/' + inst_accession + '.json' ;
let full_url = base_url ;
const response = await fetch(
full_url, {
method: 'GET',
headers: {
"Accept" : "application/json",
'Content-Type': 'application/json',
}
}
);
return {
ok: response.ok,
body: await response.json()
};
}
Insert cell
Insert cell
uniprot_full_name = fetch_general.body.proteinDescription.recommendedName.fullName.value
Insert cell
fetch_general.body
Insert cell
fetch_general.body.comments[0].texts[0].value
Insert cell
fetch_general.body.comments[0].texts[0].evidences[0]
Insert cell
// fetch_uniprot = {
// let base_url = 'https://rest.uniprot.org/uniprotkb/' + inst_accession + '.json' ;
// let full_url = base_url ;
// const response = await fetch(
// full_url, {
// method: 'GET',
// headers: {
// "Accept" : "application/json",
// 'Content-Type': 'application/json',
// }
// }
// );
// return {
// ok: response.ok,
// body: await response.json()
// };
// }
Insert cell
// // see https://www.biostars.org/p/5311/

// fetch_quickgo = {
// let base_url = 'https://www.ebi.ac.uk/QuickGO/services/annotation/search?geneProductId=' + inst_accession + '&aspect=None' ;
// let full_url = base_url ;
// const response = await fetch(
// full_url, {
// method: 'GET',
// headers: {
// "Accept" : "application/json",
// 'Content-Type': 'application/json',
// }
// }
// );
// return {
// ok: response.ok,
// body: await response.json()
// };
// }
Insert cell
library_name = 'GO_Biological_Process_2021'
Insert cell
// see https://www.biostars.org/p/5311/

fetch_gmt = {
let base_url = 'https://maayanlab.cloud/Enrichr/geneSetLibrary?mode=text&libraryName=' + library_name ;
let full_url = base_url ;
const response = await fetch(
full_url, {
method: 'GET',
headers: {
"Accept" : "application/json",
'Content-Type': 'application/json',
}
}
);

var response_text = await response.text()

var gmt_dict = {}
response_text.split('\n').map(d => d.split('\t'))
.forEach(d => {
var term = d[0]
var gene_set = d.slice(2,)
gmt_dict[term] = gene_set
})
// return {
// ok: response.ok,
// body: response_text
// };

return gmt_dict
}


Insert cell
Object.keys(fetch_gmt)
Insert cell
{
var gmt_dict = {}
fetch_gmt.body.split('\n').map(d => d.split('\t'))
.forEach(d => {
var term = d[0]
var gene_set = d.slice(2,)

gmt_dict[term] = gene_set
// return {term: gene_set}
})

return gmt_dict
}
Insert cell

One platform to build and deploy the best data apps

Experiment and prototype by building visualizations in live JavaScript notebooks. Collaborate with your team and decide which concepts to build out.
Use Observable Framework to build data apps locally. Use data loaders to build in any language or library, including Python, SQL, and R.
Seamlessly deploy to Observable. Test before you ship, use automatic deploy-on-commit, and ensure your projects are always up-to-date.
Learn more