@@ -946,7 +946,6 @@ mod tests {
946
946
use std:: fs;
947
947
use std:: path:: Path ;
948
948
use std:: str;
949
- use tempdir;
950
949
951
950
fn gold ( ) -> (
952
951
[ & ' static [ u8 ] ; 6 ] ,
@@ -1003,7 +1002,7 @@ CCCCCCCCCCCCCCCCCCC"[..],
1003
1002
( names, flags, seqs, quals, cigars)
1004
1003
}
1005
1004
1006
- fn compare_inner_bam_cram_records ( cram_records : & Vec < Record > , bam_records : & Vec < Record > ) {
1005
+ fn compare_inner_bam_cram_records ( cram_records : & [ Record ] , bam_records : & [ Record ] ) {
1007
1006
// Selectively compares bam1_t struct fields from BAM and CRAM
1008
1007
for ( c1, b1) in cram_records. iter ( ) . zip ( bam_records. iter ( ) ) {
1009
1008
// CRAM vs BAM l_data is off by 3, see: https://github.com/rust-bio/rust-htslib/pull/184#issuecomment-590133544
@@ -1033,7 +1032,7 @@ CCCCCCCCCCCCCCCCCCC"[..],
1033
1032
1034
1033
for ( i, record) in bam. records ( ) . enumerate ( ) {
1035
1034
let rec = record. expect ( "Expected valid record" ) ;
1036
- println ! ( "{}" , str :: from_utf8( rec. qname( ) ) . ok ( ) . unwrap( ) ) ;
1035
+ println ! ( "{}" , str :: from_utf8( rec. qname( ) ) . unwrap( ) ) ;
1037
1036
assert_eq ! ( rec. qname( ) , names[ i] ) ;
1038
1037
assert_eq ! ( rec. flags( ) , flags[ i] ) ;
1039
1038
assert_eq ! ( rec. seq( ) . as_bytes( ) , seqs[ i] ) ;
@@ -1066,9 +1065,7 @@ CCCCCCCCCCCCCCCCCCC"[..],
1066
1065
1067
1066
#[ test]
1068
1067
fn test_seek ( ) {
1069
- let mut bam = Reader :: from_path ( & Path :: new ( "test/test.bam" ) )
1070
- . ok ( )
1071
- . expect ( "Error opening file." ) ;
1068
+ let mut bam = Reader :: from_path ( & Path :: new ( "test/test.bam" ) ) . expect ( "Error opening file." ) ;
1072
1069
1073
1070
let mut names_by_voffset = HashMap :: new ( ) ;
1074
1071
@@ -1088,16 +1085,14 @@ CCCCCCCCCCCCCCCCCCC"[..],
1088
1085
println ! ( "{} {}" , offset, qname) ;
1089
1086
bam. seek ( * offset) . unwrap ( ) ;
1090
1087
bam. read ( & mut rec) . unwrap ( ) ;
1091
- let rec_qname = str:: from_utf8 ( rec. qname ( ) ) . ok ( ) . unwrap ( ) . to_string ( ) ;
1088
+ let rec_qname = str:: from_utf8 ( rec. qname ( ) ) . unwrap ( ) . to_string ( ) ;
1092
1089
assert_eq ! ( qname, & rec_qname) ;
1093
1090
}
1094
1091
}
1095
1092
1096
1093
#[ test]
1097
1094
fn test_read_sam_header ( ) {
1098
- let bam = Reader :: from_path ( & "test/test.bam" )
1099
- . ok ( )
1100
- . expect ( "Error opening file." ) ;
1095
+ let bam = Reader :: from_path ( & "test/test.bam" ) . expect ( "Error opening file." ) ;
1101
1096
1102
1097
let true_header = "@SQ\t SN:CHROMOSOME_I\t LN:15072423\n @SQ\t SN:CHROMOSOME_II\t LN:15279345\
1103
1098
\n @SQ\t SN:CHROMOSOME_III\t LN:13783700\n @SQ\t SN:CHROMOSOME_IV\t LN:17493793\n @SQ\t \
@@ -1116,19 +1111,15 @@ CCCCCCCCCCCCCCCCCCC"[..],
1116
1111
assert ! ( bam. header. target_len( tid_1) . expect( "Expected target len." ) == 15072423 ) ;
1117
1112
1118
1113
// fetch to position containing reads
1119
- bam. fetch ( tid_1, 0 , 2 )
1120
- . ok ( )
1121
- . expect ( "Expected successful fetch." ) ;
1114
+ bam. fetch ( tid_1, 0 , 2 ) . expect ( "Expected successful fetch." ) ;
1122
1115
assert ! ( bam. records( ) . count( ) == 6 ) ;
1123
1116
1124
1117
// compare reads
1125
- bam. fetch ( tid_1, 0 , 2 )
1126
- . ok ( )
1127
- . expect ( "Expected successful fetch." ) ;
1118
+ bam. fetch ( tid_1, 0 , 2 ) . expect ( "Expected successful fetch." ) ;
1128
1119
for ( i, record) in bam. records ( ) . enumerate ( ) {
1129
1120
let rec = record. expect ( "Expected valid record" ) ;
1130
1121
1131
- println ! ( "{}" , str :: from_utf8( rec. qname( ) ) . ok ( ) . unwrap( ) ) ;
1122
+ println ! ( "{}" , str :: from_utf8( rec. qname( ) ) . unwrap( ) ) ;
1132
1123
assert_eq ! ( rec. qname( ) , names[ i] ) ;
1133
1124
assert_eq ! ( rec. flags( ) , flags[ i] ) ;
1134
1125
assert_eq ! ( rec. seq( ) . as_bytes( ) , seqs[ i] ) ;
@@ -1147,18 +1138,16 @@ CCCCCCCCCCCCCCCCCCC"[..],
1147
1138
1148
1139
// fetch to position containing reads
1149
1140
bam. fetch_str ( format ! ( "{}:{}-{}" , str :: from_utf8( sq_1) . unwrap( ) , 0 , 2 ) . as_bytes ( ) )
1150
- . ok ( )
1151
1141
. expect ( "Expected successful fetch." ) ;
1152
1142
assert ! ( bam. records( ) . count( ) == 6 ) ;
1153
1143
1154
1144
// compare reads
1155
1145
bam. fetch_str ( format ! ( "{}:{}-{}" , str :: from_utf8( sq_1) . unwrap( ) , 0 , 2 ) . as_bytes ( ) )
1156
- . ok ( )
1157
1146
. expect ( "Expected successful fetch." ) ;
1158
1147
for ( i, record) in bam. records ( ) . enumerate ( ) {
1159
1148
let rec = record. expect ( "Expected valid record" ) ;
1160
1149
1161
- println ! ( "{}" , str :: from_utf8( rec. qname( ) ) . ok ( ) . unwrap( ) ) ;
1150
+ println ! ( "{}" , str :: from_utf8( rec. qname( ) ) . unwrap( ) ) ;
1162
1151
assert_eq ! ( rec. qname( ) , names[ i] ) ;
1163
1152
assert_eq ! ( rec. flags( ) , flags[ i] ) ;
1164
1153
assert_eq ! ( rec. seq( ) . as_bytes( ) , seqs[ i] ) ;
@@ -1177,9 +1166,7 @@ CCCCCCCCCCCCCCCCCCC"[..],
1177
1166
1178
1167
#[ test]
1179
1168
fn test_read_indexed ( ) {
1180
- let bam = IndexedReader :: from_path ( & "test/test.bam" )
1181
- . ok ( )
1182
- . expect ( "Expected valid index." ) ;
1169
+ let bam = IndexedReader :: from_path ( & "test/test.bam" ) . expect ( "Expected valid index." ) ;
1183
1170
_test_read_indexed_common ( bam) ;
1184
1171
}
1185
1172
#[ test]
@@ -1188,7 +1175,6 @@ CCCCCCCCCCCCCCCCCCC"[..],
1188
1175
& "test/test_different_index_name.bam" ,
1189
1176
& "test/test.bam.bai" ,
1190
1177
)
1191
- . ok ( )
1192
1178
. expect ( "Expected valid index." ) ;
1193
1179
_test_read_indexed_common ( bam) ;
1194
1180
}
@@ -1268,7 +1254,7 @@ CCCCCCCCCCCCCCCCCCC"[..],
1268
1254
assert_eq ! ( rec. aux( b"NM" ) . unwrap( ) , Aux :: Integer ( 15 ) ) ;
1269
1255
1270
1256
// Equal length qname
1271
- assert ! ( rec. qname( ) [ 0 ] != 'X' as u8 ) ;
1257
+ assert ! ( rec. qname( ) [ 0 ] != b 'X') ;
1272
1258
rec. set_qname ( b"X" ) ;
1273
1259
assert_eq ! ( rec. qname( ) , b"X" ) ;
1274
1260
@@ -1313,22 +1299,20 @@ CCCCCCCCCCCCCCCCCCC"[..],
1313
1299
. push_tag ( b"SN" , & "1" )
1314
1300
. push_tag ( b"LN" , & 10000000 ) ,
1315
1301
) ;
1316
- let mut header = HeaderView :: from_header ( & _header) ;
1302
+ let header = HeaderView :: from_header ( & _header) ;
1317
1303
1318
1304
let line =
1319
1305
b"blah1 0 1 1 255 1M * 0 0 A F CB:Z:AAAA-1 UR:Z:AAAA UB:Z:AAAA GX:Z:G1 xf:i:1 fx:Z:G1\t li:i:0\t tf:Z:cC" ;
1320
1306
1321
- let mut rec = Record :: from_sam ( & mut header, line) . unwrap ( ) ;
1307
+ let mut rec = Record :: from_sam ( & header, line) . unwrap ( ) ;
1322
1308
assert_eq ! ( rec. qname( ) , b"blah1" ) ;
1323
1309
rec. set_qname ( b"r0" ) ;
1324
1310
assert_eq ! ( rec. qname( ) , b"r0" ) ;
1325
1311
}
1326
1312
1327
1313
#[ test]
1328
1314
fn test_remove_aux ( ) {
1329
- let mut bam = Reader :: from_path ( & Path :: new ( "test/test.bam" ) )
1330
- . ok ( )
1331
- . expect ( "Error opening file." ) ;
1315
+ let mut bam = Reader :: from_path ( & Path :: new ( "test/test.bam" ) ) . expect ( "Error opening file." ) ;
1332
1316
1333
1317
for record in bam. records ( ) {
1334
1318
let mut rec = record. expect ( "Expected valid record" ) ;
@@ -1352,9 +1336,7 @@ CCCCCCCCCCCCCCCCCCC"[..],
1352
1336
fn test_write ( ) {
1353
1337
let ( names, _, seqs, quals, cigars) = gold ( ) ;
1354
1338
1355
- let tmp = tempdir:: TempDir :: new ( "rust-htslib" )
1356
- . ok ( )
1357
- . expect ( "Cannot create temp dir" ) ;
1339
+ let tmp = tempdir:: TempDir :: new ( "rust-htslib" ) . expect ( "Cannot create temp dir" ) ;
1358
1340
let bampath = tmp. path ( ) . join ( "test.bam" ) ;
1359
1341
println ! ( "{:?}" , bampath) ;
1360
1342
{
@@ -1367,22 +1349,19 @@ CCCCCCCCCCCCCCCCCCC"[..],
1367
1349
) ,
1368
1350
Format :: BAM ,
1369
1351
)
1370
- . ok ( )
1371
1352
. expect ( "Error opening file." ) ;
1372
1353
1373
1354
for i in 0 ..names. len ( ) {
1374
1355
let mut rec = record:: Record :: new ( ) ;
1375
1356
rec. set ( names[ i] , Some ( & cigars[ i] ) , seqs[ i] , quals[ i] ) ;
1376
1357
rec. push_aux ( b"NM" , & Aux :: Integer ( 15 ) ) ;
1377
1358
1378
- bam. write ( & mut rec) . expect ( "Failed to write record." ) ;
1359
+ bam. write ( & rec) . expect ( "Failed to write record." ) ;
1379
1360
}
1380
1361
}
1381
1362
1382
1363
{
1383
- let mut bam = Reader :: from_path ( & bampath)
1384
- . ok ( )
1385
- . expect ( "Error opening file." ) ;
1364
+ let mut bam = Reader :: from_path ( & bampath) . expect ( "Error opening file." ) ;
1386
1365
1387
1366
for i in 0 ..names. len ( ) {
1388
1367
let mut rec = record:: Record :: new ( ) ;
@@ -1403,9 +1382,7 @@ CCCCCCCCCCCCCCCCCCC"[..],
1403
1382
fn test_write_threaded ( ) {
1404
1383
let ( names, _, seqs, quals, cigars) = gold ( ) ;
1405
1384
1406
- let tmp = tempdir:: TempDir :: new ( "rust-htslib" )
1407
- . ok ( )
1408
- . expect ( "Cannot create temp dir" ) ;
1385
+ let tmp = tempdir:: TempDir :: new ( "rust-htslib" ) . expect ( "Cannot create temp dir" ) ;
1409
1386
let bampath = tmp. path ( ) . join ( "test.bam" ) ;
1410
1387
println ! ( "{:?}" , bampath) ;
1411
1388
{
@@ -1418,7 +1395,6 @@ CCCCCCCCCCCCCCCCCCC"[..],
1418
1395
) ,
1419
1396
Format :: BAM ,
1420
1397
)
1421
- . ok ( )
1422
1398
. expect ( "Error opening file." ) ;
1423
1399
bam. set_threads ( 4 ) . unwrap ( ) ;
1424
1400
@@ -1429,14 +1405,12 @@ CCCCCCCCCCCCCCCCCCC"[..],
1429
1405
rec. push_aux ( b"NM" , & Aux :: Integer ( 15 ) ) ;
1430
1406
rec. set_pos ( i as i64 ) ;
1431
1407
1432
- bam. write ( & mut rec) . expect ( "Failed to write record." ) ;
1408
+ bam. write ( & rec) . expect ( "Failed to write record." ) ;
1433
1409
}
1434
1410
}
1435
1411
1436
1412
{
1437
- let mut bam = Reader :: from_path ( & bampath)
1438
- . ok ( )
1439
- . expect ( "Error opening file." ) ;
1413
+ let mut bam = Reader :: from_path ( & bampath) . expect ( "Error opening file." ) ;
1440
1414
1441
1415
for ( i, _rec) in bam. records ( ) . enumerate ( ) {
1442
1416
let idx = i % names. len ( ) ;
@@ -1460,36 +1434,27 @@ CCCCCCCCCCCCCCCCCCC"[..],
1460
1434
// Verify that BAM headers are transmitted correctly when using an existing BAM as a
1461
1435
// template for headers.
1462
1436
1463
- let tmp = tempdir:: TempDir :: new ( "rust-htslib" )
1464
- . ok ( )
1465
- . expect ( "Cannot create temp dir" ) ;
1437
+ let tmp = tempdir:: TempDir :: new ( "rust-htslib" ) . expect ( "Cannot create temp dir" ) ;
1466
1438
let bampath = tmp. path ( ) . join ( "test.bam" ) ;
1467
1439
println ! ( "{:?}" , bampath) ;
1468
1440
1469
- let mut input_bam = Reader :: from_path ( & "test/test.bam" )
1470
- . ok ( )
1471
- . expect ( "Error opening file." ) ;
1441
+ let mut input_bam = Reader :: from_path ( & "test/test.bam" ) . expect ( "Error opening file." ) ;
1472
1442
1473
1443
{
1474
1444
let mut bam = Writer :: from_path (
1475
1445
& bampath,
1476
1446
& Header :: from_template ( & input_bam. header ( ) ) ,
1477
1447
Format :: BAM ,
1478
1448
)
1479
- . ok ( )
1480
1449
. expect ( "Error opening file." ) ;
1481
1450
1482
1451
for rec in input_bam. records ( ) {
1483
- bam. write ( & rec. unwrap ( ) )
1484
- . ok ( )
1485
- . expect ( "Failed to write record." ) ;
1452
+ bam. write ( & rec. unwrap ( ) ) . expect ( "Failed to write record." ) ;
1486
1453
}
1487
1454
}
1488
1455
1489
1456
{
1490
- let copy_bam = Reader :: from_path ( & bampath)
1491
- . ok ( )
1492
- . expect ( "Error opening file." ) ;
1457
+ let copy_bam = Reader :: from_path ( & bampath) . expect ( "Error opening file." ) ;
1493
1458
1494
1459
// Verify that the header came across correctly
1495
1460
assert_eq ! ( input_bam. header( ) . as_bytes( ) , copy_bam. header( ) . as_bytes( ) ) ;
@@ -1502,9 +1467,7 @@ CCCCCCCCCCCCCCCCCCC"[..],
1502
1467
fn test_pileup ( ) {
1503
1468
let ( _, _, seqs, quals, _) = gold ( ) ;
1504
1469
1505
- let mut bam = Reader :: from_path ( & "test/test.bam" )
1506
- . ok ( )
1507
- . expect ( "Error opening file." ) ;
1470
+ let mut bam = Reader :: from_path ( & "test/test.bam" ) . expect ( "Error opening file." ) ;
1508
1471
let pileups = bam. pileup ( ) ;
1509
1472
for pileup in pileups. take ( 26 ) {
1510
1473
let _pileup = pileup. expect ( "Expected successful pileup." ) ;
@@ -1523,9 +1486,7 @@ CCCCCCCCCCCCCCCCCCC"[..],
1523
1486
1524
1487
#[ test]
1525
1488
fn test_idx_pileup ( ) {
1526
- let mut bam = IndexedReader :: from_path ( & "test/test.bam" )
1527
- . ok ( )
1528
- . expect ( "Error opening file." ) ;
1489
+ let mut bam = IndexedReader :: from_path ( & "test/test.bam" ) . expect ( "Error opening file." ) ;
1529
1490
// read without fetch
1530
1491
for pileup in bam. pileup ( ) {
1531
1492
pileup. unwrap ( ) ;
@@ -1555,7 +1516,7 @@ CCCCCCCCCCCCCCCCCCC"[..],
1555
1516
1556
1517
let sam_recs: Vec < Record > = sam
1557
1518
. split ( |x| * x == b'\n' )
1558
- . filter ( |x| x . len ( ) > 0 && x[ 0 ] != b'@' )
1519
+ . filter ( |x| !x . is_empty ( ) && x[ 0 ] != b'@' )
1559
1520
. map ( |line| Record :: from_sam ( rdr. header ( ) , line) . unwrap ( ) )
1560
1521
. collect ( ) ;
1561
1522
@@ -1569,9 +1530,7 @@ CCCCCCCCCCCCCCCCCCC"[..],
1569
1530
// test the cached and uncached ways of getting the cigar string.
1570
1531
1571
1532
let ( _, _, _, _, cigars) = gold ( ) ;
1572
- let mut bam = Reader :: from_path ( & Path :: new ( "test/test.bam" ) )
1573
- . ok ( )
1574
- . expect ( "Error opening file." ) ;
1533
+ let mut bam = Reader :: from_path ( & Path :: new ( "test/test.bam" ) ) . expect ( "Error opening file." ) ;
1575
1534
1576
1535
for ( i, record) in bam. records ( ) . enumerate ( ) {
1577
1536
let rec = record. expect ( "Expected valid record" ) ;
@@ -1619,9 +1578,7 @@ CCCCCCCCCCCCCCCCCCC"[..],
1619
1578
let bam_records: Vec < Record > = bam_reader. records ( ) . map ( |v| v. unwrap ( ) ) . collect ( ) ;
1620
1579
1621
1580
// New CRAM file
1622
- let tmp = tempdir:: TempDir :: new ( "rust-htslib" )
1623
- . ok ( )
1624
- . expect ( "Cannot create temp dir" ) ;
1581
+ let tmp = tempdir:: TempDir :: new ( "rust-htslib" ) . expect ( "Cannot create temp dir" ) ;
1625
1582
let cram_path = tmp. path ( ) . join ( "test.cram" ) ;
1626
1583
1627
1584
// Write BAM records to new CRAM file
@@ -1655,15 +1612,13 @@ CCCCCCCCCCCCCCCCCCC"[..],
1655
1612
) ;
1656
1613
1657
1614
let mut cram_writer = Writer :: from_path ( & cram_path, & header, Format :: CRAM )
1658
- . ok ( )
1659
1615
. expect ( "Error opening CRAM file." ) ;
1660
1616
cram_writer. set_reference ( ref_path) . unwrap ( ) ;
1661
1617
1662
1618
// Write BAM records to CRAM file
1663
1619
for rec in bam_records. iter ( ) {
1664
1620
cram_writer
1665
1621
. write ( & rec)
1666
- . ok ( )
1667
1622
. expect ( "Faied to write record to CRAM." ) ;
1668
1623
}
1669
1624
}
@@ -1766,7 +1721,7 @@ CCCCCCCCCCCCCCCCCCC"[..],
1766
1721
1767
1722
#[ test]
1768
1723
fn test_sam_writer_example ( ) {
1769
- fn from_bam_with_filter < ' a , ' b , F > ( bamfile : & ' a str , samfile : & ' b str , f : F ) -> bool
1724
+ fn from_bam_with_filter < F > ( bamfile : & str , samfile : & str , f : F ) -> bool
1770
1725
where
1771
1726
F : Fn ( & record:: Record ) -> Option < bool > ,
1772
1727
{
@@ -1782,7 +1737,7 @@ CCCCCCCCCCCCCCCCCCC"[..],
1782
1737
None => return true ,
1783
1738
Some ( false ) => { }
1784
1739
Some ( true ) => {
1785
- if let Err ( _ ) = sam_writer. write ( & parsed) {
1740
+ if sam_writer. write ( & parsed) . is_err ( ) {
1786
1741
return false ;
1787
1742
}
1788
1743
}
0 commit comments