J'ai de la difficulté à enregistrer des articles pubmed et à les lire. J'ai vu sur cette page here qu'il existe des types de fichiers spéciaux mais aucun d'eux n'a fonctionné pour moi. Je veux les enregistrer d'une manière que je puisse continuer à utiliser les touches pour obtenir les données. Je ne sais pas s'il est possible de l'utiliser si je l'enregistre sous forme de fichier texte. Mon code est celui-ci:Comment télécharger des articles pubmed et les lire?
import sys
from Bio import Entrez
import re
import os
from Bio import Medline
from Bio import SeqIO
'''Class Crawler is responsable to browse the biological databases
from DownloadArticles import DownloadArticles
c = DownloadArticles()
c.articles_dataset_list
'''
class DownloadArticles():
def __init__(self):
Entrez.email='[email protected]'
self.dataC = self.saveArticlesFilesInXMLMode('pubmed', '26837606')
'''Metodo 4 ler dado em forma de texto.'''
def saveArticlesFilesInXMLMode(self,dbs, ids):
net_handle = Entrez.efetch(db=dbs, id=ids, rettype="medline", retmode="txt")
directory = "/dataset/Pubmed/DatasetArticles/"+ ids + ".fasta"
# if not os.path.exists(directory):
# os.makedirs(directory)
# filename = directory + '/'
# if not os.path.exists(filename):
out_handle = open(directory, "w+")
out_handle.write(net_handle.read())
out_handle.close()
net_handle.close()
print("Saved")
print("Parsing...")
record = SeqIO.read(directory, "fasta")
print(record)
return(record.read())
Je reçois cette erreur: ValueError: No records found in handle
quelqu'un Pease peut me aider?
Maintenant mon code est comme ça, je suis en train de faire une fonction pour enregistrer dans .fasta
comme vous l'avez fait. Et un pour lire les fichiers .fasta
comme dans la réponse ci-dessus.
import sys
from Bio import Entrez
import re
import os
from Bio import Medline
from Bio import SeqIO
def save_Articles_Files(dbName, idNum, rettypeName):
net_handle = Entrez.efetch(db=dbName, id=idNum, rettype=rettypeName, retmode="txt")
filename = path + idNum + ".fasta"
out_handle = open(filename, "w")
out_handle.write(net_handle.read())
out_handle.close()
net_handle.close()
print("Saved")
enter code here
Entrez.email='[email protected]'
dbName = 'pubmed'
idNum = '26837606'
rettypeName = "medline"
path ="/run/media/Dropbox/codigos/Codes/"+dbName
save_Articles_Files(dbName, idNum, rettypeName)
Mais ma fonction ne fonctionne pas, j'ai besoin d'aide s'il vous plaît!
Alors, comment puis-je obtenir cette sortie? – user2535338
Vous avez déjà tout le code pour obtenir cette sortie. Comme je l'ai écrit, c'est la sortie de 'net_handle.read()'. – BioGeek
Comment puis-je obtenir cette sortie en utilisant net_handle.read() – user2535338