perlunity.de - PERL | JAVASCRIPT | PHP | MySQL | APACHE



#!/COMMUNITY

Members: 5374
davon online: 1
weitere User: 37
Click for quality!




08.02.2012 / 22:42

Community-Member werden   |   Paßwort vergessen   |   OnlineMonitor (1) Wer ist online ... OnlineMonitor starten !
     

 

Home


PERLscripts


PHPscripts


JAVAscripts


Hilfreiches


Links2www


Newscenter


Community


Interna




Community  »  Rund um das Thema Datenbank zur Themenübersicht Themensuche Themenansicht in Thread-Modus


BeitragTextfile in die Datenbank importieren
Seitenanfang
Hallo an alle!
Ich will ein Textfile (dnasequenz.txt)in die Datenbank bringen und zwar in eine Tabelle mit dem Namen Gen in die Spalte Sequenz.Ich arbeite unter Windows XP und habe es mit den Befehlen insert,mysqlimport,load data local infile etc. versucht- bin aber nicht im Stande es zu machen.
Grüße
Martin

Datum: 18.01.2006-12:35

Beitragre: Textfile in die Datenbank importieren
Seitenanfang
was steht denn in der Datei? Ein Datensatz, bzw. ein Feld eines Datensatzes? Oder viele Datensätze? Einer pro Zeile?

Kannst Du ein Beispiel der Datei hier posten?

Gruss,
Sven

Datum: 18.01.2006-14:09

Beitragre: Textfile in die Datenbank importieren
Seitenanfang
CAGCGAGCAACTGAGAAGACTGGATAGAGCCGGCGGTTCCGCGAACGAGCAGTGACCGCGCTCCCACCCAGCTCTGCTCTGCAGCTCCCACCAGTGTCTACCCCTGGACCCCTTGCCGGGCTTTCCCCAAACTTCGACCATGATGTTCTCGGGTTTCAACGCCGACTACGAGGCGTCATCCTCCCGCTGCAGTAGCGCCTCCCCGGCCGGGGACAGCCTTTCCTACTACCATTCCCCAGCCGACTCCTTCTCCAGCATGGGCTCTCCTGTCAACACACAGGACTTTTGCGCAGATCTGTCCGTCTCTAGTGCCAACTTTA

Das ist eine typische Darstellung einer Sequenz von einem Gen ( besteht eigentlich nur aus einer Abfolge von 4 Buchstaben (ATGC)).

Datum: 18.01.2006-15:21

Beitragre: Textfile in die Datenbank importieren
Seitenanfang
Bin einen großen Schritt weiter. Mit
update gene(Tabellenname) set Sequenz (Spaltenname)='sequenz.txt' where Name (Spaltenname) ='Fos';
Einziges Problem bleibt noch zu lösen- er schreibt mir sequenz.txt auf meinen gewünschten Platz und nicht den Inhalt von sequenz.txt
vielen Dank nochmals
Martin

Datum: 19.01.2006-10:00

Beitragre: Textfile in die Datenbank importieren
Seitenanfang
Du hattest meine Frage nicht beantwortet:

Steht in dem File genau eine Sequenz (also 1 String), der in einer Tabelle in einem Datensatz in ein Feld geschrieben werden soll?

Was Dein letztes Posting betrifft: Woher soll MySQL wissen, dass 'sequenz.txt' sich auf eine Datei bezieht. Es denkt (ganz korrekt), dass Du den string sequenz.txt in die Datenbank schreiben willst und macht das auch.

Ich bin mir nicht sicher, ob das mit dem mysql command-line client überhaupt geht.

Was Du machen könntest (was auch mit Perl zu tun hätte ;-)), wäre entweder Deine Datei mit Perl in gültigen SQL Code umzubauen und dann per > an mysql zu übergeben, oder das DBI Modul benutzen, die Datei einlesen, eine Verbindung zum DB Server herstellen und eine entsprechende SQL Abfrage abzusetzen. Die müsste dann so in etwa heissen:


update gene set Sequenz='ACGACGACG...' where Name ='Fos';

Gruss,
Sven

Datum: 19.01.2006-10:12

Beitragre: Textfile in die Datenbank importieren
Seitenanfang
es handelt sich um einen String, der genau in ein Feld geschrieben werden soll.Ich arbeite mit DBI und das funktioniert auch. Soweit mein Code:

#!c:\perl\bin\perl -w
use DBI;
use Bio::DB::RefSeq;
$db = new Bio::DB::RefSeq;

$seq1 = $db->get_Seq_by_id('NM_010234'); # RefSeq ID


$seq2 = $db->get_Seq_by_acc('NM_010234'); # RefSeq ACC


open OUTFILE,">sequenz.txt";

print OUTFILE $seq1->accession_number, "\n", $seq2->seq, "\n";

close(OUTFILE);

$verbinden1="DBI:mysql:maus";
my$verbinden2="root";
my$verbinden3="martin";

my $dbh = DBI->connect( "$verbinden1","$verbinden2","$verbinden3") || die
"Database connection not made: $DBI::errstr";

my$sql =qq(update gene set Sequenz="$seq2->seq" where Name='Fos-/-');
my$sth=$dbh->prepare($sql);
$sth->execute();

Da schreibt er mir in das richtige Feld:
Bio::Seq::RichSeq=HASH(0x233d02c)->seq

Datum: 19.01.2006-11:08

Beitragre: Textfile in die Datenbank importieren
Seitenanfang
Hi,

OK, ich sehe, Du bist schon recht weit.

Was ich nicht versthee, ist, wozu Du die Daten überhaput in das Textfile schreibst, bevor Du sie wiederum in die DB schreiben willst.

Ein


my$sql = "update gene set Sequenz='" . $seq2->seq . "' where Name='Fos-/-');
my$sth=$dbh->prepare($sql);
$sth->execute();

würde doch komplett reichen, oder? Eine Sache noch: Wenn der Datensatz bisher noch nicht existiert, musst Du ein INSERT machen, kein UPDATE. Könnte es daran liegen?

Gruss,
Sven

Datum: 19.01.2006-11:21

Beitragre: Textfile in die Datenbank importieren
Seitenanfang
sorry, Fehler:

my$sql = "update gene set Sequenz='" . $seq2->seq . "' where Name='Fos-/-'";

" statt ) am Ende ;-)

Sven

Datum: 19.01.2006-11:22

Beitragre: Textfile in die Datenbank importieren
Seitenanfang
Es funktioniert!!!!
Die Sache mit dem Textfile speichern hat sich so ergeben,da ich einfach nur kontrollieren wollte ob das mit dem Sequenz holen überhaupt funktioniert. Eleganter und was ich noch probieren werde,ist die Daten direkt in die DB zu bringen.
vielen, vielen Dank nochmal
Martin

Datum: 19.01.2006-12:04

-






-
-