Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,6 @@ typings/

# Nuxt.js build / generate output
.nuxt
dist

# Gatsby files
.cache/
Expand Down
1 change: 1 addition & 0 deletions dist/bundle.css
1 change: 1 addition & 0 deletions dist/bundle.css.map

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions dist/bundle.js
1 change: 1 addition & 0 deletions dist/bundle.js.map

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions dist/img
1 change: 1 addition & 0 deletions dist/index.html
84,066 changes: 0 additions & 84,066 deletions example-data/2022-10.json

This file was deleted.

7 changes: 4 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,16 @@
"hyper-recent": "hyper-recent.js"
},
"scripts": {
"start": "echo Nothing to start yet",
"start": "http-server -p 3000 --proxy http://localhost:3000? dist",
"build:data": "cd ./scripts && ./search.sh && ./recommendations.sh",
"build:css": "esbuild --bundle src/dashboard/index.css --outfile=src/dashboard/build/bundle.css --loader:.jpg=dataurl",
"watch:css": "esbuild --bundle src/dashboard/index.css --outfile=src/dashboard/build/bundle.css --loader:.jpg=dataurl --watch --sourcemap",
"build:js": "esbuild src/dashboard/index.js --bundle --outfile=src/dashboard/build/bundle.js",
"watch:js": "esbuild src/dashboard/index.js --bundle --outfile=src/dashboard/build/bundle.js --watch --sourcemap",
"build": "run-s build:css build:js",
"build": "run-s build:data build:css build:js",
"watch": "run-p watch:css watch:js watch:reload watch:http",
"watch:reload": "livereload src/dashboard",
"watch:http": "http-server -o -p 3000 --proxy http://localhost:3000? src/dashboard",
"watch:http": "http-server -o -p 3000 --proxy http://localhost:3000? dist",
"test": "mocha",
"coverage": "nyc mocha",
"fix": "eslint ./src --fix",
Expand Down
113 changes: 60 additions & 53 deletions scripts/recommendations.sh
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#!/bin/bash

PAPER_ID="PMID:32165850"
CATEGORY_ID="alzheimers-therapeutics"
PAPER_IDS=("PMID:33933186" "PMID:33318676")
CATEGORY_IDS=("alzheimers-diagnosis" "alzheimers-neuroinflammation")

DATA_DIRECTORY="../example-data"
MAX_PAPERS=50
Expand All @@ -17,63 +17,70 @@ PAPER_RECOMMENDATIONS_API_PATH=recommendations/
PAPER_RECOMMENDATIONS_PATH=papers/forpaper/
PAPER_RECOMMENDATIONS_LIMIT=500
PAPER_RECOMMENDATIONS_FIELDS=title,year,externalIds,venue,authors,abstract
RECOMMENDATION_URL="${API_BASE_URL}${PAPER_RECOMMENDATIONS_API_PATH}${API_VERSION_PATH}${PAPER_RECOMMENDATIONS_PATH}${PAPER_ID}?limit=${PAPER_RECOMMENDATIONS_LIMIT}&fields=${PAPER_RECOMMENDATIONS_FIELDS}"

echo "Fetching from Semantic Scholar ${RECOMMENDATIONS_API_PATH}"
echo "Paper: ${PAPER_ID}"
for i in ${!CATEGORY_IDS[@]}; do
CATEGORY_ID=${CATEGORY_IDS[$i]}
PAPER_ID=${PAPER_IDS[$i]}
RECOMMENDATION_URL="${API_BASE_URL}${PAPER_RECOMMENDATIONS_API_PATH}${API_VERSION_PATH}${PAPER_RECOMMENDATIONS_PATH}${PAPER_ID}?limit=${PAPER_RECOMMENDATIONS_LIMIT}&fields=${PAPER_RECOMMENDATIONS_FIELDS}"

json=$(curl -s -X GET ${RECOMMENDATION_URL})
recommendedPapers=$(echo ${json} | jq '.recommendedPapers')
echo "Fetching from Semantic Scholar ${RECOMMENDATIONS_API_PATH}"
echo "Paper: ${PAPER_ID}"
echo "CATEGORY_ID: ${CATEGORY_ID}"

numPapersRaw=$(echo ${recommendedPapers} | jq 'length')
echo "numPapers: ${numPapersRaw}"
json=$(curl -s -X GET ${RECOMMENDATION_URL})
recommendedPapers=$(echo ${json} | jq '.recommendedPapers')

selectedPapers=$(
echo ${recommendedPapers} | jq '[ .[] |
select((.venue == "bioRxiv" or (.venue == "medRxiv")) and (.year == 2022)) |
.paperId
] |
.[0:'${MAX_PAPERS}']'
)
numPapersRaw=$(echo ${recommendedPapers} | jq 'length')
echo "numPapers (Total): ${numPapersRaw}"

numPapers=$(echo ${selectedPapers} | jq 'length')
echo "numPapers: ${numPapers}"
selectedPapers=$(
echo ${recommendedPapers} | jq '[ .[] |
select((.venue == "bioRxiv" or (.venue == "medRxiv")) and (.year == 2022)) |
.paperId
] |
.[0:'${MAX_PAPERS}']'
)

# echo ${selectedPapers} | jq > ${DATA_DIRECTORY}/${CATEGORY_ID}.json
numPapers=$(echo ${selectedPapers} | jq 'length')
echo "numPapers (Filtered): ${numPapers}"

### Get the paper details
# RECOMMENDATION_URL="${API_BASE_URL}${ACADEMIC_GRAPH_API_PATH}${API_VERSION_PATH}${ACADEMIC_GRAPH_PAPER_PATH}.?fields=${ACADEMIC_GRAPH_PAPER_FIELDS}"
DELAY=1
selectedPapersArr=( $(echo ${selectedPapers} | jq '.[]') )
COUNTER=0
NUM_ITEMS=${#selectedPapersArr[@]}
echo "numitems ${NUM_ITEMS}"
echo '[' > ${DATA_DIRECTORY}/${CATEGORY_ID}.json
for i in "${selectedPapersArr[@]}"
do
let COUNTER++
id=$(echo ${i} | tr -d '"')
ACADEMIC_GRAPH_PAPER_URL="${API_BASE_URL}${ACADEMIC_GRAPH_API_PATH}${API_VERSION_PATH}${ACADEMIC_GRAPH_PAPER_PATH}${id}?fields=${ACADEMIC_GRAPH_PAPER_FIELDS}"
json=$(curl -s -X GET ${ACADEMIC_GRAPH_PAPER_URL})
record=$(
echo ${json} | jq '. |
{
paperId: .paperId,
title: .title,
journal: .venue,
date: .publicationDate,
doi: .externalIds.DOI,
brief: .tldr.text,
authors: .authors | [.[] | .name] | join("; ")
}'
)
printf "%s" "${record}" >> ${DATA_DIRECTORY}/${CATEGORY_ID}.json
if [ "${COUNTER}" == "${NUM_ITEMS}" ]; then
printf "%s\n" "" >> ${DATA_DIRECTORY}/${CATEGORY_ID}.json
else
printf "%s\n" "," >> ${DATA_DIRECTORY}/${CATEGORY_ID}.json
fi
# echo ${selectedPapers} | jq > ${DATA_DIRECTORY}/${CATEGORY_ID}.json

sleep ${DELAY}
### Get the paper details
# RECOMMENDATION_URL="${API_BASE_URL}${ACADEMIC_GRAPH_API_PATH}${API_VERSION_PATH}${ACADEMIC_GRAPH_PAPER_PATH}.?fields=${ACADEMIC_GRAPH_PAPER_FIELDS}"
DELAY=1
selectedPapersArr=( $(echo ${selectedPapers} | jq '.[]') )
COUNTER=0
NUM_ITEMS=${#selectedPapersArr[@]}
echo "numitems ${NUM_ITEMS}"
echo '[' > ${DATA_DIRECTORY}/${CATEGORY_ID}.json
for i in "${selectedPapersArr[@]}"
do
let COUNTER++
id=$(echo ${i} | tr -d '"')
ACADEMIC_GRAPH_PAPER_URL="${API_BASE_URL}${ACADEMIC_GRAPH_API_PATH}${API_VERSION_PATH}${ACADEMIC_GRAPH_PAPER_PATH}${id}?fields=${ACADEMIC_GRAPH_PAPER_FIELDS}"
json=$(curl -s -X GET ${ACADEMIC_GRAPH_PAPER_URL})
record=$(
echo ${json} | jq '. |
{
paperId: .paperId,
title: .title,
journal: .venue,
date: .publicationDate,
doi: .externalIds.DOI,
brief: .tldr.text,
authors: .authors | [.[] | .name] | join("; ")
}'
)
printf "%s" "${record}" >> ${DATA_DIRECTORY}/${CATEGORY_ID}.json
if [ "${COUNTER}" == "${NUM_ITEMS}" ]; then
printf "%s\n" "" >> ${DATA_DIRECTORY}/${CATEGORY_ID}.json
else
printf "%s\n" "," >> ${DATA_DIRECTORY}/${CATEGORY_ID}.json
fi

sleep ${DELAY}
done
echo ']' >> ${DATA_DIRECTORY}/${CATEGORY_ID}.json
done
echo ']' >> ${DATA_DIRECTORY}/${CATEGORY_ID}.json

24 changes: 12 additions & 12 deletions scripts/search.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,27 +5,27 @@ DATA_DIRECTORY="../example-data"

MEDRXIV_SOURCE="medrxiv"
BIORXIV_SOURCE="biorxiv"
DATE_PREFIX="2022-10"
START_DATE="${DATE_PREFIX}-01"
END_DATE="${DATE_PREFIX}-31"

START_DATE=$(date -v -1m +%Y-%m-%d)
END_DATE=$(date +%Y-%m-%d)

echo "Fetching from ${BIORXIV_SOURCE} between ${START_DATE} and ${END_DATE}"
biorxivPapers=$(node ../src/cli.js download --output="${DATA_DIRECTORY}/${DATE_PREFIX}_${BIORXIV_SOURCE}.json" --source=${BIORXIV_SOURCE} ${START_DATE} ${END_DATE})
biorxivPapers=$(node ../src/cli.js download --output="${DATA_DIRECTORY}/${END_DATE}_${BIORXIV_SOURCE}.json" --source=${BIORXIV_SOURCE} ${START_DATE} ${END_DATE})
numPapersRawBiorxiv=$(echo ${biorxivPapers} | jq 'length')
echo "numPapersRawBiorxiv: ${numPapersRawBiorxiv}"

echo "Fetching from ${MEDRXIV_SOURCE} between ${START_DATE} and ${END_DATE}"
medrxivPapers=$(node ../src/cli.js download --output="${DATA_DIRECTORY}/${DATE_PREFIX}_${MEDRXIV_SOURCE}.json" --source=${MEDRXIV_SOURCE} ${START_DATE} ${END_DATE})
medrxivPapers=$(node ../src/cli.js download --output="${DATA_DIRECTORY}/${END_DATE}_${MEDRXIV_SOURCE}.json" --source=${MEDRXIV_SOURCE} ${START_DATE} ${END_DATE})
numPapersRawMedrxiv=$(echo ${medrxivPapers} | jq 'length')
echo "numPapersRawMedrxiv: ${numPapersRawMedrxiv}"

echo "Combining results..."
combined=$(jq -s add ${DATA_DIRECTORY}/${DATE_PREFIX}_*.json)
rm "${DATA_DIRECTORY}/${DATE_PREFIX}_${BIORXIV_SOURCE}.json"
rm "${DATA_DIRECTORY}/${DATE_PREFIX}_${MEDRXIV_SOURCE}.json"
combined=$(jq --slurp '[.[][]]' ${DATA_DIRECTORY}/${END_DATE}_*.json)
# rm "${DATA_DIRECTORY}/${END_DATE}_${BIORXIV_SOURCE}.json"
# rm "${DATA_DIRECTORY}/${END_DATE}_${MEDRXIV_SOURCE}.json"

DATA_FILE="${DATA_DIRECTORY}/2022-10.json"
echo ${combined} | jq >> ${DATA_FILE}
DATA_FILE="${DATA_DIRECTORY}/${END_DATE}.json"
echo ${combined} | jq > ${DATA_FILE}


QUERY="alzheimer"
Expand All @@ -48,5 +48,5 @@ collection=$(
}]'
)

echo ${collection} | jq >> ${OUTPUT_FILE}

echo ${collection} | jq > ${OUTPUT_FILE}
# rm "${DATA_FILE}"
21 changes: 11 additions & 10 deletions src/dashboard/categories.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
import alzheimersDisease from '../../example-data/alzheimers-disease.json';
import alzheimersDiagnosis from '../../example-data/alzheimers-diagnosis.json';
import alzheimersNeuroinflammation from '../../example-data/alzheimers-neuroinflammation.json';
import alzheimersTherapeutics from '../../example-data/alzheimers-therapeutics.json';
// import alzheimersTherapeutics from '../../example-data/alzheimers-therapeutics.json';

const ALZHEIMERS_DISEASE_ID = 'alzheimers-disease';
const ALZHEIMERS_DIAGNOSIS_ID = 'alzheimers-diagnosis';
const ALZHEIMERS_NEUROINFLAMMATION_ID = 'alzheimers-neuroinflammation';
const ALZHEIMERS_THERAPEUTICS = 'alzheimers-therapeutics';
// const ALZHEIMERS_THERAPEUTICS = 'alzheimers-therapeutics';

const toDate = o => {
o.date = new Date(o.date);
Expand All @@ -28,12 +28,13 @@ export const categories = [
id: ALZHEIMERS_NEUROINFLAMMATION_ID,
name: 'Alzheimer\'s Disease: Neuroinflammation',
description: 'Relationships between neuroinflammation and amyloid and tau pathologies and its effect on disease trajectory.'
},
{
id: ALZHEIMERS_THERAPEUTICS,
name: 'Alzheimer\'s Disease: Therapeutics',
description: 'Nonpharmacological and pharmacological management of the cognitive and behavioral symptoms of AD.'
}
// ,
// {
// id: ALZHEIMERS_THERAPEUTICS,
// name: 'Alzheimer\'s Disease: Therapeutics',
// description: 'Nonpharmacological and pharmacological management of the cognitive and behavioral symptoms of AD.'
// }
];

export const getPapers = ({ id, limit = 20 }) => {
Expand All @@ -49,9 +50,9 @@ export const getPapers = ({ id, limit = 20 }) => {
case ALZHEIMERS_NEUROINFLAMMATION_ID:
papers = alzheimersNeuroinflammation;
break;
case ALZHEIMERS_THERAPEUTICS:
papers = alzheimersTherapeutics;
break;
// case ALZHEIMERS_THERAPEUTICS:
// papers = alzheimersTherapeutics;
// break;
default:
console.error(`Unable to load ${id}.`);
}
Expand Down
4 changes: 2 additions & 2 deletions src/dashboard/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<head>
<title>Hyper-recent Biology Papers</title>

<link rel="stylesheet" href="build/bundle.css" />
<link rel="stylesheet" href="bundle.css" />

<script>
if (location.hostname === "localhost" || location.hostname === "127.0.0.1") {
Expand All @@ -16,6 +16,6 @@
<body>
<div id="root"></div>

<script src="build/bundle.js"></script>
<script src="bundle.js"></script>
</body>
</html>