diff --git a/package-lock.json b/package-lock.json index 4b9e42985..2aec12263 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "factoid", - "version": "0.26.0", + "version": "0.27.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "factoid", - "version": "0.26.0", + "version": "0.27.0", "license": "MIT", "dependencies": { "@appsignal/express": "^0.5.1", diff --git a/package.json b/package.json index af38ac6a0..a590a40fa 100644 --- a/package.json +++ b/package.json @@ -137,5 +137,5 @@ "engines": { "node": ">=16.19.0" }, - "version": "0.26.0" + "version": "0.27.0" } diff --git a/src/client/components/accordion.js b/src/client/components/accordion.js new file mode 100644 index 000000000..9c71c0dba --- /dev/null +++ b/src/client/components/accordion.js @@ -0,0 +1,63 @@ +import h from 'react-hyperscript'; +import { Component } from 'react'; +import { makeClassList } from '../dom'; +import _ from 'lodash'; + + +export const ACCORDION_ITEM_FIELDS = { + TITLE: 'title', + DESCRIPTION: 'description' +}; + + +export class AccordionItem extends Component { + constructor(props){ + super(props); + + this.state = { + isOpen: false + }; + } + + toggleItem(){ + this.setState({ isOpen: !this.state.isOpen }); + } + + render(){ + const { title, description } = this.props.item; + const { isOpen } = this.state; + const content = _.isString( description ) ? [ h('p', description) ] : description; + return h('div.accordion-item', [ + h('div.accordion-item-header', { + className: makeClassList({ + 'open': isOpen + }), + onClick: () => this.toggleItem() + }, [ + h( 'p.accordion-item-header-title', title ), + isOpen ? h('i.material-icons.accordion-item-header-icon', 'expand_less') : + h('i.material-icons.accordion-item-header-icon', 'expand_more') + ]), + h('div.accordion-item-content', content ) + ]); + } +} + +export class Accordion extends Component { + constructor(props){ + super(props); + + this.state = { + }; + } + + render(){ + const { title, items } = this.props; + return h('div.accordion', [ + title ? h('h3.accordion-title', title ) : null, + h('div.accordion-items', items.map( (item, key) => h( AccordionItem, { key, item } ) ) ) + ]); + } +} + +export default Accordion; \ No newline at end of file diff --git a/src/client/components/editor/info-panel.js b/src/client/components/editor/info-panel.js index a718cd1e5..13d56549d 100644 --- a/src/client/components/editor/info-panel.js +++ b/src/client/components/editor/info-panel.js @@ -67,7 +67,7 @@ export class InfoPanel extends Component { const citation = document.citation(); // authorProfiles may not be existing for the older documents const authorProfiles = document.authorProfiles() || citation.authors.authorList; - const { pmid, title = 'Untitled article', reference, doi, abstract } = citation; + const { pmid, title = 'Untitled article', reference, doi, abstract, relations } = citation; const retractedPubType = _.find( citation.pubTypes, ['UI', 'D016441'] ); const retractFlag = retractedPubType ? h('span.editor-info-flag.super-salient-button.danger', retractedPubType.value) : null; @@ -75,6 +75,8 @@ export class InfoPanel extends Component { const hasArticleId = pmid != null || doi != null; const hasRelatedPapers = !_.isEmpty( document.relatedPapers() ); + const hasRelations = !_.isEmpty( relations ); + return h('div.editor-info-panel', [ h('div.editor-info-flags', [ retractFlag ]), @@ -103,6 +105,13 @@ export class InfoPanel extends Component { pmid ? h('a.editor-info-link.plain-link', { target: '_blank', href: `${PUBMED_LINK_BASE_URL}${pmid}` }, 'PubMed') : null, h('a.editor-info-link.plain-link', { target: '_blank', href: `${GOOGLE_SCHOLAR_BASE_URL}${( "\u0022" + title + "\u0022") }`}, 'Google Scholar') ]), + hasRelations ? + h('div.editor-info-relations', relations.map( ({ type, links }, i) => [ + h('div.editor-info-relation', { key: i.toString() }, [ + h('span.editor-info-relation-type', `${type} `), + h('span.editor-info-links', links.map( ({ url, reference }, j ) => h('a.editor-info-link.plain-link', { key: j.toString(), target: '_blank', href: url }, reference ) ) ) + ]) + ])): null, h('div.editor-info-main-sections', [ abstract ? h('div.editor-info-abstract-section.editor-info-main-section', [ h('div.editor-info-section-title', abstract ? 'Abstract': 'Summary'), diff --git a/src/client/components/element-info/entity-info.js b/src/client/components/element-info/entity-info.js index 3f182c53e..5979c657c 100644 --- a/src/client/components/element-info/entity-info.js +++ b/src/client/components/element-info/entity-info.js @@ -365,11 +365,6 @@ class EntityInfo extends DataComponent { let doc = p.document; let children = []; - const citation = doc.citation(); - const { pmid } = citation; - - const hasPubmedMetadata = pmid != null; - let Loader = ({ loading = true }) => h('div.entity-info-matches-loading' + (loading ? '.entity-info-matches-loading-active' : ''), [ loading ? h('i.icon.icon-spinner') : h('i.material-icons', 'remove') ]); @@ -612,6 +607,7 @@ class EntityInfo extends DataComponent { if( isComplex(s.element.type()) ){ const entityNames = s.element.participants().map(ppt => ppt.name()); children.push( h('div.entity-info-assoc', targetFromAssoc({ type, name, entityNames }, true )) ); + if (hasRelatedPapers) { children.push( h('div.entity-info-reld-papers-title', `Recommended articles`) ); diff --git a/src/client/components/home.js b/src/client/components/home.js index 82c2153be..12e198f17 100644 --- a/src/client/components/home.js +++ b/src/client/components/home.js @@ -7,6 +7,7 @@ import { Carousel, CAROUSEL_CONTENT } from './carousel'; import { tryPromise } from '../../util'; import { formatDistanceToNow } from 'date-fns'; import DocumentSearch from '../document-search'; +import Accordion from './accordion.js'; import { TWITTER_ACCOUNT_NAME, SAMPLE_DOC_ID, EMAIL_ADDRESS_INFO } from '../../config'; import _ from 'lodash'; @@ -377,7 +378,8 @@ class Home extends Component { h('a.home-nav-link', [ h(ContactPopover) ]), - h('a.home-nav-link', { href: `https://twitter.com/${TWITTER_ACCOUNT_NAME}`, target: '_blank' }, 'Twitter') + h('a.home-nav-link', { href: `https://twitter.com/${TWITTER_ACCOUNT_NAME}`, target: '_blank' }, 'Twitter'), + h('a.home-nav-link', { href: '#faq' }, 'FAQ') ]) ]), h('div.home-intro', [ @@ -557,6 +559,136 @@ class Home extends Component { ]) ]) ]), + h('div.home-section.home-fluid-section.home-fluid-section-no-figure', [ + h('div.home-fluid-section-copy', [ + h( Accordion, { + title: [ h('span', { id: 'faq' }, 'Frequently Asked Questions')], + items: [ + { title: 'What is Biofactoid?', description: [ + h('p', [ + 'A tool to map ', + h('a.plain-link', { href: 'https://en.wikipedia.org/wiki/Biological_pathway', target: '_blank' }, 'biological pathways'), + ' assembled from author-curated results in papers.' + ]) + ]}, + { title: 'What problem does Biofactoid help solve?', description: [ + h('p', 'Think about the last time you snapped a photo of your friends or family (or your pet). Your phone automatically identified and focused on all the faces, but, whether you were aware of it or not, it also labelled those faces (and cars, food, cute babies) so that it could organise your album by the places, people, pets and things within the images.'), + h('p', 'Wouldn’t it be great if all of the scientific details in a paper were readily identifiable by computers so that information across the literature could be precisely related and combined?'), + h('p', [ + 'Despite the fact that scientific papers are distributed digitally, the content itself -- plain text and images -- remains rooted in the print era. Unfortunately, knowledge in the text and figures in papers is extremely challenging for computers to accurately extract and use. We traditionally rely on expert curators at biological resources (e.g., ', + h('a.plain-link', { href: 'https://www.uniprot.org/', target: '_blank' }, 'UniProt'), + ') to read papers and enter the information in a format that a computer can work with. However, this is expensive and there are too many papers for expert curators to handle at the same time.' + ]), + h('p', 'Biofactoid rethinks the way information in papers is captured by enabling curation by authors of scientific articles, which is accurate, since authors are authoritative experts on their studies, and scales to support comprehensive, up-to-the-minute coverage of the literature.') + ]}, + { title: 'What kind of information does Biofactoid contain?', description: 'Functional relationships (e.g., binding, transcription) between molecules and chemicals. For instance, "NAD+ binds to mouse PARP1".'}, + { title: 'Which species does Biofactoid support?', description: [ + h('p', [ + 'Humans and major model organisms including: ', + h('em', 'M. musculus'), ', ', + h('em', 'R. norvegicus'), ', ', + h('em', 'S. cerevisiae'), ', ', + h('em', 'D. melanogaster'), ', ', + h('em', 'E. coli'), ', ', + h('em', 'C. elegans'), ', ', + h('em', 'D. rerio'), ', ', + h('em', 'A. thaliana'), ', as well as ', + h('em', 'SARS-CoV-2.') + ]) + ]}, + { title: 'Can anyone submit an article?', description: [ + h('p', [ + h('span', 'Any author of a primary research article is welcome to submit content to Biofactoid. Authors access the curation tool via a private web link. Author names and emails are associated with Biofactoid records and matched against corresponding author and '), + h('a.plain-link', { href: 'https://orcid.org/', target: '_blank' }, 'Open Researcher and Contributor ID (ORCID)'), + h('span', ' information (when available) for each article. The Biofactoid website displays the name of the author who created the record, linked to their ORCID.') + ]) + ]}, + { title: 'How long does it take?', description: 'A typical author spends a total of 6 minutes to add information from a paper; this usually involves 3 interactions. More than a quarter of users finish in less than 3 minutes.' }, + { title: 'Do I need to create an account?', description: 'No. All Biofactoid data is freely and openly available for all to use, download and redistribute without restriction. Authors curate their paper by following a private web link. Email addresses remain private and are never shared.' }, + { title: 'How does Biofactoid compare to other pathway databases like Reactome or STRING?', description: [ + h('p', 'Biofactoid collects pathway and network data and makes it available as a resource to support many different uses. Biofactoid data can be searched as is, as a knowledge resource. It can also provide input data for pathway and network analyses, such as the following:'), + h('ul', [ + h('li', [ + 'STRING collects data from other sources, such as Biocarta, BioCyc, Gene Ontology, KEGG, and Reactome; ', + h('u', 'Biofactoid is a primary source of curated data') + ]), + h('li', 'Reactome curates a defined set of human pathways from select papers, focusing on a consensus (i.e. "textbook") interpretation of biological processes; Biofactoid supports author-curation of all papers with pathway results') + ]) + ]}, + { title: 'How is Biofactoid data is used?', description: [ + h('p', 'Biofactoid collects pathway and network data and makes it available as a resource to support many different uses. Biofactoid data can be searched as is, as a knowledge resource. It can also provide input data for pathway and network analyses, such as the following:'), + h('ul', [ + h('li', [ + h('b', 'Interpreting long lists of genes from large-scale experiments'), + h('ul', [ + h('p', 'Comprehensive quantification of DNA, RNA and proteins in biological samples yields long lists of measured entities (e.g. differentially expressed genes) which are difficult to interpret. Pathway enrichment analysis summarises gene lists as a smaller, more easily interpretable list of affected pathways. Pathway data is obtained from manually curated resources.'), + h('li', [ + h('a.plain-link', { href: 'https://www.science.org/doi/full/10.1126/scisignal.aan3580', target: '_blank' }, 'Integrated in vivo multiomics analysis identifies p21-activated kinase signaling as a driver of colitis.'), + ' Sci. Signal 11 (2018)' + ]), + h('li', [ + h('a.plain-link', { href: 'https://www.nature.com/articles/nature13108', target: '_blank' }, 'Epigenomic alterations define lethal CIMP-positive ependymomas of infancy.'), + ' Nature 506 (2014)' + ]), + h('li', [ + h('a.plain-link', { href: 'https://www.nature.com/articles/nature13483', target: '_blank' }, 'DNA-damage-induced differentiation of leukaemic cells as an anti-cancer barrier.'), + ' Nature 514 (2014)' + ]) + ]) + ]), + h('li', [ + h('b', 'Exploring the mechanistic neighbourhood of a gene or drug'), + h('ul', [ + h('p', 'Functional screens (e.g., RNAi) and genetic screens can implicate one or a few genes in a phenotype. However, complex cellular networks of gene products and chemicals underlie most genotype-to-phenotype relationships. An integrated resource of curated biological relationships enables researchers to explore a neighbourhood of direct and indirect mechanistic interactions for a protein (or drug) of interest.'), + h('li', [ + 'Search engines: ', + h('a.plain-link', { href: 'https://string-db.org/', target: '_blank' }, 'STRING'), + h('span', ', '), + h('a.plain-link', { href: 'https://genemania.org/', target: '_blank' }, 'GeneMANIA'), + h('span', ', '), + h('a.plain-link', { href: 'https://apps.pathwaycommons.org/', target: '_blank' }, 'Pathway Commons Search') + ]) + ]), + ]), + h('li', [ + h('b', 'Network analysis'), + h('ul', [ + h('p', 'The research community has used pathway and interaction data in a wide variety of computational analyses:'), + h('li', [ + h('em', 'Constructing quantitative dynamical models from curated pathways'), + h('ul', [ + h('li', [ + h('a.plain-link', { href: 'https://pubmed.ncbi.nlm.nih.gov/24273241/', target: '_blank' }, 'Pathway Commons at virtual cell: use of pathway data for mathematical.'), + ' Bioinformatics 15:30 (2014)' + ]) + ]), + ]), + h('li', [ + h('em', 'Using curated pathways to assemble a kinase signalling network that explains kinase data'), + h('ul', [ + h('li', [ + h('a.plain-link', { href: 'https://www.nature.com/articles/nmeth.3773', target: '_blank' }, 'DREAM Challenge: Hill, S. M. et al. Inferring causal molecular networks: empirical assessment through a community-based effort.'), + ' Nat. Methods 13 (2016)' + ]) + ]), + ]), + h('li', [ + h('em', 'Using curated pathways to explain mutually exclusive mutations in cancer'), + h('ul', [ + h('li', [ + h('a.plain-link', { href: 'https://genomebiology.biomedcentral.com/articles/10.1186/s13059-015-0612-6', target: '_blank' }, 'Systematic identification of cancer driving signaling pathways based on mutual exclusivity of genomic alterations.'), + ' Genome Biology 16:45 (2015)' + ]) + ]), + ]) + ]) + ]) + ]) + ]} + ] + }) + ]) + ]), h('div.home-section.home-search-results', [ this.state.searchMode ? ( this.state.searching ? ( diff --git a/src/server/routes/api/document/crossref/map.js b/src/server/routes/api/document/crossref/map.js index 6227fc87c..fa6e82b68 100644 --- a/src/server/routes/api/document/crossref/map.js +++ b/src/server/routes/api/document/crossref/map.js @@ -1,6 +1,6 @@ import _ from 'lodash'; import { format } from 'date-fns'; -import { createPubmedArticle } from '../../../../../util/pubmed'; +import { COMMENTSCORRECTIONS_REFTYPE, createPubmedArticle } from '../../../../../util/pubmed'; /** * getAbstract @@ -169,6 +169,50 @@ const getPublicationTypeList = record => { return PublicationTypeList; }; +const getCommentsCorrectionsList = record => { + const CommentsCorrectionsList = []; + const CRRELATION_REFTYPE_MAP = new Map([ + ['is-preprint-of', COMMENTSCORRECTIONS_REFTYPE.UpdateIn], + ['has-preprint', COMMENTSCORRECTIONS_REFTYPE.UpdateOf], + ['is-comment-on', COMMENTSCORRECTIONS_REFTYPE.CommentOn], + ['has-comment', COMMENTSCORRECTIONS_REFTYPE.CommentIn], + ['isSupplementedBy', COMMENTSCORRECTIONS_REFTYPE.AssociatedDataset] + ]); + const CRRELATION_IDTYPES = new Set([ + 'doi', + 'pmid' + ]); + const { relation } = record; + if( relation ){ + for (let crRelationType of Object.keys(relation)) { + if( CRRELATION_REFTYPE_MAP.has( crRelationType ) ){ + const RefType = CRRELATION_REFTYPE_MAP.get( crRelationType ); + const relations = relation[crRelationType]; + for (let rel of relations) { + const { id, 'id-type': idType } = rel; + if( CRRELATION_IDTYPES.has( idType ) ){ + const CommentsCorrections = { + RefType, + PMID: null, + DOI: null, + RefSource: '' + }; + if( idType === 'doi' ){ + _.set(CommentsCorrections, 'DOI', id); + _.set(CommentsCorrections, 'RefSource', `doi: ${id}`); + } else if( idType === 'pmid' ){ + _.set(CommentsCorrections, 'PMID', id); + _.set(CommentsCorrections, 'RefSource', `pmid: ${id}`); + } + CommentsCorrectionsList.push(CommentsCorrections); + } + } + } + } + } + return CommentsCorrectionsList; +}; + const getMedlineCitation = record => { const { abstract, title, author } = record; const Abstract = getAbstract( abstract ); @@ -176,7 +220,8 @@ const getMedlineCitation = record => { const AuthorList = asAuthorList( author ); const Journal = getJournal( record ); const PublicationTypeList = getPublicationTypeList( record ); - const MedlineCitation = { Article: { Abstract, ArticleTitle, AuthorList, Journal, PublicationTypeList } }; + const CommentsCorrectionsList = getCommentsCorrectionsList( record ); + const MedlineCitation = { Article: { Abstract, ArticleTitle, AuthorList, Journal, PublicationTypeList }, CommentsCorrectionsList }; return MedlineCitation; }; diff --git a/src/server/routes/api/document/crossref/works.js b/src/server/routes/api/document/crossref/works.js index b1c57e184..567a08dd6 100644 --- a/src/server/routes/api/document/crossref/works.js +++ b/src/server/routes/api/document/crossref/works.js @@ -3,7 +3,7 @@ import logger from '../../../../logger'; import { search, get } from './api.js'; import { toPubMedArticle } from './map'; -import { isDoi } from '../../../../../util'; +import { HTTPStatusError, isDoi } from '../../../../../util'; import { ArticleIDError } from '../../../../../util/pubmed'; const ID_TYPE = Object.freeze({ @@ -111,7 +111,19 @@ const findPreprint = async paperId => { } } catch( err ) { - logger.error( `${err.name}: ${err.message}` ); + if( err instanceof HTTPStatusError ){ + const { response } = err; + const { url, headers } = response; + logger.error( `crossref.findPreprint threw ${err.name}: ${err.message}` ); + logger.error( `fetch URL: ${url}` ); + logger.error( headers.raw() ); + + } else if( err instanceof ArticleIDError ){ + logger.debug( `crossref.findPreprint threw ${err.name}: ${err.message}` ); + + } else { + logger.error( `crossref.findPreprint threw ${err.name}: ${err.message}` ); + } throw err; } }; diff --git a/src/server/routes/api/document/pubmed/fetchPubmed.js b/src/server/routes/api/document/pubmed/fetchPubmed.js index c9b381cf7..babdc848f 100644 --- a/src/server/routes/api/document/pubmed/fetchPubmed.js +++ b/src/server/routes/api/document/pubmed/fetchPubmed.js @@ -244,6 +244,42 @@ const getChemicalList = MedlineCitation => { return getElementsByName( ChemicalList, 'Chemical' ).map( getChemical ); }; + +const getCommentsCorrections = CommentsCorrections => { + const extractDOI = str => { + const doiRegex = /^doi: (?10\.\d{4,9}\/[-._;()/:A-Z0-9]+)$/i; + const matches = str.match( doiRegex ); + const DOI = _.get( matches, ['groups', 'DOI'], null ); + return DOI; + }; +// +// + const RefType = getElementAttribute( CommentsCorrections, 'RefType' ); + const PMID = getElementByName( CommentsCorrections, 'PMID' ) ? getElementText( getElementByName( CommentsCorrections, 'PMID' ) ): null; + const RefSource = getElementText( getElementByName( CommentsCorrections, 'RefSource' ) ); + const DOI = extractDOI( RefSource ); + return { RefType, PMID, RefSource, DOI }; +}; + +// +const getCommentsCorrectionsList = MedlineCitation => { + const CommentsCorrectionsList = getElementByName( MedlineCitation, 'CommentsCorrectionsList' ); + return getElementsByName( CommentsCorrectionsList, 'CommentsCorrections' ).map( getCommentsCorrections ); +}; + // // @@ -313,6 +349,7 @@ const getMedlineCitation = PubmedArticle => { const Article = getArticle( MedlineCitation ); const ChemicalList = getElementByName( MedlineCitation, 'ChemicalList' ) ? getChemicalList( MedlineCitation ): []; + const CommentsCorrectionsList = getElementByName( MedlineCitation, 'CommentsCorrectionsList' ) ? getCommentsCorrectionsList( MedlineCitation ): []; const KeywordList = getElementByName( MedlineCitation, 'KeywordList' ) ? getKeywordList( MedlineCitation ): []; const MeshheadingList = getElementByName( MedlineCitation, 'MeshHeadingList' ) ? getMeshheadingList( MedlineCitation ): []; const InvestigatorList = getElementByName( MedlineCitation, 'InvestigatorList' ) ? getInvestigatorList( MedlineCitation ): []; @@ -320,6 +357,7 @@ const getMedlineCitation = PubmedArticle => { return { Article, ChemicalList, + CommentsCorrectionsList, KeywordList, MeshheadingList, InvestigatorList diff --git a/src/server/routes/api/document/pubmed/index.js b/src/server/routes/api/document/pubmed/index.js index 2762f427c..5ee2df294 100644 --- a/src/server/routes/api/document/pubmed/index.js +++ b/src/server/routes/api/document/pubmed/index.js @@ -7,7 +7,7 @@ import { ArticleIDError, getPubmedCitation } from '../../../../../util/pubmed'; import { DEMO_ID } from '../../../../../config'; -import { isDigits, isDoi } from '../../../../../util'; +import { HTTPStatusError, isDigits, isDoi } from '../../../../../util'; const ID_TYPE = Object.freeze({ DOI: 'doi', @@ -93,6 +93,7 @@ const getPubmedArticle = async paperId => { try { const IdType = paperId2Type( paperId ); const fieldOpts = IdType === ID_TYPE.TITLE ? { field: ID_TYPE.TITLE } : {}; + // TODO - this should fetch when PMID-like, search otherwise const { searchHits } = await searchPubmed( paperId, fieldOpts ); const PubmedArticle = await findMatchingPubmedArticle( paperId, IdType, searchHits ); @@ -103,7 +104,19 @@ const getPubmedArticle = async paperId => { } } catch( err ) { - logger.error( `${err.name}: ${err.message}` ); + if( err instanceof HTTPStatusError ){ + const { response } = err; + const { url, headers } = response; + logger.error( `pubmed.getPubmedArticle threw ${err.name}: ${err.message}` ); + logger.error( `fetch URL: ${url}` ); + logger.error( headers.raw() ); + + } else if( err instanceof ArticleIDError ){ + logger.debug( `pubmed.getPubmedArticle threw ${err.name}: ${err.message}` ); + + } else { + logger.error( `pubmed.getPubmedArticle threw ${err.name}: ${err.message}` ); + } throw err; } } diff --git a/src/styles/accordion.css b/src/styles/accordion.css new file mode 100644 index 000000000..0d130fb53 --- /dev/null +++ b/src/styles/accordion.css @@ -0,0 +1,64 @@ +.accordion { + margin: auto; + width: 70%; + padding: 10px; +} + +.accordion-item { + padding: 1em 0.5em; + border-bottom: 1px solid rgb(234, 234, 234); +} + +.accordion-item-header { + position: relative; +} + +.accordion-item-header .accordion-item-header-title { + margin: 0; + max-width: 90%; +} + +.accordion-item-header:hover { + cursor: pointer; +} + +.accordion-item-header-icon { + position: absolute; + top: 50%; + right: 0; + transform: translateY(-50%); +} + +.accordion .accordion-item-content { + padding: 0 1em; + opacity: 0; + max-height: 0; + overflow: hidden; + + & p { + color: #000; + } + + & ul { + margin-top: 0; + } + + & li { + margin: 0; + } +} + +.accordion .accordion-item .accordion-item-header.open { + margin-bottom: 15px; +} + +.accordion .accordion-item .accordion-item-header.open + .accordion-item-content { + max-height: 2000px; + opacity: 1; +} + +@media (max-width: 750px) { + .accordion { + width: 100%; + } +} diff --git a/src/styles/editor/editor.css b/src/styles/editor/editor.css index 2e3b8be8e..0fdee2502 100644 --- a/src/styles/editor/editor.css +++ b/src/styles/editor/editor.css @@ -317,6 +317,18 @@ line-height: 1.4; } +.editor-info-relations { + margin-bottom: 0.8em; +} + +.editor-info-relation { + margin: 0.25em 0; +} + +.editor-info-relation-type { + font-style: italic; +} + .editor-info-author-spacer { margin-right: 0.333em; } diff --git a/src/styles/home.css b/src/styles/home.css index 731dd800b..2732dd617 100644 --- a/src/styles/home.css +++ b/src/styles/home.css @@ -660,9 +660,9 @@ } } -.home-search-doc-top { - /* flex: 1 1 auto; */ -} +/* .home-search-doc-top { + flex: 1 1 auto; +} */ .home-search-doc-title { position: relative; @@ -886,7 +886,7 @@ display: none; } - ..home-intro-figure-sm-alt-section { + .home-intro-figure-sm-alt-section { display: block; } diff --git a/src/styles/index.css b/src/styles/index.css index d4693a150..d4248022f 100644 --- a/src/styles/index.css +++ b/src/styles/index.css @@ -6,6 +6,7 @@ @import "./custom-icons.css"; @import "./popover"; @import "./carousel.css"; +@import "./accordion.css"; @import "./related-papers.css"; @import "./react-tabs.css"; @import "./init-app.css"; diff --git a/src/styles/related-papers.css b/src/styles/related-papers.css index 3f2cf4a67..2138f4b45 100644 --- a/src/styles/related-papers.css +++ b/src/styles/related-papers.css @@ -28,6 +28,7 @@ display: flex; flex-direction: column; justify-content: space-between; + min-width: 15em; } .related-paper-title { diff --git a/src/util/fetch.js b/src/util/fetch.js index eb3a628a8..b571ff06e 100644 --- a/src/util/fetch.js +++ b/src/util/fetch.js @@ -4,11 +4,12 @@ * Class representing a Fetch Response error */ class HTTPStatusError extends Error { - constructor( message, status, statusText ) { + constructor( message, status, statusText, response ) { super( message ); this.status = status; this.statusText = statusText; this.name = 'HTTPStatusError'; + this.response = response; } } @@ -24,7 +25,7 @@ class HTTPStatusError extends Error { const checkHTTPStatus = response => { const { statusText, status, ok } = response; if ( !ok ) { - throw new HTTPStatusError( `${statusText} (${status})`, status, statusText ); + throw new HTTPStatusError( `${statusText} (${status})`, status, statusText, response ); } return response; }; diff --git a/src/util/pubmed.js b/src/util/pubmed.js index 13ced4a5f..84f1b8be6 100644 --- a/src/util/pubmed.js +++ b/src/util/pubmed.js @@ -1,8 +1,32 @@ import _ from 'lodash'; import { parse as dateParse } from 'date-fns'; +import { DOI_LINK_BASE_URL, PUBMED_LINK_BASE_URL } from '../config'; +import { fromCamelCase, onlyCapitalizeFirst } from './strings'; const NUM_AUTHORS_SHOWING = 4; +const COMMENTSCORRECTIONS_REFTYPE = Object.freeze({ + AssociatedDataset: 'AssociatedDataset', + AssociatedPublication: 'AssociatedPublication', + CommentOn: 'CommentOn', + CommentIn: 'CommentIn', + ErratumIn: 'ErratumIn', + ErratumFor: 'ErratumFor', + ExpressionOfConcernIn: 'ExpressionOfConcernIn', + ExpressionOfConcernFor: 'ExpressionOfConcernFor', + RepublishedFrom: 'RepublishedFrom', + RepublishedIn: 'RepublishedIn', + RetractionOf: 'RetractionOf', + RetractionIn: 'RetractionIn', + UpdateIn: 'UpdateIn', + UpdateOf: 'UpdateOf', + SummaryForPatientsIn: 'SummaryForPatientsIn', + OriginalReportIn: 'OriginalReportIn', + ReprintOf: 'ReprintOf', + ReprintIn: 'ReprintIn', + Cites: 'Cites' +}); + /** * getAuthorName * @@ -209,6 +233,27 @@ const getReferenceString = Journal => { const getArticleId = ( PubmedArticle, IdType ) => _.get( _.find( _.get( PubmedArticle, ['PubmedData', 'ArticleIdList'], [] ), [ 'IdType', IdType ] ), 'id', null ); +const getRelations = PubmedArticle => { + const formatRefSource = refSource => _.trimEnd( refSource, ':;' );// ? _.first( refSource.split(';') ) : 'link'; + const commentsCorrections2Link = ({ RefSource, PMID, DOI }) => { + const hasPMID = !_.isNil( PMID ); + const hasDOI = !_.isNil( DOI ); + if( !hasPMID && !hasDOI ) return null; + const reference = formatRefSource( RefSource ); + const url = hasPMID ? `${PUBMED_LINK_BASE_URL}${PMID}` : `${DOI_LINK_BASE_URL}${DOI}`; + return ({ reference, url }); + }; + const raw = _.get( PubmedArticle, [ 'MedlineCitation', 'CommentsCorrectionsList' ], [] ); + const groups = _.groupBy( raw, 'RefType' ); + const relations = _.toPairs( groups ).map( ( [ RefType, CommentsCorrectionsList ] ) => { + const type = onlyCapitalizeFirst( fromCamelCase( RefType ) ); + const links = CommentsCorrectionsList.map( commentsCorrections2Link ); + return ({ type, links }); + }); + + return _.compact( relations ); +}; + /** * getPubmedCitation * @@ -238,8 +283,9 @@ const getPubmedCitation = PubmedArticle => { const doi = getArticleId( PubmedArticle, 'doi' ); const pubTypes = _.get( Article, 'PublicationTypeList' ); //required const { ISODate } = getPubDate( _.get( Article, ['Journal', 'JournalIssue'] ) ); + const relations = getRelations( PubmedArticle ); - return { title, authors, reference, abstract, pmid, doi, pubTypes, ISODate }; + return { title, authors, reference, abstract, pmid, doi, pubTypes, ISODate, relations }; }; /** @@ -278,6 +324,7 @@ const createPubmedArticle = ({ articleTitle = null, journalName = null, publicat PublicationTypeList: [] }, ChemicalList: [], + CommentsCorrectionsList: [], InvestigatorList: [], KeywordList: [], MeshheadingList: [] @@ -303,4 +350,4 @@ class ArticleIDError extends Error { } } -export { getPubmedCitation, createPubmedArticle, ArticleIDError, findOrcidIdentifier }; \ No newline at end of file +export { getPubmedCitation, createPubmedArticle, ArticleIDError, findOrcidIdentifier, COMMENTSCORRECTIONS_REFTYPE }; \ No newline at end of file diff --git a/src/util/strings.js b/src/util/strings.js index 4d879fed8..40fa7daec 100644 --- a/src/util/strings.js +++ b/src/util/strings.js @@ -30,4 +30,12 @@ const stripFinalPeriod = text => { return text; }; -export { stringDistanceMetric, longestCommonPrefixLength, truncateString, stripFinalPeriod }; +const fromCamelCase = str => { + return str.replace(/([a-z])([A-Z])/g, '$1 $2'); +}; + +const onlyCapitalizeFirst = str => { + return str.charAt(0).toUpperCase() + str.slice(1).toLowerCase(); +}; + +export { stringDistanceMetric, longestCommonPrefixLength, truncateString, stripFinalPeriod, fromCamelCase, onlyCapitalizeFirst }; diff --git a/test/crossRef/10.7554_elife.86689.3.json b/test/crossRef/10.7554_elife.86689.3.json new file mode 100644 index 000000000..2fcae4fa3 --- /dev/null +++ b/test/crossRef/10.7554_elife.86689.3.json @@ -0,0 +1,331 @@ +{ + "indexed": { + "date-parts": [ + [ + 2024, + 3, + 4 + ] + ], + "date-time": "2024-03-04T21:37:09Z", + "timestamp": 1709588229648 + }, + "posted": { + "date-parts": [ + [ + 2023, + 8, + 25 + ] + ] + }, + "group-title": "elife", + "reference-count": 0, + "publisher": "eLife Sciences Publications, Ltd", + "license": [ + { + "start": { + "date-parts": [ + [ + 2023, + 8, + 25 + ] + ], + "date-time": "2023-08-25T00:00:00Z", + "timestamp": 1692921600000 + }, + "content-version": "unspecified", + "delay-in-days": 0, + "URL": "http:\/\/creativecommons.org\/licenses\/by\/4.0\/" + } + ], + "content-domain": { + "domain": [], + "crossmark-restriction": false + }, + "short-container-title": [], + "abstract": "The primary cilium plays important roles in regulating cell differentiation, signal transduction, and tissue organization. Dysfunction of the primary cilium can lead to ciliopathies and cancer. The formation and organization of the primary cilium are highly associated with cell polarity proteins, such as the apical polarity protein CRB3. However, the molecular mechanisms by which CRB3 regulates ciliogenesis and the location of CRB3 remain unknown. Here, we show that CRB3, as a navigator, regulates vesicle trafficking in γ-TuRC assembly during ciliogenesis and cilium-related Hh and Wnt signaling pathways in tumorigenesis. Crb3 knockout mice display severe defects of the primary cilium in the mammary ductal lumen and renal tubule, while mammary epithelial-specific Crb3 knockout mice exhibit the promotion of ductal epithelial hyperplasia and tumorigenesis. CRB3 is essential for lumen formation and ciliary assembly in the mammary epithelium. We demonstrate that CRB3 localizes to the basal body and that CRB3 trafficking is mediated by Rab11-positive endosomes. Significantly, CRB3 interacts with Rab11 to navigate GCP6\/Rab11 trafficking vesicles to CEP290, resulting in intact γ-TuRC assembly. In addition, CRB3-depleted cells are unresponsive to the activation of the Hh signaling pathway, while CRB3 regulates the Wnt signaling pathway. Therefore, our studies reveal the molecular mechanisms by which CRB3 recognizes Rab11-positive endosomes to facilitate ciliogenesis, and regulates cilium-related signaling pathways in tumorigenesis.<\/jats:p>", + "DOI": "10.7554\/elife.86689.3", + "type": "posted-content", + "created": { + "date-parts": [ + [ + 2023, + 8, + 25 + ] + ], + "date-time": "2023-08-25T11:05:14Z", + "timestamp": 1692961514000 + }, + "source": "Crossref", + "is-referenced-by-count": 0, + "title": [ + "CRB3 navigates Rab11 trafficking vesicles to promote γTuRC assembly during ciliogenesis" + ], + "prefix": "10.7554", + "author": [ + { + "given": "Bo", + "family": "Wang", + "sequence": "first", + "affiliation": [ + { + "name": "Center for Translational Medicine, the First Affiliated Hospital of Xi’an Jiaotong University, Xi’an 710061, Shaanxi, P.R. China" + }, + { + "name": "Key Laboratory for Tumor Precision Medicine of Shaanxi Province, the First Affiliated Hospital of Xi’an Jiaotong University, Xi’an 710061, Shaanxi, P.R. China" + } + ] + }, + { + "given": "Zheyong", + "family": "Liang", + "sequence": "additional", + "affiliation": [ + { + "name": "Center for Translational Medicine, the First Affiliated Hospital of Xi’an Jiaotong University, Xi’an 710061, Shaanxi, P.R. China" + }, + { + "name": "Department of Cardiovascular Surgery, the First Affiliated Hospital of Xi’an Jiaotong University, Xi’an 710061, Shaanxi, P.R. China" + } + ] + }, + { + "given": "Tan", + "family": "tan", + "sequence": "additional", + "affiliation": [ + { + "name": "Center for Precision Medicine, Affiliated to The First People’s Hospital of Chenzhou, University of South China, Chenzhou 423000, Hunan, P.R. China" + } + ] + }, + { + "given": "Miao", + "family": "Zhang", + "sequence": "additional", + "affiliation": [ + { + "name": "Center for Translational Medicine, the First Affiliated Hospital of Xi’an Jiaotong University, Xi’an 710061, Shaanxi, P.R. China" + }, + { + "name": "Key Laboratory for Tumor Precision Medicine of Shaanxi Province, the First Affiliated Hospital of Xi’an Jiaotong University, Xi’an 710061, Shaanxi, P.R. China" + } + ] + }, + { + "given": "Yina", + "family": "Jiang", + "sequence": "additional", + "affiliation": [ + { + "name": "Department of Pathology, the First Affiliated Hospital of Xi’an Jiaotong University, Xi’an 710061, Shaanxi, P.R. China" + } + ] + }, + { + "given": "Yangyang", + "family": "Shang", + "sequence": "additional", + "affiliation": [ + { + "name": "Center for Translational Medicine, the First Affiliated Hospital of Xi’an Jiaotong University, Xi’an 710061, Shaanxi, P.R. China" + }, + { + "name": "Key Laboratory for Tumor Precision Medicine of Shaanxi Province, the First Affiliated Hospital of Xi’an Jiaotong University, Xi’an 710061, Shaanxi, P.R. China" + } + ] + }, + { + "given": "Xiaoqian", + "family": "Gao", + "sequence": "additional", + "affiliation": [ + { + "name": "Center for Translational Medicine, the First Affiliated Hospital of Xi’an Jiaotong University, Xi’an 710061, Shaanxi, P.R. China" + }, + { + "name": "Key Laboratory for Tumor Precision Medicine of Shaanxi Province, the First Affiliated Hospital of Xi’an Jiaotong University, Xi’an 710061, Shaanxi, P.R. China" + } + ] + }, + { + "given": "Shaoran", + "family": "Song", + "sequence": "additional", + "affiliation": [ + { + "name": "Center for Translational Medicine, the First Affiliated Hospital of Xi’an Jiaotong University, Xi’an 710061, Shaanxi, P.R. China" + }, + { + "name": "Key Laboratory for Tumor Precision Medicine of Shaanxi Province, the First Affiliated Hospital of Xi’an Jiaotong University, Xi’an 710061, Shaanxi, P.R. China" + } + ] + }, + { + "given": "Ruiqi", + "family": "Wang", + "sequence": "additional", + "affiliation": [ + { + "name": "Center for Translational Medicine, the First Affiliated Hospital of Xi’an Jiaotong University, Xi’an 710061, Shaanxi, P.R. China" + }, + { + "name": "Key Laboratory for Tumor Precision Medicine of Shaanxi Province, the First Affiliated Hospital of Xi’an Jiaotong University, Xi’an 710061, Shaanxi, P.R. China" + } + ] + }, + { + "given": "He", + "family": "Chen", + "sequence": "additional", + "affiliation": [ + { + "name": "Center for Translational Medicine, the First Affiliated Hospital of Xi’an Jiaotong University, Xi’an 710061, Shaanxi, P.R. China" + }, + { + "name": "Key Laboratory for Tumor Precision Medicine of Shaanxi Province, the First Affiliated Hospital of Xi’an Jiaotong University, Xi’an 710061, Shaanxi, P.R. China" + } + ] + }, + { + "given": "Jie", + "family": "Liu", + "sequence": "additional", + "affiliation": [ + { + "name": "Center for Translational Medicine, the First Affiliated Hospital of Xi’an Jiaotong University, Xi’an 710061, Shaanxi, P.R. China" + }, + { + "name": "Key Laboratory for Tumor Precision Medicine of Shaanxi Province, the First Affiliated Hospital of Xi’an Jiaotong University, Xi’an 710061, Shaanxi, P.R. China" + } + ] + }, + { + "given": "Juan", + "family": "Li", + "sequence": "additional", + "affiliation": [ + { + "name": "Center for Translational Medicine, the First Affiliated Hospital of Xi’an Jiaotong University, Xi’an 710061, Shaanxi, P.R. China" + }, + { + "name": "Key Laboratory for Tumor Precision Medicine of Shaanxi Province, the First Affiliated Hospital of Xi’an Jiaotong University, Xi’an 710061, Shaanxi, P.R. China" + } + ] + }, + { + "given": "Yu", + "family": "Ren", + "sequence": "additional", + "affiliation": [ + { + "name": "Department of Breast Surgery, the First Affiliated Hospital of Xi’an Jiaotong University, Xi’an 710061, Shaanxi, P.R. China" + } + ] + }, + { + "given": "Peijun", + "family": "Liu", + "sequence": "additional", + "affiliation": [ + { + "name": "Center for Translational Medicine, the First Affiliated Hospital of Xi’an Jiaotong University, Xi’an 710061, Shaanxi, P.R. China" + }, + { + "name": "Key Laboratory for Tumor Precision Medicine of Shaanxi Province, the First Affiliated Hospital of Xi’an Jiaotong University, Xi’an 710061, Shaanxi, P.R. China" + } + ] + } + ], + "member": "4374", + "container-title": [], + "original-title": [], + "deposited": { + "date-parts": [ + [ + 2023, + 8, + 25 + ] + ], + "date-time": "2023-08-25T11:05:14Z", + "timestamp": 1692961514000 + }, + "score": 1, + "resource": { + "primary": { + "URL": "https:\/\/elifesciences.org\/reviewed-preprints\/86689v3" + } + }, + "subtitle": [], + "short-title": [], + "issued": { + "date-parts": [ + [ + 2023, + 8, + 25 + ] + ] + }, + "references-count": 0, + "URL": "http:\/\/dx.doi.org\/10.7554\/elife.86689.3", + "relation": { + "has-version": [ + { + "id-type": "doi", + "id": "10.7554\/eLife.86689.2", + "asserted-by": "subject" + }, + { + "id-type": "doi", + "id": "10.7554\/eLife.86689.4", + "asserted-by": "object" + } + ], + "is-version-of": [ + { + "id-type": "doi", + "id": "10.1101\/2023.02.15.528649", + "asserted-by": "subject" + } + ], + "has-review": [ + { + "id-type": "doi", + "id": "10.7554\/eLife.86689.3.sa2", + "asserted-by": "object" + }, + { + "id-type": "doi", + "id": "10.7554\/eLife.86689.3.sa1", + "asserted-by": "object" + }, + { + "id-type": "doi", + "id": "10.7554\/eLife.86689.3.sa0", + "asserted-by": "object" + } + ], + "is-preprint-of": [ + { + "id-type": "doi", + "id": "10.7554\/eLife.86689.4", + "asserted-by": "object" + } + ] + }, + "published": { + "date-parts": [ + [ + 2023, + 8, + 25 + ] + ] + }, + "subtype": "preprint" +} \ No newline at end of file diff --git a/test/crossref/map.js b/test/crossref/map.js index 522ca73ef..39de9d509 100644 --- a/test/crossref/map.js +++ b/test/crossref/map.js @@ -9,6 +9,7 @@ import work_doi_4 from './10.1101_2022.09.28.22280453.json'; import work_doi_5 from './10.1016_j.molcel.2019.06.008.json'; import work_doi_6 from './10.7554_eLife.68292.json'; import work_doi_7 from './10.3030_101067344.json'; +import work_doi_8 from './10.7554_elife.86689.3.json'; describe('map', function(){ @@ -97,6 +98,32 @@ describe('map', function(){ }); // PublicationTypeList + describe('CommentsCorrectionsList', () => { + + describe('RefType: UpdateIn', () => { + const RefType = 'UpdateIn'; + const { MedlineCitation: { CommentsCorrectionsList } } = toPubMedArticle( work_doi_8 ); + + it('Should contain a CommentsCorrectionsList with an element', () => { + expect( CommentsCorrectionsList.length ).to.not.equal( 0 ); + }); + + it('Should have a CommentsCorrections with attributes: RefType, RefSource, DOI', () => { + const commentsCorrections = _.find(CommentsCorrectionsList, ['RefType', RefType ]); + expect( commentsCorrections ).to.have.property( 'DOI' ); + expect( commentsCorrections ).to.have.property( 'RefType' ); + expect( commentsCorrections ).to.have.property( 'RefSource' ); + }); + + it('Should have a CommentsCorrections with DOI-based values: RefSource, DOI', () => { + const commentsCorrections = _.find(CommentsCorrectionsList, ['RefType', RefType ]); + expect( commentsCorrections.DOI ).to.match(/^10\.\d{4,9}\/[-._;()/:A-Z0-9]+$/i); + expect( commentsCorrections.RefSource ).to.match(/^doi: 10\.\d{4,9}\/[-._;()/:A-Z0-9]+$/i); + }); + }); + + }); // CommentsCorrectionsList + }); // Article }); // type: posted-content, subtype: preprint @@ -170,7 +197,7 @@ describe('map', function(){ describe('article 2', () => { describe('MedlineCitation > Article', () => { - const { MedlineCitation: { Article } } = toPubMedArticle( work_doi_6 ); + const { MedlineCitation: { Article, CommentsCorrectionsList } } = toPubMedArticle( work_doi_6 ); describe('Text fields (ArticleTitle, Abstract)', () => { it('Should correctly map Abstract and ArticleTitle', () => { @@ -232,6 +259,31 @@ describe('map', function(){ }); // PublicationTypeList + describe('CommentsCorrectionsList', () => { + + describe('RefType: UpdateOf', () => { + const RefType = 'UpdateOf'; + + it('Should contain a CommentsCorrectionsList with an element', () => { + expect( CommentsCorrectionsList.length ).to.not.equal( 0 ); + }); + + it('Should have a CommentsCorrections with attributes: RefType, RefSource, DOI', () => { + const commentsCorrections = _.find(CommentsCorrectionsList, ['RefType', RefType ]); + expect( commentsCorrections ).to.have.property( 'DOI' ); + expect( commentsCorrections ).to.have.property( 'RefType' ); + expect( commentsCorrections ).to.have.property( 'RefSource' ); + }); + + it('Should have a CommentsCorrections with DOI-based values: RefSource, DOI', () => { + const commentsCorrections = _.find(CommentsCorrectionsList, ['RefType', RefType ]); + expect( commentsCorrections.DOI ).to.match(/^10\.\d{4,9}\/[-._;()/:A-Z0-9]+$/i); + expect( commentsCorrections.RefSource ).to.match(/^doi: 10\.\d{4,9}\/[-._;()/:A-Z0-9]+$/i); + }); + }); + + }); // CommentsCorrectionsList + }); // article 2 diff --git a/test/pubmed/fetchPubmed.js b/test/pubmed/fetchPubmed.js index 23959460a..f21fd422f 100644 --- a/test/pubmed/fetchPubmed.js +++ b/test/pubmed/fetchPubmed.js @@ -5,6 +5,7 @@ import { expect } from 'chai'; import convert from 'xml-js'; import { pubmedDataConverter } from '../../src/server/routes/api/document/pubmed/fetchPubmed'; +import { isDigits, isDoi } from '../../src/util'; const TEST_PUBMED_DATA = new Map([ ['151222', 'pmid_151222.xml'], // MedlineDate @@ -12,7 +13,9 @@ const TEST_PUBMED_DATA = new Map([ ['29440426', 'pmid_29440426.xml'], // PubMedData ['30078747', 'pmid_30078747.xml'], // InvestigatorList ['30115697', 'pmid_30115697.xml'], // Markup; Identifier - ['31511694', 'pmid_31511694.xml'] + ['31511694', 'pmid_31511694.xml'], + ['9500320', 'pmid_9500320.xml'], //CommentsCorrections - RetractionIn etc + ['38289659', 'pmid_38289659.xml'] //CommentsCorrections RefSource: doi string ]); const xml2jsOpts = {}; @@ -215,8 +218,9 @@ describe('fetchPubmed', function(){ it('Should have item with top-level attributes', () => { if( !_.isEmpty( Identifier ) ){ - expect( Identifier ).to.have.property( 'Identifier[0].Source' ); - expect( Identifier ).to.have.property( 'Identifier[0].id' ); + let first = _.first( Identifier ); + expect( first ).to.have.property( 'Source' ); + expect( first ).to.have.property( 'id' ); } }); @@ -277,6 +281,46 @@ describe('fetchPubmed', function(){ });//ChemicalList + describe( 'CommentsCorrectionsList', () => { + + let CommentsCorrectionsList; + before( () => { + CommentsCorrectionsList = _.get( MedlineCitation, 'CommentsCorrectionsList' ); + }); + + it('Should be a list, when exists', () => { + if( CommentsCorrectionsList ){ // Optional + expect( CommentsCorrectionsList ).to.be.an.instanceof(Array); + } + }); + + it('Should have required attributes, when exists', () => { + if( CommentsCorrectionsList ){ // Optional + for (const CommentsCorrections of CommentsCorrectionsList) { + expect( CommentsCorrections ).to.have.property( 'RefSource' ); + expect( CommentsCorrections ).to.have.property( 'PMID' ); + expect( CommentsCorrections ).to.have.property( 'DOI' ); + expect( CommentsCorrections ).to.have.property( 'RefType' ); + } + } + }); + + it('Should have correctly formatted PMID and DOI, when not null', () => { + if( CommentsCorrectionsList ){ // Optional + for (const CommentsCorrections of CommentsCorrectionsList) { + if( CommentsCorrections.PMID !== null ){ + expect( isDigits( CommentsCorrections.PMID ) ).to.be.true; + } + if( CommentsCorrections.DOI !== null ){ + expect( isDoi( CommentsCorrections.DOI ) ).to.be.true; + } + } + } + }); + + });//CommentsCorrectionsList + + describe( 'KeywordList', () => { let KeywordList; diff --git a/test/pubmed/pmid_38289659.xml b/test/pubmed/pmid_38289659.xml new file mode 100644 index 000000000..571c61026 --- /dev/null +++ b/test/pubmed/pmid_38289659.xml @@ -0,0 +1,1175 @@ + + + + + + 38289659 + + 2024 + 01 + 31 + + + 2024 + 03 + 20 + +
+ + 2050-084X + + 12 + + 2024 + Jan + 30 + + + eLife + Elife + + Orai-mediated calcium entry determines activity of central dopaminergic neurons by regulation of gene expression. + RP88808 + 10.7554/eLife.88808 + + Maturation and fine-tuning of neural circuits frequently require neuromodulatory signals that set the excitability threshold, neuronal connectivity, and synaptic strength. Here, we present a mechanistic study of how neuromodulator-stimulated intracellular Ca + 2+ signals, through the store-operated Ca + 2+ channel Orai, regulate intrinsic neuronal properties by control of developmental gene expression in flight-promoting central dopaminergic neurons (fpDANs). The fpDANs receive cholinergic inputs for release of dopamine at a central brain tripartite synapse that sustains flight (Sharma and Hasan, 2020). Cholinergic inputs act on the muscarinic acetylcholine receptor to stimulate intracellular Ca + 2+ release through the endoplasmic reticulum (ER) localised inositol 1,4,5-trisphosphate receptor followed by ER-store depletion and Orai-mediated store-operated Ca + 2+ entry (SOCE). Analysis of gene expression in fpDANs followed by genetic, cellular, and molecular studies identified Orai-mediated Ca + 2+ entry as a key regulator of excitability in fpDANs during circuit maturation. SOCE activates the transcription factor trithorax-like (Trl), which in turn drives expression of a set of genes, including + Set2, that encodes a histone 3 lysine 36 methyltransferase (H3K36me3). Set2 function establishes a positive feedback loop, essential for receiving neuromodulatory cholinergic inputs and sustaining SOCE. Chromatin-modifying activity of Set2 changes the epigenetic status of fpDANs and drives expression of key ion channel and signalling genes that determine fpDAN activity. Loss of activity reduces the axonal arborisation of fpDANs within the MB lobe and prevents dopamine release required for the maintenance of long flight. + + © 2023, Mitra et al. + + + + Mitra + Rishav + R + 0000-0001-6840-6160 + + National Centre for Biological Sciences, Tata Institute of Fundamental Research, Bangalore, India. + + + + Richhariya + Shlesha + S + + National Centre for Biological Sciences, Tata Institute of Fundamental Research, Bangalore, India. + + + Department of Biology, Brandeis University, Waltham, United States. + + + + Hasan + Gaiti + G + 0000-0001-7194-383X + + National Centre for Biological Sciences, Tata Institute of Fundamental Research, Bangalore, India. + + + + eng + + + GEO + + GSE230134 + GSE47280 + GSE47319 + + + + + + BT/PR28450/MED/122/2018 + Department of Biotechnology, Ministry of Science and Technology, India + + + + + Journal Article + + + 2024 + 01 + 30 + +
+ + England + Elife + 101579614 + 2050-084X + + + + SY7Q814VUP + Calcium + + + VTD58H1Z2X + Dopamine + + + 0 + Calcium, Dietary + + + EC 2.1.1.43 + Histone-Lysine N-Methyltransferase + + + 0 + Cholinergic Agents + + + IM + + + doi: 10.1101/2023.05.24.542083 + + + doi: 10.7554/eLife.88808.1 + + + doi: 10.7554/eLife.88808.2 + + + doi: 10.7554/eLife.88808.3 + + + + + Calcium + + + Dopaminergic Neurons + + + Dopamine + + + Calcium, Dietary + + + Histone-Lysine N-Methyltransferase + + + Cholinergic Agents + + + + D. melanogaster + Drosophila flight + PPL1 DANs + SOCE + genetics + genomics + histone modifications + neuromodulation + neuroscience + trithorax-like/GAF + + RM, SR, GH No competing interests declared +
+ + + + 2024 + 1 + 31 + 6 + 43 + + + 2024 + 1 + 30 + 12 + 44 + + + 2024 + 1 + 30 + 11 + 54 + + + 2024 + 1 + 30 + + + epublish + + 38289659 + PMC10945566 + 10.7554/eLife.88808 + 88808 + + + + Agrawal N, Venkiteswaran G, Sadaf S, Padmanabhan N, Banerjee S, Hasan G. Inositol 1,4,5-trisphosphate receptor and dSTIM function in Drosophila insulin-producing neurons regulates systemic intracellular calcium homeostasis and flight. The Journal of Neuroscience. 2010;30:1301–1313. doi: 10.1523/JNEUROSCI.3668-09.2010. + + 10.1523/JNEUROSCI.3668-09.2010 + PMC6633787 + 20107057 + + + + Agrawal T, Sadaf S, Hasan G. A genetic RNAi screen for IP₃/Ca. PLOS Genetics. 2013;9:e1003849. doi: 10.1371/journal.pgen.1003849. + + 10.1371/journal.pgen.1003849 + PMC3789835 + 24098151 + + + + Akin O, Zipursky SL. Activity regulates brain development in the fly. Current Opinion in Genetics & Development. 2020;65:8–13. doi: 10.1016/j.gde.2020.04.005. + + 10.1016/j.gde.2020.04.005 + 32593792 + + + + Ardehali MB, Mei A, Zobeck KL, Caron M, Lis JT, Kusch T. Drosophila Set1 is the major histone H3 lysine 4 trimethyltransferase with role in transcription. The EMBO Journal. 2011;30:2817–2828. doi: 10.1038/emboj.2011.194. + + 10.1038/emboj.2011.194 + PMC3160253 + 21694722 + + + + Arjun McKinney A, Petrova R, Panagiotakos G. Calcium and activity-dependent signaling in the developing cerebral cortex. Development. 2022;149:dev198853. doi: 10.1242/dev.198853. + + 10.1242/dev.198853 + PMC9578689 + 36102617 + + + + Arrigoni E, Saper CB. What optogenetic stimulation is telling us (and failing to tell us) about fast neurotransmitters and neuromodulators in brain circuits for wake-sleep regulation. Current Opinion in Neurobiology. 2014;29:165–171. doi: 10.1016/j.conb.2014.07.016. + + 10.1016/j.conb.2014.07.016 + PMC4268002 + 25064179 + + + + Aso Y, Hattori D, Yu Y, Johnston RM, Iyer NA, Ngo TTB, Dionne H, Abbott LF, Axel R, Tanimoto H, Rubin GM. The neuronal architecture of the mushroom body provides a logic for associative learning. eLife. 2014;3:e04577. doi: 10.7554/eLife.04577. + + 10.7554/eLife.04577 + PMC4273437 + 25535793 + + + + Aso Y, Rubin GM. Dopaminergic neurons write and update memories with cell-type-specific rules. eLife. 2016;5:e16135. doi: 10.7554/eLife.16135. + + 10.7554/eLife.16135 + PMC4987137 + 27441388 + + + + Bannister AJ, Kouzarides T. Regulation of chromatin by histone modifications. Cell Research. 2011;21:381–395. doi: 10.1038/cr.2011.22. + + 10.1038/cr.2011.22 + PMC3193420 + 21321607 + + + + Berry JA, Cervantes-Sandoval I, Chakraborty M, Davis RL. Sleep facilitates memory by blocking dopamine neuron-mediated forgetting. Cell. 2015;161:1656–1667. doi: 10.1016/j.cell.2015.05.027. + + 10.1016/j.cell.2015.05.027 + PMC4671826 + 26073942 + + + + Cai Y, Zhang Y, Loh YP, Tng JQ, Lim MC, Cao Z, Raju A, Lieberman Aiden E, Li S, Manikandan L, Tergaonkar V, Tucker-Kellogg G, Fullwood MJ. H3K27me3-rich genomic regions can function as silencers to repress gene expression via chromatin interactions. Nature Communications. 2021;12:719. doi: 10.1038/s41467-021-20940-y. + + 10.1038/s41467-021-20940-y + PMC7846766 + 33514712 + + + + Celniker SE, Dillon LAL, Gerstein MB, Gunsalus KC, Henikoff S, Karpen GH, Kellis M, Lai EC, Lieb JD, MacAlpine DM, Micklem G, Piano F, Snyder M, Stein L, White KP, Waterston RH, modENCODE Consortium Unlocking the secrets of the genome. Nature. 2009;459:927–930. doi: 10.1038/459927a. + + 10.1038/459927a + PMC2843545 + 19536255 + + + + Cervantes-Sandoval I, Phan A, Chakraborty M, Davis RL. Reciprocal synapses between mushroom body and dopamine neurons form a positive feedback loop required for learning. eLife. 2017;6:e23789. doi: 10.7554/eLife.23789. + + 10.7554/eLife.23789 + PMC5425253 + 28489528 + + + + Chakraborty S, Deb BK, Chorna T, Konieczny V, Taylor CW, Hasan G. Mutant IP3 receptors attenuate store-operated Ca2+ entry by destabilizing STIM-Orai interactions in Drosophila neurons. Journal of Cell Science. 2016;129:3903–3910. doi: 10.1242/jcs.191585. + + 10.1242/jcs.191585 + PMC5087660 + 27591258 + + + + Chakraborty S, Hasan G. Spontaneous Ca2+ Influx in Drosophila pupal neurons is modulated by IP3-Receptor function and influences maturation of the flight circuit. Frontiers in Molecular Neuroscience. 2017;10:111. doi: 10.3389/fnmol.2017.00111. + + 10.3389/fnmol.2017.00111 + PMC5398029 + 28473752 + + + + Chen TW, Wardill TJ, Sun Y, Pulver SR, Renninger SL, Baohan A, Schreiter ER, Kerr RA, Orger MB, Jayaraman V, Looger LL, Svoboda K, Kim DS. Ultrasensitive fluorescent proteins for imaging neuronal activity. Nature. 2013;499:295–300. doi: 10.1038/nature12354. + + 10.1038/nature12354 + PMC3777791 + 23868258 + + + + Chopra VS, Srinivasan A, Kumar RP, Mishra K, Basquin D, Docquier M, Seum C, Pauli D, Mishra RK. Transcriptional activation by GAGA factor is through its direct interaction with dmTAF3. Developmental Biology. 2008;317:660–670. doi: 10.1016/j.ydbio.2008.02.008. + + 10.1016/j.ydbio.2008.02.008 + 18367161 + + + + Ciceri G, Cho H, Kshirsagar M, Baggiolini A, Aromolaran KA, Walsh RM, Goldstein PA, Koche RP, Leslie CS, Studer L. An Epigenetic Barrier Sets the Timing of Human Neuronal Maturation. bioRxiv. 2022 doi: 10.1101/2022.06.02.490114. + + 10.1101/2022.06.02.490114 + PMC10881400 + 38297124 + + + + Daniels RW, Gelfand MV, Collins CA, DiAntonio A. Visualizing glutamatergic cell bodies and synapses in Drosophila larval and adult CNS. The Journal of Comparative Neurology. 2008;508:131–152. doi: 10.1002/cne.21670. + + 10.1002/cne.21670 + 18302156 + + + + Depetris-Chauvin A, Berni J, Aranovich EJ, Muraro NI, Beckwith EJ, Ceriani MF. Adult-specific electrical silencing of pacemaker neurons uncouples molecular clock from circadian outputs. Current Biology. 2011;21:1783–1793. doi: 10.1016/j.cub.2011.09.027. + + 10.1016/j.cub.2011.09.027 + PMC3226771 + 22018542 + + + + Dillon SC, Zhang X, Trievel RC, Cheng X. The SET-domain protein superfamily: protein lysine methyltransferases. Genome Biology. 2005;6:227. doi: 10.1186/gb-2005-6-8-227. + + 10.1186/gb-2005-6-8-227 + PMC1273623 + 16086857 + + + + Dorogova NV, Fedorova EV, Bolobolova EU, Ogienko AA, Baricheva EM. GAGA protein is essential for male germ cell development in Drosophila. Genesis. 2014;52:738–751. doi: 10.1002/dvg.22789. + + 10.1002/dvg.22789 + 24817547 + + + + Ebihara T, Guo F, Zhang L, Kim JY, Saffen D. Muscarinic acetylcholine receptors stimulate Ca2+ influx in PC12D cells predominantly via activation of Ca2+ store-operated channels. Journal of Biochemistry. 2006;139:449–458. doi: 10.1093/jb/mvj064. + + 10.1093/jb/mvj064 + 16567410 + + + + Finogenova K, Bonnet J, Poepsel S, Schäfer IB, Finkl K, Schmid K, Litz C, Strauss M, Benda C, Müller J. Structural basis for PRC2 decoding of active histone methylation marks H3K36me2/3. eLife. 2020;9:e61964. doi: 10.7554/eLife.61964. + + 10.7554/eLife.61964 + PMC7725500 + 33211010 + + + + Gaskill MM, Gibson TJ, Larson ED, Harrison MM. GAF is essential for zygotic genome activation and chromatin accessibility in the early Drosophila embryo. eLife. 2021;10:e66668. doi: 10.7554/eLife.66668. + + 10.7554/eLife.66668 + PMC8079149 + 33720012 + + + + Geng H, Chen H, Wang H, Wang L. The histone modifications of neuronal plasticity. Neural Plasticity. 2021;2021:6690523. doi: 10.1155/2021/6690523. + + 10.1155/2021/6690523 + PMC7892255 + 33628222 + + + + Gilbert LA, Larson MH, Morsut L, Liu Z, Brar GA, Torres SE, Stern-Ginossar N, Brandman O, Whitehead EH, Doudna JA, Lim WA, Weissman JS, Qi LS. CRISPR-mediated modular RNA-guided regulation of transcription in eukaryotes. Cell. 2013;154:442–451. doi: 10.1016/j.cell.2013.06.044. + + 10.1016/j.cell.2013.06.044 + PMC3770145 + 23849981 + + + + Goedhart J. PlotTwist: A web app for plotting and annotating continuous data. PLOS Biology. 2020;18:e3000581. doi: 10.1371/journal.pbio.3000581. + + 10.1371/journal.pbio.3000581 + PMC6980690 + 31929523 + + + + Goedhart J, Pollard T. SuperPlotsOfData-a web app for the transparent display and quantitative comparison of continuous data from different conditions. Molecular Biology of the Cell. 2021;32:470–474. doi: 10.1091/mbc.E20-09-0583. + + 10.1091/mbc.E20-09-0583 + PMC8101441 + 33476183 + + + + Govorunova EG, Sineshchekov OA, Janz R, Liu X, Spudich JL. Neuroscience: natural light-gated anion channels: A family of microbial rhodopsins for advanced optogenetics. Science. 2015;349:647–650. doi: 10.1126/science.aaa7484. + + 10.1126/science.aaa7484 + PMC4764398 + 26113638 + + + + Greenberg AJ, Yanowitz JL, Schedl P. The Drosophila GAGA factor is required for dosage compensation in males and for the formation of the male-specific-lethal complex chromatin entry site at 12DE. Genetics. 2004;166:279–289. doi: 10.1534/genetics.166.1.279. + + 10.1534/genetics.166.1.279 + PMC1470682 + 15020425 + + + + Gu X, Spitzer NC. Distinct aspects of neuronal differentiation encoded by frequency of spontaneous Ca2+ transients. Nature. 1995;375:784–787. doi: 10.1038/375784a0. + + 10.1038/375784a0 + 7596410 + + + + Hardie RC, Peretz A, Suss-Toby E, Rom-Glas A, Bishop SA, Selinger Z, Minke B. Protein kinase C is required for light adaptation in Drosophila photoreceptors. Nature. 1993;363:634–637. doi: 10.1038/363634a0. + + 10.1038/363634a0 + 8510756 + + + + Hasan G, Sharma A. Regulation of neuronal physiology by Ca2+ release through the IP3R. Current Opinion in Physiology. 2020;17:1–8. doi: 10.1016/j.cophys.2020.06.001. + + 10.1016/j.cophys.2020.06.001 + + + + Ho J, Tumkaya T, Aryal S, Choi H, Claridge-Chang A. Moving beyond P Values: Everyday Data Analysis with Estimation Plots. bioRxiv. 2018 doi: 10.1101/377978. + + 10.1101/377978 + 31217592 + + + + Hogan PG, Chen L, Nardone J, Rao A. Transcriptional regulation by calcium, calcineurin, and NFAT. Genes & Development. 2003;17:2205–2232. doi: 10.1101/gad.1102703. + + 10.1101/gad.1102703 + 12975316 + + + + Hu Y, Comjean A, Perrimon N, Mohr SE. The Drosophila Gene Expression Tool (DGET) for expression analyses. BMC Bioinformatics. 2017;18:98. doi: 10.1186/s12859-017-1509-z. + + 10.1186/s12859-017-1509-z + PMC5303223 + 28187709 + + + + Huang DW, Sherman BT, Lempicki RA. Systematic and integrative analysis of large gene lists using DAVID bioinformatics resources. Nature Protocols. 2009;4:44–57. doi: 10.1038/nprot.2008.211. + + 10.1038/nprot.2008.211 + 19131956 + + + + Järvilehto M, Finell N. Development of the function of visual receptor cells during the pupal life of the flyCalliphora. Journal of Comparative Physiology? A. 1983;150:529–536. doi: 10.1007/BF00609579. + + 10.1007/BF00609579 + + + + Johns DC, Marx R, Mains RE, O’Rourke B, Marbán E. Inducible genetic suppression of neuronal excitability. The Journal of Neuroscience. 1999;19:1691–1697. doi: 10.1523/JNEUROSCI.19-05-01691.1999. + + 10.1523/JNEUROSCI.19-05-01691.1999 + PMC6782162 + 10024355 + + + + Johnson-Venkatesh EM, Khan MN, Murphy GG, Sutton MA, Umemori H. Excitability governs neural development in a hippocampal region-specific manner. Development. 2015;142:3879–3891. doi: 10.1242/dev.121202. + + 10.1242/dev.121202 + PMC4712876 + 26417041 + + + + Joshi R, Venkatesh K, Srinivas R, Nair S, Hasan G. Genetic dissection of itpr gene function reveals a vital requirement in aminergic cells of Drosophila larvae. Genetics. 2004;166:225–236. doi: 10.1534/genetics.166.1.225. + + 10.1534/genetics.166.1.225 + PMC1470716 + 15020420 + + + + Kadas D, Tzortzopoulos A, Skoulakis EMC, Consoulas C. Constitutive Activation of Ca 2+ /Calmodulin-Dependent Protein Kinase II during Development Impairs Central Cholinergic Transmission in a Circuit Underlying Escape Behavior in Drosophila. The Journal of Neuroscience. 2012;32:170–182. doi: 10.1523/JNEUROSCI.6583-10.2012. + + 10.1523/JNEUROSCI.6583-10.2012 + PMC6621333 + 22219280 + + + + Kaeser PS, Regehr WG. The readily releasable pool of synaptic vesicles. Current Opinion in Neurobiology. 2017;43:63–70. doi: 10.1016/j.conb.2016.12.012. + + 10.1016/j.conb.2016.12.012 + PMC5447466 + 28103533 + + + + Keyser P, Borge-Renberg K, Hultmark D. The Drosophila NFAT homolog is involved in salt stress tolerance. Insect Biochemistry and Molecular Biology. 2007;37:356–362. doi: 10.1016/j.ibmb.2006.12.009. + + 10.1016/j.ibmb.2006.12.009 + 17368199 + + + + Kim D, Langmead B, Salzberg SL. HISAT: a fast spliced aligner with low memory requirements. Nature Methods. 2015;12:357–360. doi: 10.1038/nmeth.3317. + + 10.1038/nmeth.3317 + PMC4655817 + 25751142 + + + + Kim D, Paggi JM, Park C, Bennett C, Salzberg SL. Graph-based genome alignment and genotyping with HISAT2 and HISAT-genotype. Nature Biotechnology. 2019;37:907–915. doi: 10.1038/s41587-019-0201-4. + + 10.1038/s41587-019-0201-4 + PMC7605509 + 31375807 + + + + Kishi Y, Gotoh Y. Regulation of chromatin structure during neural development. Frontiers in Neuroscience. 2018;12:874. doi: 10.3389/fnins.2018.00874. + + 10.3389/fnins.2018.00874 + PMC6297780 + 30618540 + + + + Kitamoto T. Conditional modification of behavior in Drosophila by targeted expression of a temperature-sensitive shibire allele in defined neurons. Journal of Neurobiology. 2001;47:81–92. doi: 10.1002/neu.1018. + + 10.1002/neu.1018 + 11291099 + + + + Klapoetke NC, Murata Y, Kim SS, Pulver SR, Birdsey-Benson A, Cho YK, Morimoto TK, Chuong AS, Carpenter EJ, Tian Z, Wang J, Xie Y, Yan Z, Zhang Y, Chow BY, Surek B, Melkonian M, Jayaraman V, Constantine-Paton M, Wong GKS, Boyden ES. Independent optical excitation of distinct neural populations. Nature Methods. 2014;11:338–346. doi: 10.1038/nmeth.2836. + + 10.1038/nmeth.2836 + PMC3943671 + 24509633 + + + + Kong EC, Woo K, Li H, Lebestky T, Mayer N, Sniffen MR, Heberlein U, Bainton RJ, Hirsh J, Wolf FW. A pair of dopamine neurons target the D1-like dopamine receptor DopR in the central complex to promote ethanol-stimulated locomotion in Drosophila. PLOS ONE. 2010;5:e9954. doi: 10.1371/journal.pone.0009954. + + 10.1371/journal.pone.0009954 + PMC2848596 + 20376353 + + + + Krogan NJ, Kim M, Tong A, Golshani A, Cagney G, Canadien V, Richards DP, Beattie BK, Emili A, Boone C, Shilatifard A, Buratowski S, Greenblatt J. Methylation of histone H3 by Set2 in Saccharomyces cerevisiae is linked to transcriptional elongation by RNA polymerase II. Molecular and Cellular Biology. 2003;23:4207–4218. doi: 10.1128/MCB.23.12.4207-4218.2003. + + 10.1128/MCB.23.12.4207-4218.2003 + PMC427527 + 12773564 + + + + Larkin A, Marygold SJ, Antonazzo G, Attrill H, Dos Santos G, Garapati PV, Goodman JL, Gramates LS, Millburn G, Strelets VB, Tabone CJ, Thurmond J, FlyBase Consortium FlyBase: updates to the Drosophila melanogaster knowledge base. Nucleic Acids Research. 2021;49:D899–D907. doi: 10.1093/nar/gkaa1026. + + 10.1093/nar/gkaa1026 + PMC7779046 + 33219682 + + + + Leinwand SG, Scott K. Juvenile hormone drives the maturation of spontaneous mushroom body neural activity and learned behavior. Neuron. 2021;109:1836–1847. doi: 10.1016/j.neuron.2021.04.006. + + 10.1016/j.neuron.2021.04.006 + PMC8279816 + 33915110 + + + + Levine RB. Changes in neuronal circuits during insect metamorphosis. The Journal of Experimental Biology. 1984;112:27–44. doi: 10.1242/jeb.112.1.27. + + 10.1242/jeb.112.1.27 + 6392469 + + + + Li J, Liu Y, Rhee HS, Ghosh SKB, Bai L, Pugh BF, Gilmour DS. Kinetic competition between elongation rate and binding of NELF controls promoter-proximal pausing. Molecular Cell. 2013;50:711–722. doi: 10.1016/j.molcel.2013.05.016. + + 10.1016/j.molcel.2013.05.016 + PMC3695833 + 23746353 + + + + Liao Y, Smyth GK, Shi W. featureCounts: an efficient general purpose program for assigning sequence reads to genomic features. Bioinformatics. 2014;30:923–930. doi: 10.1093/bioinformatics/btt656. + + 10.1093/bioinformatics/btt656 + 24227677 + + + + Lichtinghagen R, Stocker M, Wittka R, Boheim G, Stühmer W, Ferrus A, Pongs O. Molecular basis of altered excitability in Shaker mutants of Drosophila melanogaster. The EMBO Journal. 1990;9:4399–4407. doi: 10.1002/j.1460-2075.1990.tb07890.x. + + 10.1002/j.1460-2075.1990.tb07890.x + PMC552231 + 1702382 + + + + Liu C, Plaçais PY, Yamagata N, Pfeiffer BD, Aso Y, Friedrich AB, Siwanowicz I, Rubin GM, Preat T, Tanimoto H. A subset of dopamine neurons signals reward for odour memory in Drosophila. Nature. 2012;488:512–516. doi: 10.1038/nature11304. + + 10.1038/nature11304 + 22810589 + + + + Lomaev D, Mikhailova A, Erokhin M, Shaposhnikov AV, Moresco JJ, Blokhina T, Wolle D, Aoki T, Ryabykh V, Yates JR, Shidlovskii YV, Georgiev P, Schedl P, Chetverina D. The GAGA factor regulatory network: Identification of GAGA factor associated proteins. PLOS ONE. 2017;12:e0173602. doi: 10.1371/journal.pone.0173602. + + 10.1371/journal.pone.0173602 + PMC5351981 + 28296955 + + + + Love MI, Huber W, Anders S. Moderated estimation of fold change and dispersion for RNA-seq data with DESeq2. Genome Biology. 2014;15:550. doi: 10.1186/s13059-014-0550-8. + + 10.1186/s13059-014-0550-8 + PMC4302049 + 25516281 + + + + Mahmoudi T, Zuijderduijn LMP, Mohd-Sarip A, Verrijzer CP. GAGA facilitates binding of Pleiohomeotic to a chromatinized Polycomb response element. Nucleic Acids Research. 2003;31:4147–4156. doi: 10.1093/nar/gkg479. + + 10.1093/nar/gkg479 + PMC167640 + 12853632 + + + + Malik BR, Hodge JJL. CASK and CaMKII function in Drosophila memory. Frontiers in Neuroscience. 2014;8:178. doi: 10.3389/fnins.2014.00178. + + 10.3389/fnins.2014.00178 + PMC4070058 + 25009461 + + + + Manjila SB, Hasan G. Flight and climbing assay for assessing motor functions in Drosophila. BIO-PROTOCOL. 2018;8:e2742. doi: 10.21769/BioProtoc.2742. + + 10.21769/BioProtoc.2742 + PMC8203865 + 34179270 + + + + Mao Z, Davis RL. Eight different types of dopaminergic neurons innervate the Drosophila mushroom body neuropil: anatomical and physiological heterogeneity. Frontiers in Neural Circuits. 2009;3:5. doi: 10.3389/neuro.04.005.2009. + + 10.3389/neuro.04.005.2009 + PMC2708966 + 19597562 + + + + Marder E. Neuromodulation of neuronal circuits: back to the future. Neuron. 2012;76:1–11. doi: 10.1016/j.neuron.2012.09.010. + + 10.1016/j.neuron.2012.09.010 + PMC3482119 + 23040802 + + + + Margueron R, Reinberg D. The Polycomb complex PRC2 and its mark in life. Nature. 2011;469:343–349. doi: 10.1038/nature09784. + + 10.1038/nature09784 + PMC3760771 + 21248841 + + + + Mayseless O, Shapira G, Rachad EY, Fiala A, Schuldiner O. Neuronal excitability as a regulator of circuit remodeling. Current Biology. 2023;33:981–989. doi: 10.1016/j.cub.2023.01.032. + + 10.1016/j.cub.2023.01.032 + PMC10017263 + 36758544 + + + + McGuire SE, Mao Z, Davis RL. Spatiotemporal gene expression targeting with the TARGET and gene-switch systems in Drosophila. Science’s STKE. 2004;2004:l6. doi: 10.1126/stke.2202004pl6. + + 10.1126/stke.2202004pl6 + 14970377 + + + + Megha O, Hasan G. IP3R mediated Ca2+ release regulates protein metabolism in Drosophila neuroendocrine cells: implications for development under nutrient stress. Development. 2017;144:1484–1489. doi: 10.1242/dev.145235. + + 10.1242/dev.145235 + PMC5399668 + 28289132 + + + + Mehren JE, Griffith LC. Calcium-independent calcium/calmodulin-dependent protein kinase II in the adult Drosophila CNS enhances the training of pheromonal cues. The Journal of Neuroscience. 2004;24:10584–10593. doi: 10.1523/JNEUROSCI.3560-04.2004. + + 10.1523/JNEUROSCI.3560-04.2004 + PMC6730130 + 15564574 + + + + Metsalu T, Vilo J. ClustVis: a web tool for visualizing clustering of multivariate data using Principal Component Analysis and heatmap. Nucleic Acids Research. 2015;43:W566–W570. doi: 10.1093/nar/gkv468. + + 10.1093/nar/gkv468 + PMC4489295 + 25969447 + + + + Mitra R, Richhariya S, Jayakumar S, Notani D, Hasan G. IP 3 /Ca 2+ Signals Regulate Larval to Pupal Transition under Nutrient Stress through the H3K36 Methyltransferase dSET2. bioRxiv. 2020 doi: 10.1101/2020.11.25.399329. + + 10.1101/2020.11.25.399329 + 34117888 + + + + Mitra R, Hasan G. Store-operated Ca2+ entry regulates neuronal gene expression and function. Current Opinion in Neurobiology. 2022;73:102520. doi: 10.1016/j.conb.2022.01.005. + + 10.1016/j.conb.2022.01.005 + 35220059 + + + + modENCODE Consortium. Roy S, Ernst J, Kharchenko PV, Kheradpour P, Negre N, Eaton ML, Landolin JM, Bristow CA, Ma L, Lin MF, Washietl S, Arshinoff BI, Ay F, Meyer PE, Robine N, Washington NL, Di Stefano L, Berezikov E, Brown CD, Candeias R, Carlson JW, Carr A, Jungreis I, Marbach D, Sealfon R, Tolstorukov MY, Will S, Alekseyenko AA, Artieri C, Booth BW, Brooks AN, Dai Q, Davis CA, Duff MO, Feng X, Gorchakov AA, Gu T, Henikoff JG, Kapranov P, Li R, MacAlpine HK, Malone J, Minoda A, Nordman J, Okamura K, Perry M, Powell SK, Riddle NC, Sakai A, Samsonova A, Sandler JE, Schwartz YB, Sher N, Spokony R, Sturgill D, van Baren M, Wan KH, Yang L, Yu C, Feingold E, Good P, Guyer M, Lowdon R, Ahmad K, Andrews J, Berger B, Brenner SE, Brent MR, Cherbas L, Elgin SCR, Gingeras TR, Grossman R, Hoskins RA, Kaufman TC, Kent W, Kuroda MI, Orr-Weaver T, Perrimon N, Pirrotta V, Posakony JW, Ren B, Russell S, Cherbas P, Graveley BR, Lewis S, Micklem G, Oliver B, Park PJ, Celniker SE, Henikoff S, Karpen GH, Lai EC, MacAlpine DM, Stein LD, White KP, Kellis M. Identification of functional elements and regulatory circuits by Drosophila modENCODE. Science. 2010;330:1787–1797. doi: 10.1126/science.1198374. + + 10.1126/science.1198374 + PMC3192495 + 21177974 + + + + Mohana G, Dorier J, Li X, Mouginot M, Smith RC, Malek H, Leleu M, Rodriguez D, Khadka J, Rosa P, Cousin P, Iseli C, Restrepo S, Guex N, McCabe BD, Jankowski A, Levine MS, Gambetta MC. Chromosome-level organization of the regulatory genome in the Drosophila nervous system. Cell. 2023;186:3826–3844. doi: 10.1016/j.cell.2023.07.008. + + 10.1016/j.cell.2023.07.008 + PMC10529364 + 37536338 + + + + Nitabach MN, Wu Y, Sheeba V, Lemon WC, Strumbos J, Zelensky PK, White BH, Holmes TC. Electrical hyperexcitation of lateral ventral pacemaker neurons desynchronizes downstream circadian oscillators in the fly circadian circuit and induces multiple behavioral periods. The Journal of Neuroscience. 2006;26:479–489. doi: 10.1523/JNEUROSCI.3915-05.2006. + + 10.1523/JNEUROSCI.3915-05.2006 + PMC2597197 + 16407545 + + + + O’Hare JK, Gonzalez KC, Herrlinger SA, Hirabayashi Y, Hewitt VL, Blockus H, Szoboszlay M, Rolotti SV, Geiller TC, Negrean A, Chelur V, Polleux F, Losonczy A. Compartment-specific tuning of dendritic feature selectivity by intracellular Ca2+ release. Science. 2022;375:eabm1670. doi: 10.1126/science.abm1670. + + 10.1126/science.abm1670 + PMC9667905 + 35298275 + + + + Owald D, Felsenberg J, Talbot CB, Das G, Perisse E, Huetteroth W, Waddell S. Activity of defined mushroom body output neurons underlies learned olfactory behavior in Drosophila. Neuron. 2015;86:417–427. doi: 10.1016/j.neuron.2015.03.025. + + 10.1016/j.neuron.2015.03.025 + PMC4416108 + 25864636 + + + + Pathak T, Agrawal T, Richhariya S, Sadaf S, Hasan G. Store-operated calcium entry through orai is required for transcriptional maturation of the flight circuit in Drosophila. The Journal of Neuroscience. 2015;35:13784–13799. doi: 10.1523/JNEUROSCI.1680-15.2015. + + 10.1523/JNEUROSCI.1680-15.2015 + PMC6605383 + 26446229 + + + + Ping Y, Waro G, Licursi A, Smith S, Vo-Ba DA, Tsunoda S, McCabe BD. Shal/K(v)4 channels are required for maintaining excitability during repetitive firing and normal locomotion in Drosophila. PLOS ONE. 2011;6:e16043. doi: 10.1371/journal.pone.0016043. + + 10.1371/journal.pone.0016043 + PMC3022017 + 21264215 + + + + Postma M, Goedhart J. PlotsOfData-A web app for visualizing data together with their summaries. PLOS Biology. 2019;17:e3000202. doi: 10.1371/journal.pbio.3000202. + + 10.1371/journal.pbio.3000202 + PMC6453475 + 30917112 + + + + Prakriya M, Lewis RS. Store-operated calcium channels. Physiological Reviews. 2015;95:1383–1436. doi: 10.1152/physrev.00020.2014. + + 10.1152/physrev.00020.2014 + PMC4600950 + 26400989 + + + + Ramírez F, Ryan DP, Grüning B, Bhardwaj V, Kilpert F, Richter AS, Heyne S, Dündar F, Manke T. deepTools2: a next generation web server for deep-sequencing data analysis. Nucleic Acids Research. 2016;44:W160–W165. doi: 10.1093/nar/gkw257. + + 10.1093/nar/gkw257 + PMC4987876 + 27079975 + + + + Ravi P, Trivedi D, Hasan G, Barsh GS. FMRFa receptor stimulated Ca2+ signals alter the activity of flight modulating central dopaminergic neurons in Drosophila melanogaster. PLOS Genetics. 2018;14:e1007459. doi: 10.1371/journal.pgen.1007459. + + 10.1371/journal.pgen.1007459 + PMC6110513 + 30110323 + + + + Richhariya S, Jayakumar S, Abruzzi K, Rosbash M, Hasan G. A pupal transcriptomic screen identifies Ral as A target of store-operated calcium entry in Drosophila neurons. Scientific Reports. 2017;7:42586. doi: 10.1038/srep42586. + + 10.1038/srep42586 + PMC5307359 + 28195208 + + + + Riemensperger T, Völler T, Stock P, Buchner E, Fiala A. Punishment prediction by dopaminergic neurons in Drosophila. Current Biology. 2005;15:1953–1960. doi: 10.1016/j.cub.2005.09.042. + + 10.1016/j.cub.2005.09.042 + 16271874 + + + + Ritchie ME, Phipson B, Wu D, Hu Y, Law CW, Shi W, Smyth GK. limma powers differential expression analyses for RNA-sequencing and microarray studies. Nucleic Acids Research. 2015;43:e47. doi: 10.1093/nar/gkv007. + + 10.1093/nar/gkv007 + PMC4402510 + 25605792 + + + + Robinson MD, McCarthy DJ, Smyth GK. edgeR: a Bioconductor package for differential expression analysis of digital gene expression data. Bioinformatic. 2010;26:139–140. doi: 10.1093/bioinformatics/btp616. + + 10.1093/bioinformatics/btp616 + PMC2796818 + 19910308 + + + + Rosenberg SS, Spitzer NC. Calcium signaling in neuronal development. Cold Spring Harbor Perspectives in Biology. 2011;3:a004259. doi: 10.1101/cshperspect.a004259. + + 10.1101/cshperspect.a004259 + PMC3179332 + 21730044 + + + + Sachse S, Rueckert E, Keller A, Okada R, Tanaka NK, Ito K, Vosshall LB. Activity-dependent plasticity in an olfactory circuit. Neuron. 2007;56:838–850. doi: 10.1016/j.neuron.2007.10.035. + + 10.1016/j.neuron.2007.10.035 + 18054860 + + + + Schindelin J, Arganda-Carreras I, Frise E, Kaynig V, Longair M, Pietzsch T, Preibisch S, Rueden C, Saalfeld S, Schmid B, Tinevez JY, White DJ, Hartenstein V, Eliceiri K, Tomancak P, Cardona A. Fiji: an open-source platform for biological-image analysis. Nature Methods. 2012;9:676–682. doi: 10.1038/nmeth.2019. + + 10.1038/nmeth.2019 + PMC3855844 + 22743772 + + + + Shakiryanova D, Morimoto T, Zhou C, Chouhan AK, Sigrist SJ, Nose A, Macleod GT, Deitcher DL, Levitan ES. Differential control of presynaptic CaMKII activation and translocation to active zones. The Journal of Neuroscience. 2011;31:9093–9100. doi: 10.1523/JNEUROSCI.0550-11.2011. + + 10.1523/JNEUROSCI.0550-11.2011 + PMC3123710 + 21697360 + + + + Sharma A, Hasan G. Modulation of flight and feeding behaviours requires presynaptic IP3Rs in dopaminergic neurons. eLife. 2020;9:e62297. doi: 10.7554/eLife.62297. + + 10.7554/eLife.62297 + PMC7647402 + 33155978 + + + + Shimojima T, Okada M, Nakayama T, Ueda H, Okawa K, Iwamatsu A, Handa H, Hirose S. Drosophila FACT contributes to Hox gene expression through physical and functional interactions with GAGA factor. Genes & Development. 2003;17:1605–1616. doi: 10.1101/gad.1086803. + + 10.1101/gad.1086803 + PMC196133 + 12815073 + + + + Singh S, Wu CF. Properties of potassium currents and their role in membrane excitability in Drosophila larval muscle fibers. The Journal of Experimental Biology. 1990;152:59–76. doi: 10.1242/jeb.152.1.59. + + 10.1242/jeb.152.1.59 + 2121887 + + + + Somasundaram A, Shum AK, McBride HJ, Kessler JA, Feske S, Miller RJ, Prakriya M. Store-operated CRAC channels regulate gene expression and proliferation in neural progenitor cells. The Journal of Neuroscience. 2014;34:9107–9123. doi: 10.1523/JNEUROSCI.0263-14.2014. + + 10.1523/JNEUROSCI.0263-14.2014 + PMC4078087 + 24990931 + + + + Spitzer NC. Activity-dependent neurotransmitter respecification. Nature Reviews. Neuroscience. 2012;13:94–106. doi: 10.1038/nrn3154. + + 10.1038/nrn3154 + PMC4352171 + 22251956 + + + + Stabell M, Larsson J, Aalen RB, Lambertsson A. Drosophila dSet2 functions in H3-K36 methylation and is required for development. Biochemical and Biophysical Research Communications. 2007;359:784–789. doi: 10.1016/j.bbrc.2007.05.189. + + 10.1016/j.bbrc.2007.05.189 + 17560546 + + + + Streb H, Bayerdörffer E, Haase W, Irvine RF, Schulz I. Effect of inositol-1,4,5-trisphosphate on isolated subcellular fractions of rat pancreas. The Journal of Membrane Biology. 1984;81:241–253. doi: 10.1007/BF01868717. + + 10.1007/BF01868717 + 6334162 + + + + Sugie A, Marchetti G, Tavosanis G. Structural aspects of plasticity in the nervous system of Drosophila. Neural Development. 2018;13:14. doi: 10.1186/s13064-018-0111-z. + + 10.1186/s13064-018-0111-z + PMC6026517 + 29960596 + + + + Sun F, Zeng J, Jing M, Zhou J, Feng J, Owen SF, Luo Y, Li F, Wang H, Yamaguchi T, Yong Z, Gao Y, Peng W, Wang L, Zhang S, Du J, Lin D, Xu M, Kreitzer AC, Cui G, Li Y. A genetically encoded fluorescent sensor enables rapid and specific detection of dopamine in flies, fish, and mice. Cell. 2018;174:481–496. doi: 10.1016/j.cell.2018.06.042. + + 10.1016/j.cell.2018.06.042 + PMC6092020 + 30007419 + + + + Sweeney ST, Broadie K, Keane J, Niemann H, O’Kane CJ. Targeted expression of tetanus toxin light chain in Drosophila specifically eliminates synaptic transmission and causes behavioral defects. Neuron. 1995;14:341–351. doi: 10.1016/0896-6273(95)90290-2. + + 10.1016/0896-6273(95)90290-2 + 7857643 + + + + Taber KH, Hurley RA. Volume transmission in the brain: beyond the synapse. The Journal of Neuropsychiatry and Clinical Neurosciences. 2014;26:13110351. doi: 10.1176/appi.neuropsych.13110351. + + 10.1176/appi.neuropsych.13110351 + 24515717 + + + + Takechi H, Eilers J, Konnerth A. A new class of synaptic response involving calcium release in dendritic spines. Nature. 1998;396:757–760. doi: 10.1038/25547. + + 10.1038/25547 + 9874373 + + + + Tang X, Li T, Liu S, Wisniewski J, Zheng Q, Rong Y, Lavis LD, Wu C. Kinetic principles underlying pioneer function of GAGA transcription factor in live cells. Nature Structural & Molecular Biology. 2022;29:665–676. doi: 10.1038/s41594-022-00800-z. + + 10.1038/s41594-022-00800-z + PMC10177624 + 35835866 + + + + Thillaiappan NB, Chakraborty P, Hasan G, Taylor CW. IP3 receptors and Ca2+ entry. Biochimica et Biophysica Acta. 2019;1866:1092–1100. doi: 10.1016/j.bbamcr.2018.11.007. + + 10.1016/j.bbamcr.2018.11.007 + 30448464 + + + + Truszkowski TLS, Aizenman CD. Neurobiology: setting the set point for neural homeostasis. Current Biology. 2015;25:R1132–R1133. doi: 10.1016/j.cub.2015.10.021. + + 10.1016/j.cub.2015.10.021 + 26654372 + + + + Tsai SY, Chang YL, Swamy KBS, Chiang RL, Huang DH. GAGA factor, a positive regulator of global gene expression, modulates transcriptional pausing and organization of upstream nucleosomes. Epigenetics & Chromatin. 2016;9:32. doi: 10.1186/s13072-016-0082-4. + + 10.1186/s13072-016-0082-4 + PMC4962548 + 27468311 + + + + Tsao CH, Chen CC, Lin CH, Yang HY, Lin S. Drosophila mushroom bodies integrate hunger and satiety signals to control innate food-seeking behavior. eLife. 2018;7:e35264. doi: 10.7554/eLife.35264. + + 10.7554/eLife.35264 + PMC5910021 + 29547121 + + + + Tsukiyama T, Becker PB, Wu C. ATP-dependent nucleosome disruption at a heat-shock promoter mediated by binding of GAGA transcription factor. Nature. 1994;367:525–532. doi: 10.1038/367525a0. + + 10.1038/367525a0 + 8107823 + + + + Venkiteswaran G, Hasan G. Intracellular Ca2+ signalling and store operated Ca2+ entry are required in Drosophila neurons for flight. Proceedings of the National Academy of Sciences.2009. + + PMC2700899 + 19515818 + + + + Verma SK, Tian X, LaFrance LV, Duquenne C, Suarez DP, Newlander KA, Romeril SP, Burgess JL, Grant SW, Brackley JA, Graves AP, Scherzer DA, Shu A, Thompson C, Ott HM, Aller GSV, Machutta CA, Diaz E, Jiang Y, Johnson NW, Knight SD, Kruger RG, McCabe MT, Dhanak D, Tummino PJ, Creasy CL, Miller WH. Identification of potent, selective, cell-active inhibitors of the histone lysine methyltransferase EZH2. ACS Medicinal Chemistry Letters. 2012;3:1091–1096. doi: 10.1021/ml3003346. + + 10.1021/ml3003346 + PMC4025676 + 24900432 + + + + Viswanath V, Story GM, Peier AM, Petrus MJ, Lee VM, Hwang SW, Patapoutian A, Jegla T. Opposite thermosensor in fruitfly and mouse. Nature. 2003;423:822–823. doi: 10.1038/423822a. + + 10.1038/423822a + 12815418 + + + + Waddell S. Neural plasticity: dopamine tunes the mushroom body output network. Current Biology. 2016;26:R109–R112. doi: 10.1016/j.cub.2015.12.023. + + 10.1016/j.cub.2015.12.023 + 26859265 + + + + Wang Y, Deng X, Gill DL. Calcium signaling by STIM and Orai: intimate coupling details revealed. Science Signaling. 2010;3:pe42. doi: 10.1126/scisignal.3148pe42. + + 10.1126/scisignal.3148pe42 + PMC3601893 + 21081752 + + + + Weiss S, Melom JE, Ormerod KG, Zhang YV, Littleton JT. Glial Ca2+signaling links endocytosis to K+ buffering around neuronal somas to regulate excitability. eLife. 2019;8:44186. doi: 10.7554/eLife.44186. + + 10.7554/eLife.44186 + PMC6510531 + 31025939 + + + + Wilkins RC, Lis JT. DNA distortion and multimerization: novel functions of the glutamine-rich domain of GAGA factor. Journal of Molecular Biology. 1999;285:515–525. doi: 10.1006/jmbi.1998.2356. + + 10.1006/jmbi.1998.2356 + 9878426 + + + + Xu W, Lipscombe D. Neuronal Ca(V)1.3alpha(1) L-type channels activate at relatively hyperpolarized membrane potentials and are incompletely inhibited by dihydropyridines. The Journal of Neuroscience. 2001;21:5944–5951. doi: 10.1523/JNEUROSCI.21-16-05944.2001. + + 10.1523/JNEUROSCI.21-16-05944.2001 + PMC6763157 + 11487617 + + + + Yagi R, Mabuchi Y, Mizunami M, Tanaka NK. Convergence of multimodal sensory pathways to the mushroom body calyx in Drosophila melanogaster. Scientific Reports. 2016;6:29481. doi: 10.1038/srep29481. + + 10.1038/srep29481 + PMC4941532 + 27404960 + + + + Yeromin AV, Zhang SL, Jiang W, Yu Y, Safrina O, Cahalan MD. Molecular identification of the CRAC channel by altered ion selectivity in a mutant of Orai. Nature. 2006;443:226–229. doi: 10.1038/nature05108. + + 10.1038/nature05108 + PMC2756048 + 16921385 + + + + Zambelli F, Pesole G, Pavesi G. Pscan: finding over-represented transcription factor binding site motifs in sequences from co-regulated or co-expressed genes. Nucleic Acids Research. 2009;37:W247–W252. doi: 10.1093/nar/gkp464. + + 10.1093/nar/gkp464 + PMC2703934 + 19487240 + + + + Zhai B, Villén J, Beausoleil SA, Mintseris J, Gygi SP. Phosphoproteome analysis of Drosophila melanogaster embryos. Journal of Proteome Research. 2008;7:1675–1682. doi: 10.1021/pr700696a. + + 10.1021/pr700696a + PMC3063950 + 18327897 + + + + Zolin A, Cohn R, Pang R, Siliciano AF, Fairhall AL, Ruta V. Context-dependent representations of movement in Drosophila dopaminergic reinforcement pathways. Nature Neuroscience. 2021;24:1555–1566. doi: 10.1038/s41593-021-00929-y. + + 10.1038/s41593-021-00929-y + PMC8556349 + 34697455 + + + + +
+
\ No newline at end of file diff --git a/test/pubmed/pmid_9500320.xml b/test/pubmed/pmid_9500320.xml new file mode 100644 index 000000000..e30d3edf8 --- /dev/null +++ b/test/pubmed/pmid_9500320.xml @@ -0,0 +1,363 @@ + + + + + + 9500320 + + 1998 + 03 + 17 + + + 2022 + 03 + 16 + +
+ + 0140-6736 + + 351 + 9103 + + 1998 + Feb + 28 + + + Lancet (London, England) + Lancet + + Ileal-lymphoid-nodular hyperplasia, non-specific colitis, and pervasive developmental disorder in children. + + 637 + 641 + 637-41 + + + We investigated a consecutive series of children with chronic enterocolitis and regressive developmental disorder. + 12 children (mean age 6 years [range 3-10], 11 boys) were referred to a paediatric gastroenterology unit with a history of normal development followed by loss of acquired skills, including language, together with diarrhoea and abdominal pain. Children underwent gastroenterological, neurological, and developmental assessment and review of developmental records. Ileocolonoscopy and biopsy sampling, magnetic-resonance imaging (MRI), electroencephalography (EEG), and lumbar puncture were done under sedation. Barium follow-through radiography was done where possible. Biochemical, haematological, and immunological profiles were examined. + Onset of behavioural symptoms was associated, by the parents, with measles, mumps, and rubella vaccination in eight of the 12 children, with measles infection in one child, and otitis media in another. All 12 children had intestinal abnormalities, ranging from lymphoid nodular hyperplasia to aphthoid ulceration. Histology showed patchy chronic inflammation in the colon in 11 children and reactive ileal lymphoid hyperplasia in seven, but no granulomas. Behavioural disorders included autism (nine), disintegrative psychosis (one), and possible postviral or vaccinal encephalitis (two). There were no focal neurological abnormalities and MRI and EEG tests were normal. Abnormal laboratory results were significantly raised urinary methylmalonic acid compared with age-matched controls (p=0.003), low haemoglobin in four children, and a low serum IgA in four children. + We identified associated gastrointestinal disease and developmental regression in a group of previously normal children, which was generally associated in time with possible environmental triggers. + + + + Wakefield + A J + AJ + + Inflammatory Bowel Disease Study Group, University Department of Medicine, Royal Free Hospital and School of Medicine, London, UK. + + + + Murch + S H + SH + + + Anthony + A + A + + + Linnell + J + J + + + Casson + D M + DM + + + Malik + M + M + + + Berelowitz + M + M + + + Dhillon + A P + AP + + + Thomson + M A + MA + + + Harvey + P + P + + + Valentine + A + A + + + Davies + S E + SE + + + Walker-Smith + J A + JA + + + eng + + Journal Article + Research Support, Non-U.S. Gov't + Retracted Publication + +
+ + England + Lancet + 2985213R + 0140-6736 + + + + 0 + Measles Vaccine + + + 0 + Measles-Mumps-Rubella Vaccine + + + 0 + Mumps Vaccine + + + 0 + Rubella Vaccine + + + 0 + Vaccines, Combined + + + IM + + + Lancet. 1998 Feb 28;351(9103):611-2 + 9500313 + + + Lancet. 1998 Mar 21;351(9106):905; author reply 908-9 + 9525390 + + + Lancet. 1998 Mar 21;351(9106):905-6; author reply 908-9 + 9525391 + + + Lancet. 1998 Mar 21;351(9106):906; author reply 908-9 + 9525392 + + + Lancet. 1998 Mar 21;351(9106):906-7; author reply 908-9 + 9525393 + + + Lancet. 1998 Mar 21;351(9106):907; author reply 908-9 + 9525394 + + + Lancet. 1998 Mar 21;351(9106):907; author reply 908-9 + 9525395 + + + Lancet. 1998 Mar 21;351(9106):907-8; author reply 908-9 + 9525396 + + + Lancet. 1998 May 2;351(9112):1355; author reply 1356 + 9643815 + + + Lancet. 1998 May 2;351(9112):1355; author reply 1356 + 9643816 + + + Lancet. 1998 May 2;351(9112):1355-6; author reply 1356 + 9643817 + + + Lancet. 1998 May 2;351(9112):1356 + 9643818 + + + Lancet. 1998 May 2;351(9112):1357 + 9643820 + + + Lancet. 1998 May 2;351(9112):1357 + 9643821 + + + Lancet. 1998 May 2;351(9112):1357-8 + 9643822 + + + Lancet. 1998 May 2;351(9112):1358 + 9643823 + + + Lancet. 1998 Jul 18;352(9123):234-5 + 9683237 + + + Lancet. 2000 Jul 8;356(9224):160-1 + 10963264 + + + Lancet. 2000 Jul 8;356(9224):161 + 10963266 + + + Lancet. 2000 Jul 8;356(9224):161-2 + 10963267 + + + Lancet. 2002 Jun 15;359(9323):2051-2 + 12086756 + + + Lancet. 2004 Mar 6;363(9411):747-9 + 15016482 + + + Lancet. 2004 Mar 6;363(9411):750 + 15016483 + + + Lancet. 2004 Mar 6;363(9411):820-1 + 15022645 + + + Lancet. 2004 Mar 6;363(9411):821-2 + 15022648 + + + Lancet. 2004 Mar 6;363(9411):822-3 + 15022649 + + + Lancet. 2004 Mar 6;363(9411):823-4 + 15022650 + + + Lancet. 2010 Feb 6;375(9713):445 + 20137807 + + + Eur J Gastroenterol Hepatol. 2011 Nov;23 (11):1082 + 21971344 + + + + + Child + + + Child, Preschool + + + Developmental Disabilities + etiology + + + Enterocolitis + etiology + + + Female + + + Humans + + + Hyperplasia + pathology + + + Ileum + pathology + + + Lymphoid Tissue + pathology + + + Male + + + Measles + complications + + + Measles Vaccine + adverse effects + + + Measles-Mumps-Rubella Vaccine + + + Mumps Vaccine + adverse effects + + + Otitis Media + complications + + + Rubella Vaccine + adverse effects + + + Vaccines, Combined + adverse effects + + +
+ + + + 1998 + 3 + 21 + + + 1998 + 3 + 21 + 0 + 1 + + + 1998 + 3 + 21 + 0 + 0 + + + ppublish + + 9500320 + 10.1016/s0140-6736(97)11096-0 + S0140673697110960 + + +
+
\ No newline at end of file diff --git a/test/pubmed/searchPubmed.js b/test/pubmed/searchPubmed.js index 35528c83d..fbd52ac63 100644 --- a/test/pubmed/searchPubmed.js +++ b/test/pubmed/searchPubmed.js @@ -1,7 +1,7 @@ import _ from 'lodash'; import { expect } from 'chai'; -import { searchPubmed, pubmedDataConverter } from '../../src/server/routes/api/document/pubmed/searchPubmed'; +import { pubmedDataConverter } from '../../src/server/routes/api/document/pubmed/searchPubmed'; import searchPubmedData from './searchPubmedData'; const TEST_PUBMED_DATA = new Map( _.entries( searchPubmedData ) ); @@ -15,15 +15,15 @@ const DEFAULT_ESEARCH_PARAMS = { }; describe('searchPubmed', function(){ - + describe('pubmedDataConverter', function(){ - + describe( 'undefined term', () => { - let pubmedInfo; + let pubmedInfo; const queryType = 'undefined_term'; const json = TEST_PUBMED_DATA.get( queryType ); - + before( async () => { pubmedInfo = await pubmedDataConverter( json ); }); @@ -31,7 +31,7 @@ describe('searchPubmed', function(){ it('Should return a result', () => { expect( pubmedInfo ).to.exist; }); - + it('Should contain top-level attributes', () => { expect( pubmedInfo ).to.have.property( 'count' ); expect( pubmedInfo ).to.have.property( 'searchHits' ); @@ -45,15 +45,15 @@ describe('searchPubmed', function(){ expect( pubmedInfo.query_key ).to.be.a('null'); expect( pubmedInfo.webenv ).to.be.a('null'); }); - + }); // empty term describe( 'empty term', () => { - let pubmedInfo; + let pubmedInfo; const queryType = 'empty_term'; const json = TEST_PUBMED_DATA.get( queryType ); - + before( async () => { pubmedInfo = await pubmedDataConverter( json ); }); @@ -61,7 +61,7 @@ describe('searchPubmed', function(){ it('Should return a result', () => { expect( pubmedInfo ).to.exist; }); - + it('Should contain top-level attributes', () => { expect( pubmedInfo ).to.have.property( 'count' ); expect( pubmedInfo ).to.have.property( 'searchHits' ); @@ -75,15 +75,15 @@ describe('searchPubmed', function(){ expect( pubmedInfo.query_key ).to.not.be.a('null'); expect( pubmedInfo.webenv ).to.not.be.a('null'); }); - + }); // empty term describe( 'unique term', () => { - let pubmedInfo; + let pubmedInfo; const queryType = 'unique_term'; const json = TEST_PUBMED_DATA.get( queryType ); - + before( async () => { pubmedInfo = await pubmedDataConverter( json ); }); @@ -91,7 +91,7 @@ describe('searchPubmed', function(){ it('Should return a result', () => { expect( pubmedInfo ).to.exist; }); - + it('Should contain top-level attributes', () => { expect( pubmedInfo ).to.have.property( 'count' ); expect( pubmedInfo ).to.have.property( 'searchHits' ); @@ -105,16 +105,16 @@ describe('searchPubmed', function(){ expect( pubmedInfo.query_key ).to.not.be.a('null'); expect( pubmedInfo.webenv ).to.not.be.a('null'); }); - + }); // unique term describe( 'nonunique term', () => { - let pubmedInfo; + let pubmedInfo; const queryType = 'nonunique_term'; const json = TEST_PUBMED_DATA.get( queryType ); - + before( async () => { pubmedInfo = await pubmedDataConverter( json ); }); @@ -122,7 +122,7 @@ describe('searchPubmed', function(){ it('Should return a result', () => { expect( pubmedInfo ).to.exist; }); - + it('Should contain top-level attributes', () => { expect( pubmedInfo ).to.have.property( 'count' ); expect( pubmedInfo ).to.have.property( 'searchHits' ); @@ -136,7 +136,7 @@ describe('searchPubmed', function(){ expect( pubmedInfo.query_key ).to.not.be.a('null'); expect( pubmedInfo.webenv ).to.not.be.a('null'); }); - + }); // nonunique term }); // pubmedDataConverter